For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
RegisterLoginSandbox Login
GuidesRecipesAPI Reference
GuidesRecipesAPI Reference
  • Getting Started
    • Getting Started with Checkout
    • ACH Checkout
    • Card Checkout with Credits
    • Card Checkout
    • Direct USDC Settlement
    • Fiat/Crypto Pay-ins
    • Secure Marketplace Checkout
    • EVM Checkout
    • How to Enable Checkout with Credit Cards
    • Quick Start Marketplace Implementation
    • Payouts
    • Common FAQs
  • Checkout
    • Settlement Locations
    • Checkout Webhooks
  • Payouts
    • Payout Overview
    • What is a Payout
  • Subscriptions
    • Subscriptions Overview
  • Marketplaces
    • Marketplace Overview
    • How Marketplaces Work
    • How to Withdraw USDC
    • Countries Eligible for USDC Withdraw
    • Marketplaces Webhooks
    • Marketplaces Implementation
  • Developer Resources
    • Custom Branding
    • Checkout Implementation
    • Webhooks
  • Merchant Dashboard
    • Login & Account Access
    • Users and Roles
    • Rate Limits
    • Developer Contact
LogoLogo
RegisterLoginSandbox Login
Getting Started

Secure JWT Checkout

Was this page helpful?
Previous

EVM Checkout

Next
Built with
  1. Tokenize the checkout params
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/checkout/jwt-token \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --data '
    7{
    8 "webhookInfo": {
    9 "example": "{\"my webhook info\": \"asdfghjk\"}"
    10 },
    11 "subtotal": {
    12 "currency": "USD",
    13 "cents": 500
    14 },
    15 "email": "iamapayer@gmail.com",
    16 "blockchain": "solana",
    17 "chargebackProtectionData": [
    18 {
    19 "productType": "inGameProduct",
    20 "rawProductData": {
    21 "example": "{\"description\":\"description about the purchase\"}"
    22 },
    23 "productName": "my product",
    24 "quantity": 1
    25 }
    26 ],
    27 "settlementType": "USDC",
    28 "supportEmail": "mysupportemail@email.com",
    29 "deviceId": "123456789",
    30 "feePercentage": 5
    31}
    32'
    Response
    1{
    2 "checkoutJwtToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXgtmg2IDngJPog6zEsOOMktOA4ZiB4LCE5oGA45iB6LCT6aKk7KCV6aOD45ir5auQ5KyQxqFTduGQgeOghO-AgO6Ahey-hlwi6JSm4YaC4byW4rGo46an6r6J4ZiE75Wz7ZCl6YKhRuagqOWXh9Sf5Yio74Sj7oqM6aeT75qT7YKi6ZyL6JK47JCU4pK-5pGk5KGe4qCI5LGw6KC65pmw5qO47JGo5aOh5LGk5qG85qGw5pq44ZGI6quM5puJXHVkOGI056uE4aK-7LO457GI54O05piU4aG876KY5qK066KOXHVkZTc04KCI76KN4aOu4aOE45iY5pG87oWo5KCU6rSB6aG257Gm5oWI4aKp7JOE5JCU5aCY4re45JO746mw6JWJ57OH6JW84ZGm4ZqM6Y-B4KKO5qOm4qK57JOL6Y-17JG84KGL4o6457e045Cm5LaO7o6B74O46JCM1IzooaDmj6DlgJjnvpngtaHknqHihYbnkbTiuIzonIPliJHuoaTioq7gs4_kg4LhgrHngYPhqJfQiuSIkeK7mOWwoeidiOSHsc-oXHVkOTBh4qmX4YKS4aiiXHVkY2Y47LKZ4YKG5Jii6YuQ7rm74oSf5paC4oaY4YCU5Zi-7JmP5I6D5oKW4rm34aGD5KWX7IeA5paq67KT4buK6ZWX7o-w4aGc55GL4paD7K6i64mR5Zah6aaG6YGL7oao5piE5Zqe6KCN5K-g5rCa5ay47JSG4qOA76qyXHVkZjA06oGdXHVkZjc246i15KGM77KZXHVkZTlh6YGK4ZeJ4amC4L-B4pmi5oGY5bmw44iO4ZyX5YSO6reC56in6q2Z6KGk2LjluKjjsobHr-qFsOOSgee4quuIsOmZhuSls-iiruOJseivgu6Dpuesk-KhiOe2i-qiieSLjOCim-GkhuC2puGhl-GIuuWRlue0iuKmkempjuGLpOC2teuEgOigmeOVvO-PkeabjOyUi-iFme-qu-GetemLmOmTqOeJsOWym-G8kOyWh96o74m64pyJ6YuU7JCE7KGZ6YO9yI7koYzpoLjhmYnom7jFjFx1ZGJkMOakgeC9iOGDveOUr--CjOKgvuyQkuGBvuK5juStvumgouqEqOeSseOkm-iokOqgn9qI4YKo6ZqK64Wg5qqw6reh5IeJ44yL2rjuoLLdguGinuibhOiCgC_pgIAiLCJtZXJjaGFudElkIjoidHlsZWUiLCJpZGVtcG90ZW5jeUtleSI6IklLYTU5NmQwNjEtYmE0ZC00MTg2LTk4ZGQtNmEyOGVjM2M3ODY2Iiwic3VidG90YWwiOnsiY3VycmVuY3kiOiJVU0QiLCJjZW50cyI6NTAwfSwiaWF0IjoxNzQzMTcwMjkzLCJleHAiOjE3NDMyNTY2OTN9.l3feSqMRGlZWh_3jyw2nz_lfasZA_L2P4HVwAWtkGOE"
    3}
  2. Pass JWT Token to CoinflowPurchase
    1<CoinflowPurchase
    2 wallet={{wallet}}
    3 merchantId={'photofinish'}
    4 env={'sandbox' | 'prod'}
    5 connection={connection}
    6 onSuccess={() => {
    7 console.log('Purchase Success');
    8 // Redirect the user to a different screen.
    9 }}
    10 blockchain={'solana'}
    11 subtotal={{currency: Currency.USD, cents: 100}}
    12 jwtToken = {'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXguCjgOKYgueAleiAnN2j5IGM4LGn46CD5oOb4LCF44CQ7Iqy4YCF6KSz4KCI7KaczLDGkOuhgNqE44iA7rWwybDgp6DHgOCumeawgOSQqeSio0LgsJ3njaPmoYXItOa1ku6AjOyFieKmlOiTke67iOWCguWxiOmroOSNuO65suOou-mUremsreWZqOSytueBrOeBpOGgqOSZiOaxrOKhiOiRpOmitOGxiOG7vuuYnOeDmOeBjOChhuCglOuTiOunuOyYlOawmOqXtuujvuSyuuuSnOy7mOqglOSZqOahpOeVrOiwmOShsOKglOaphuGhjOuXjeiRhuaStOSZjFx1ZGQxY-K7k-uQlFx1ZDg2NO-kqOmUq-qHg-6Xqu-pmuySoeGxhuSVhueDquqYiOmHlOShmuGzmOKgnOaikeSuuFx1ZGExOOebvuKisuuguOiSqdOD4LCy4Y6B7IqZ5LO045Cb6qeM4o2D6Iyc7KOR4ZKt4ZyC6I2h6oCy44SMzZPSheyHmeixmOOyhsyE5IWC7oCo5LCO46uJ0rfvg6Dos6jMmOWqguiMi-qSjOu4nOqdkuivsuerpeWljOGmlemCi-6ZmeyFsOuItOCouuKDpeqCoeuAnOiImeGciuyNqeaIiuSxseWkrtek64S4XHVkODRi4YiN6LqnwqDngLjojJrhnIzsrYLpm43rqI3jjKbotoztmJjigYLlkoTihILoloXpi5HtkafijJHolZTogYLosoHnlZvmmonohYDnhbHooLTrjIXcr-mWou2GsOSwsuGchOm6g-qrmOGBmeieoOyfoemhiOWBsOGSqeWohOyzkO6rm-yhmeOQrOaAq-STqeGnpuSxteCoquWSgO6JkuqwnuGBmtys6Yax4rGQ5JS46rSH6ICF74iAIiwibWVyY2hhbnRJZCI6InRlc3R0ZXN0IiwiaWRlbXBvdGVuY3lLZXkiOiJJSzVlZWE3YzI3LWEyMjgtNDcyMC1iYTVkLWI1ZDA0ZDUzMzA3MCIsInN1YnRvdGFsIjp7ImN1cnJlbmN5IjoiVVNEIiwiY2VudHMiOjUwMH0sImlhdCI6MTc0Mjg1NTY3OCwiZXhwIjoxNzQyOTQyMDc4fQ.2dGfWnazfyHaz_uEWKM9RU-jh-tXUSMPFZJdNvmMPwo'} // JWT from step 1
    13/>
  3. Whitelist your url
    By whitelisting your domain, checkout can only be completed on your domain. This protects against bad actors trying to take your checkout link and injecting it onto their site.