> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.coinflow.cash/guides/checkout/implementation-overview/implementation-guides/advanced-use-cases/one-time-purchase-usdc-to-evm-contract/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.coinflow.cash/_mcp/server. # One-Time Purchase Integration - EVM Contract Settlement > **Warning** > > **This page is for advanced / cryptocurrency-native companies.** If that's not you, head back to the [Quickstart](/guides/getting-started/quickstart) for the standard flows. This guide walks you through integrating Coinflow checkout to accept one-time credit card purchases with USDC settlement to your whitelisted EVM contract (Base, Polygon, Arbitrum, etc.). ## Prerequisites > **Warning** > > Complete these steps before starting the integration. #### Create your sandbox account [Register](https://sandbox-merchant.coinflow.cash/register) or [login](https://sandbox-merchant.coinflow.cash/login) to your sandbox merchant account #### Generate API keys [Create a sandbox API key](https://sandbox-merchant.coinflow.cash/api-keys) for authentication #### Add chargeback protection [Add the protection script](/guides/checkout/payment-security-risk-management/fraud-protection/implement-chargeback-protection#how-to-add-chargeback-protection) to every page of your app #### Whitelist your contract [Whitelist your EVM contract address](https://sandbox-merchant.coinflow.cash/whitelist-request) for settlement. ## Quick Reference #### Authorization Headers | Header | Description | | ----------------------------- | --------------------------------------------------------------------------------------------------------------- | | `Authorization` | Your API key from [the merchant dashboard](https://sandbox-merchant.coinflow.cash/api-keys) | | `x-coinflow-auth-user-id` | Unique customer ID from your system | | `x-coinflow-auth-session-key` | [JWT token](/api-reference/api-reference/authentication/get-session-key) authorizing the payer (valid 24 hours) | #### Helpful Resources * [Test card numbers for sandbox](/guides/checkout/testing/testing-credit-cards) * [Checkout webhooks](/guides/developer-resources/webhooks/checkout-webhooks) * [Custom branding](/guides/developer-resources/custom-branding) --- ## Choose Your Implementation #### Checkout Link Best for simple integrations. Generate a hosted checkout URL to redirect users or embed in an iframe. ### Step 1: Generate the checkout link **`Request`** ```bash title="Request" curl -X POST https://api-sandbox.coinflow.cash/api/checkout/link \ -H "x-coinflow-auth-user-id: payer123" \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "email": "payer123@gmail.com", "subtotal": { "cents": 500, "currency": "USD" }, "blockchain": "polygon", "transactionData": { "transaction": { "data": "0x...", "to": "0x..." } } }' ``` **`Response`** ```json title="Response" { "link": "https://sandbox.coinflow.cash/polygon/purchase-v2/YOUR_MERCHANT_ID?sessionKey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoicGF5ZXIxMjMiLCJtZXJjaGFudElkIjoibWVsbG8iLCJpYXQiOjE3NjU5MjQ5NTIsImV4cCI6MTc2NjAxMTM1Mn0.exsrE2_FVoOAiVVBm8uTol31zsPyc_voRTR27YuZUjo¢s=500¤cy=USD&email=payer123%40gmail.com&useHeightChange=true&jwtToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXgtGg5piC44CU7IGmYOOGgFx1ZDgwYeyAu8SA54yW6qWJ6oGA6bCEy4Loi5vlgInoqZvhhojDkOiKgOeZmMS407DDoNeF4KyA4oiB4LCl7KaCzJrhsKzEse6YouyEplx1ZGRjNO-Co-yqmOmwuueItO6Jg-mGluujleqko-mdicS5XHVkYmE57Lqn6I2u46GY4KKE5qGY4aGW5qmo5auU6qm454CY46Ca4qCE5qGy5KCY4rGw4rCc5KCI6Jm-5aG01LjohbjnkI7ErOqzhOGrlOmjtOWhqOeQuNCJ56CY4aCW5pS47JCM55KE4rCs74WY7ZCa4aKl4KGo4qGh6JWa4rm45quE5Lmw7rKs56Gy6ZeU5aOa4qGk6aq45KC17ZCo34vho4jouKvlo6zrmqbrm4jnkITisYjnkbTrk4TlroTsvJrmsLjni7TpjprmjIflp6volrDqgJ5cdWQ4NWLij4fEt-qDoO6AuuKQnOGvreiAoeaErOGguOC4jdKEXHVkOWM455CY46S85I2F5oWh6ZSQ56Gt4biF6J6C4K615oq-4Ymt5LOnzoDhgpDojL3NjeGGoeKBqO6RieScnOC1ieaAo-GmtOWhh-iCsuWZhOihoei6peOoi-GvgeqKoeyBjOi5jeKWkeK7tuKGi-SZqOGSrumAp-KQtu-ksOuztOeyrey9geGhqO6hnC_pgIAiLCJtZXJjaGFudElkIjoibWVsbG8iLCJpZGVtcG90ZW5jeUtleSI6IklLMTY5ZDEwNmMtZDQxMi00YWZhLWFhZTQtMTg3ZTQxM2E3M2M4Iiwic3VidG90YWwiOnsiY2VudHMiOjUwMCwiY3VycmVuY3kiOiJVU0QifSwiaWF0IjoxNzY1OTI0OTUyLCJleHAiOjE3NjU5MjY3NTJ9.2w0_tNOzv58drmQTSSpeqPxpmFCku31mWqVpF65PXhU" } ``` ### Step 2: Use the checkout link **Embed in an iframe** ```html