How To: Implement SEPA / UK Faster Payments

Developers can use the following guide to learn how to use our apis to implement SEPA & UK Faster Payments.

Overview

Developers can use the following guide to learn how to use our apis to implement SEPA & UK Faster Payments.

Implementation

UI Implementation (Option 1)

  1. Generate a Checkout Link
    This endpoint will generate a url which can be added to an iframe.
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/checkout/link \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --header 'x-coinflow-auth-user-id: somecustomer' \
    7 --data '
    8{
    9 "subtotal": {
    10 "currency": "EUR",
    11 "cents": 100
    12 },
    13 "email": "customer@gmail.com",
    14 "settlementType": "USDC",
    15 "supportEmail": "support@company.com"
    16}
    17'
    Response
    1{
    2 "link": "https://sandbox.coinflow.cash/solana/purchase-v2/testtest?sessionKey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoic29tZWN1c3RvbWVyIiwibWVyY2hhbnRJZCI6InRlc3R0ZXN0IiwiaWF0IjoxNzM0NTU2ODg5LCJleHAiOjE3MzQ2NDMyODl9.g2394W9cshwwNqw1SgRYcg5FU0PJH4lu8mzKckkZTng&cents=100&currency=EUR&email=customer%40gmail.com&jwtToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXgtuA44yD44Cd6IKmxLHkhozpgKPhk7DGgcKY06Dhg4DkmLXriLLroLTstZLtnKXjoYDahOOQg-ubgOCngOKegNyA4rqYworlgpnkmLws54Sq6ZuJ5ICH4Yql6ZCT5YOO5KSS54ul5KeC5aGl5biA6rOk7YKm47qG75ib5Jet4YWP55ya5b-k7oqQ6o2S66Sg4oWr5o2T6YGj5Y-o6oW76Y-p64Oa6YCiXHVkOGEwXHVkODNh5q2S5YSr64SZ4YeB4Ymh5J2Q4aeEXHVkOTIwXHVkYTY54YGh4q2Q6oqQ5oSR4ZC04oih4Y-Q4oGg4oGV6ouR7Jmo5o2g6omp4oij6Yu17I2R4qOa5YSU4aeg5oSj5qSo75qS7YqN5JqS5YGg5oi36YOM6oqm6Yei6bSp4aSq2armo7XhhKPlh4LugqPrrZHhipDpg5nipKLutrRcdWQ4ZTLnpJ3hmYTilLbhrqDni4Ppg7DpkLrjjJfkkqLih6DtgoPhiLTihIrmmpnuh4jqvKPipIbshobkoKTtgIjktJzkmaTomIXpoKjlpIrqs5vKouqpkeKihOawguGHhuiJkualiOGQl-Ckg-C7lOuvguCip-K0vsSC7LOz5YGc4rKv6bCT5KWH4pqs5oi75oa37KOk54uB7oSi5KGz44ST6aGB64eh5IWI67Ge4LiD5KuD57KU6pqn67i66Kaj6IWj4qKY66yd4KyW4rK54YOlXHVkODMz4b-I5oGQ4oC54aaV45C54r2D442B66CQ5KKk4LuY6oqB6oqa6aCZ4baU5ZSt6JOQ46SW6Ju646Sb4LaC5oyU746V46qs7Kat6Y247qOQ6KGt5p-c6KC365Ot75Kz4r614a2v4rWm5qy85YeO4KqTXHVkZDcx5I-i4omZ5KGX5ZKK4ZeI66Cu6aK55JmH5ImT5Ieh45C25qiq0pbomajsnpLplJvGvu6eiVx1MDAwMeeygFx1MDAwMCIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlkZW1wb3RlbmN5S2V5IjoiSUtjNjJmZmFjNC0wZjgzLTQ3NGItODNhMi1mNzdlMmJlZTQ0OTQiLCJzdWJ0b3RhbCI6eyJjdXJyZW5jeSI6IkVVUiIsImNlbnRzIjoxMDB9LCJpYXQiOjE3MzQ1NTY4ODksImV4cCI6MTczNDY0MzI4OX0.dOQ0ucyMj8b9lyQklKtxILbRdnaSWqlpHK-ZH-2go5Q"
    3}
  2. Place the webpage in an iframe
    Below is an example of how you can put the returned checkout link in an iframe and display Coinflow’s checkout modal to the end user. To quickly test a proof of concept, you may add the url here.
    1<iframe src="https://sandbox.coinflow.cash/solana/purchase-v2/testtest?sessionKey=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoic29tZWN1c3RvbWVyIiwibWVyY2hhbnRJZCI6InRlc3R0ZXN0IiwiaWF0IjoxNzM0NTU2ODg5LCJleHAiOjE3MzQ2NDMyODl9.g2394W9cshwwNqw1SgRYcg5FU0PJH4lu8mzKckkZTng&cents=100&currency=EUR&email=customer%40gmail.com&jwtToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXgtuA44yD44Cd6IKmxLHkhozpgKPhk7DGgcKY06Dhg4DkmLXriLLroLTstZLtnKXjoYDahOOQg-ubgOCngOKegNyA4rqYworlgpnkmLws54Sq6ZuJ5ICH4Yql6ZCT5YOO5KSS54ul5KeC5aGl5biA6rOk7YKm47qG75ib5Jet4YWP55ya5b-k7oqQ6o2S66Sg4oWr5o2T6YGj5Y-o6oW76Y-p64Oa6YCiXHVkOGEwXHVkODNh5q2S5YSr64SZ4YeB4Ymh5J2Q4aeEXHVkOTIwXHVkYTY54YGh4q2Q6oqQ5oSR4ZC04oih4Y-Q4oGg4oGV6ouR7Jmo5o2g6omp4oij6Yu17I2R4qOa5YSU4aeg5oSj5qSo75qS7YqN5JqS5YGg5oi36YOM6oqm6Yei6bSp4aSq2armo7XhhKPlh4LugqPrrZHhipDpg5nipKLutrRcdWQ4ZTLnpJ3hmYTilLbhrqDni4Ppg7DpkLrjjJfkkqLih6DtgoPhiLTihIrmmpnuh4jqvKPipIbshobkoKTtgIjktJzkmaTomIXpoKjlpIrqs5vKouqpkeKihOawguGHhuiJkualiOGQl-Ckg-C7lOuvguCip-K0vsSC7LOz5YGc4rKv6bCT5KWH4pqs5oi75oa37KOk54uB7oSi5KGz44ST6aGB64eh5IWI67Ge4LiD5KuD57KU6pqn67i66Kaj6IWj4qKY66yd4KyW4rK54YOlXHVkODMz4b-I5oGQ4oC54aaV45C54r2D442B66CQ5KKk4LuY6oqB6oqa6aCZ4baU5ZSt6JOQ46SW6Ju646Sb4LaC5oyU746V46qs7Kat6Y247qOQ6KGt5p-c6KC365Ot75Kz4r614a2v4rWm5qy85YeO4KqTXHVkZDcx5I-i4omZ5KGX5ZKK4ZeI66Cu6aK55JmH5ImT5Ieh45C25qiq0pbomajsnpLplJvGvu6eiVx1MDAwMeeygFx1MDAwMCIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlkZW1wb3RlbmN5S2V5IjoiSUtjNjJmZmFjNC0wZjgzLTQ3NGItODNhMi1mNzdlMmJlZTQ0OTQiLCJzdWJ0b3RhbCI6eyJjdXJyZW5jeSI6IkVVUiIsImNlbnRzIjoxMDB9LCJpYXQiOjE3MzQ1NTY4ODksImV4cCI6MTczNDY0MzI4OX0.dOQ0ucyMj8b9lyQklKtxILbRdnaSWqlpHK-ZH-2go5Q" width="100%" height="400" />

UI Implementation (Option 2)

Coinflow provides SDKs for react, vue, angular, and react native. You can easily integrate our components into your application by following the steps below.

React / React Native
//Example implementation for React & React Native
<CoinflowPurchase
sessionKey={'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w'} // Get this from Create a session key endpoint
merchantId={'YOUR_MERCHANT_ID'}
env={'sandbox'}
subtotal={{
"currency": Currency.EUR, // Change to GBP for UK Faster Payment
"cents": 200
}}
onSuccess={(...args) => {
console.log('Purchase Success');
}}
email={'user-email@email.com'} // customers email address
webhookInfo={{item: 'sword'}}
settlementType={SettlementType.USDC}
/>

API Implementation

  1. Create a session key
    This endpoint returns a JWT that is unique to the customer. When calling this endpoint, the x-coinflow-auth-user-id can be any unique customer identifier string that you, the Merchant, uses to identify the buyer.

    Request
    1curl --request GET \
    2 --url https://api-sandbox.coinflow.cash/api/auth/session-key \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'x-coinflow-auth-user-id: user123'
    Response
    1{
    2 "key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w"
    3}
  2. Get Totals
    This endpoint will allow you to show total purchase price after all fees.

    Request - UK
    1// This is an example request for UK Faster Payments
    2
    3curl --request POST \
    4 --url https://api-sandbox.coinflow.cash/api/checkout/totals/testtest \
    5 --header 'accept: application/json' \
    6 --header 'content-type: application/json' \
    7 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    8 --data '
    9{
    10"subtotal": {
    11 "currency": "GBP",
    12 "cents": 200
    13},
    14"settlementType": "USDC"
    15}
    16'
    Response - UK
    1// This is an example response for UK Faster Payments
    2
    3{
    4"fasterPayments": {
    5 "subtotal": {
    6 "currency": "GBP",
    7 "cents": 200
    8 },
    9 "creditCardFees": {
    10 "cents": 200,
    11 "currency": "GBP"
    12 },
    13 "chargebackProtectionFees": {
    14 "cents": 0,
    15 "currency": "GBP"
    16 },
    17 "gasFees": {
    18 "cents": 0,
    19 "currency": "GBP"
    20 },
    21 "total": {
    22 "cents": 400,
    23 "currency": "GBP"
    24 },
    25 "settlement": {
    26 "subtotal": {
    27 "cents": 254,
    28 "currency": "USD"
    29 },
    30 "creditCardFees": {
    31 "cents": 255,
    32 "currency": "USD"
    33 },
    34 "chargebackProtectionFees": {
    35 "cents": 0,
    36 "currency": "USD"
    37 },
    38 "gasFees": {
    39 "cents": 0,
    40 "currency": "USD"
    41 },
    42 "total": {
    43 "cents": 509,
    44 "currency": "USD"
    45 }
    46 },
    47 "exchangeRate": 0.787071
    48}
    49}
    Request - SEPA
    1// This is an example request for SEPA payment
    2
    3curl --location 'https://api-sandbox.coinflow.cash/api/checkout/totals/testtest' \
    4--header 'accept: application/json' \
    5--header 'content-type: application/json' \
    6--header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    7--data '
    8{
    9"subtotal": {
    10 "currency": "EUR",
    11 "cents": 200
    12},
    13"settlementType": "USDC"
    14}
    15'
    Response - SEPA
    1// This is an example response for SEPA payment
    2
    3{
    4 "sepa": {
    5 "subtotal": {
    6 "currency": "EUR",
    7 "cents": 200
    8 },
    9 "creditCardFees": {
    10 "cents": 200,
    11 "currency": "EUR"
    12 },
    13 "chargebackProtectionFees": {
    14 "cents": 0,
    15 "currency": "EUR"
    16 },
    17 "gasFees": {
    18 "cents": 0,
    19 "currency": "EUR"
    20 },
    21 "total": {
    22 "cents": 400,
    23 "currency": "EUR"
    24 },
    25 "settlement": {
    26 "subtotal": {
    27 "cents": 209,
    28 "currency": "USD"
    29 },
    30 "creditCardFees": {
    31 "cents": 210,
    32 "currency": "USD"
    33 },
    34 "chargebackProtectionFees": {
    35 "cents": 0,
    36 "currency": "USD"
    37 },
    38 "gasFees": {
    39 "cents": 0,
    40 "currency": "USD"
    41 },
    42 "total": {
    43 "cents": 419,
    44 "currency": "USD"
    45 }
    46 },
    47 "exchangeRate": 0.953588
    48 }
    49}
  3. Complete a new SEPA/UK Faster Payment
    This endpoint should be utilized by new customers who has never completed a payment or does not have a tokenized IBAN. This endpoint will tokenize their IBAN details, create the customer record, and return payment details which the customer will need to complete the purchase from their banking app.

    📘 The presentment currency is specific to the chosen payment method.

    For example, prices are displayed in GBP if the payment method is UK Faster Payments, and euros for SEPA transfers.

    If you pass subtotals.currency = GBP for a SEPA transfer or , you will get an currency is not supported for payment method error.

    Request - UK
    1// This is an example request for UK Faster Payments
    2
    3curl --request POST \
    4 --url https://api-sandbox.coinflow.cash/api/checkout/iban \
    5 --header 'accept: application/json' \
    6 --header 'content-type: application/json' \
    7 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    8 --data '
    9{
    10"webhookInfo": {
    11 "example": "{\"productId\": \"123abc\"}"
    12},
    13"subtotal": {
    14 "currency": "GBP", // Change to EUR for SEPA payment
    15 "cents": 200
    16},
    17"data": {
    18 "number": "26207729",
    19 "sortCode": "560029", // Optional: Sort code is only required for UK Faster Payment
    20 "firstName": "Dwayne",
    21 "lastName": "Johnson",
    22 "country": "GB",
    23 "email": "dj1@gmail.com"
    24},
    25"settlementType": "USDC",
    26"merchantId": "testtest"
    27}
    28'
    Response - UK
    1// This is an example response for UK Faster Payments
    2
    3{
    4"paymentId": "143e5f45-1d44-444f-9229-67224a840b5d",
    5"due": "2024-12-18T18:48:40.729Z",
    6"sortCode": "000000",
    7"account": "04188581",
    8"expires": "2024-12-18T18:48:40.729Z",
    9"amount": {
    10 "cents": 400,
    11 "currency": "GBP"
    12}
    13}
    Request - SEPA
    1// This is an example request for SEPA
    2
    3curl --location 'https://api-sandbox.coinflow.cash/api/checkout/iban' \
    4--header 'accept: application/json' \
    5--header 'content-type: application/json' \
    6--header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    7--data-raw '
    8{
    9"webhookInfo": {
    10 "example": "{\"productId\": \"123abc\"}"
    11},
    12"subtotal": {
    13 "currency": "EUR",
    14 "cents": 200
    15},
    16"data": {
    17 "number": "IT69T0300203280889389523223",
    18 "firstName": "Dwayne",
    19 "lastName": "Johnson",
    20 "country": "IT",
    21 "email": "dj1@gmail.com"
    22},
    23"settlementType": "USDC",
    24"merchantId": "testtest"
    25}
    26'
    Response - SEPA
    1// This is an example response for SEPA
    2
    3{
    4 "paymentId": "6f27d53e-e60a-4435-a333-2332937e62fc",
    5 "due": "2024-12-18T20:05:07.403Z",
    6 "account": "GB30MOCK00000004188615",
    7 "expires": "2024-12-18T20:05:07.403Z",
    8 "amount": {
    9 "cents": 400,
    10 "currency": "EUR"
    11 }
    12}

    Display the response details to the customer and prompt them to complete the payment by going on their banking app and send the amount to the provided account (include the IBAN account number and/or the sort code).

    When the customer has confirmed the payment from their banking app, Merchants will see the payment record status has been updated.

    ❗️ The payment intent record is valid for 5 minutes.

    If the customer has not completed the payment within 5 minutes, the payment status will be marked as expired.

  4. Get Customer to retrieve a tokenized IBAN
    This endpoint gets all details associated with the customer, including any of their previously used payment methods.

    Request - UK
    1// This is an example request for UK Faster Payments
    2
    3curl --request GET \
    4 --url https://api-sandbox.coinflow.cash/api/customer/v2 \
    5 --header 'accept: application/json' \
    6 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w'
    Response - UK
    1// This is an example response for UK Faster Payments
    2
    3{
    4"customer": {
    5 "_id": "673cb1779f9ca25383093dfb",
    6 "customerId": "user123",
    7 "blockchain": "user",
    8 "email": "djohnson01@gmail.com",
    9 "isBlocked": "NotBlocked",
    10 "chargebackProtectionEnabled": true,
    11 "merchant": "66311727a26b3cb28faaf97d",
    12 "failedAttemptSetting": "Standard",
    13 "verificationSetting": "Enforced",
    14 "exempt3DS": false,
    15 "createdAt": "2024-12-18T15:40:39.935Z",
    16 "__v": 0,
    17 "bankAccounts": [],
    18 "cards": [],
    19 "sepas": [],
    20 "fasterPayments": [
    21 {
    22 "alias": "Test UK Acct 729",
    23 "last4": "7729",
    24 "accountHash": "2d9fabef7ac3fa893093c9b57db6d18812a73686",
    25 "token": "549ee4143bb5fe4be1183a4129221c961c5054d41d763ea3f980b7416a7f9204",
    26 "reference": "673cb1789f9ca25383093e09",
    27 "sortCode": "560029"
    28 }
    29 ]
    30}
    31}
    Request - SEPA
    1// This is an example request for SEPA
    2
    3curl --request GET \
    4 --url https://api-sandbox.coinflow.cash/api/customer/v2 \
    5 --header 'accept: application/json' \
    6 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w'
    Response - SEPA
    1// This is an example response for SEPA
    2
    3{
    4 "customer": {
    5 "_id": "673cb1779f9ca25383093dfb",
    6 "customerId": "user123",
    7 "blockchain": "user",
    8 "email": "djohnson01@gmail.com",
    9 "isBlocked": "NotBlocked",
    10 "chargebackProtectionEnabled": true,
    11 "merchant": "66311727a26b3cb28faaf97d",
    12 "failedAttemptSetting": "Standard",
    13 "verificationSetting": "Enforced",
    14 "exempt3DS": false,
    15 "createdAt": "2024-12-18T15:40:39.935Z",
    16 "__v": 0,
    17 "bankAccounts": [],
    18 "cards": [],
    19 "sepas": [
    20 {
    21 "alias": "SEPA Account 3223",
    22 "last4": "3223",
    23 "accountHash": "234cd45c150a3977c98ba0755275396a4f957da4",
    24 "token": "296143c0d6fe6094e1dbdcd4c10ac98bb9bfce04dc0317614c9c125b0d35ced8",
    25 "reference": "673cb1789f9ca25383093e09"
    26 }
    27 ],
    28 "fasterPayments": []
    29 }
    30}
  5. Complete a SEPA/UK Faster Payment with a saved IBAN
    This endpoint should be utilized by existing customers who already have a tokenized IBAN. This endpoint will only return payment details which the customer will need to complete the purchase from their banking app.

    📘 The presentment currency is specific to the chosen payment method.

    For example, prices are displayed in GBP if the payment method is UK Faster Payments, and euros for SEPA transfers.

    If you pass subtotals.currency = GBP for a SEPA transfer or , you will get an currency is not supported for payment method error.

    Request - UK
    1// This is an example request for UK Faster Payment
    2
    3curl --request POST \
    4 --url https://api-sandbox.coinflow.cash/api/checkout/iban/token \
    5 --header 'accept: application/json' \
    6 --header 'content-type: application/json' \
    7 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    8 --data '
    9{
    10 "webhookInfo": {
    11 "example": "{\"productId\": \"123abc\"}"
    12 },
    13 "subtotal": {
    14 "currency": "GBP", // Change to EUR for SEPA Payment
    15 "cents": 200
    16 },
    17 "token": "549ee4143bb5fe4be1183a4129221c961c5054d41d763ea3f980b7416a7f9204", //Get this from calling Get Customer (fasterPayments[0].token)
    18 "merchantId": "testtest",
    19 "settlementType": "USDC"
    20}
    21'
    Response - UK
    1// This is an example request for UK Faster Payment
    2
    3{
    4 "paymentId": "16374354-83b6-4b2e-9133-7261913c1dbe",
    5 "due": "2024-12-18T19:22:37.460Z",
    6 "sortCode": "000000",
    7 "account": "04188581",
    8 "expires": "2024-12-18T19:22:37.460Z",
    9 "amount": {
    10 "cents": 400,
    11 "currency": "GBP"
    12 }
    13}
    Request - SEPA
    1// This is an example request for SEPA
    2
    3curl --location 'https://api-sandbox.coinflow.cash/api/checkout/iban/token' \
    4--header 'accept: application/json' \
    5--header 'content-type: application/json' \
    6--header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoidXNlcjEyMyIsIm1lcmNoYW50SWQiOiJ0ZXN0dGVzdCIsImlhdCI6MTczNDU0NjU1OCwiZXhwIjoxNzM0NjMyOTU4fQ.DWFJgywBgzOUydudQAWp3L55aTjohfASRZ_0ZuRc04w' \
    7--data '
    8{
    9 "webhookInfo": {
    10 "example": "{\"productId\": \"123abc\"}"
    11 },
    12 "subtotal": {
    13 "currency": "EUR", // Change to GBP for UK Faster Payment
    14 "cents": 200
    15 },
    16 "token": "296143c0d6fe6094e1dbdcd4c10ac98bb9bfce04dc0317614c9c125b0d35ced8", // Get this from calling Get Customer (sepas[0].token)
    17 "merchantId": "testtest",
    18 "settlementType": "USDC"
    19}
    20'
    Response - SEPA
    1// This is an example response for SEPA
    2
    3{
    4 "paymentId": "f7d62dda-71c4-44f5-85ee-e701fd0565ba",
    5 "due": "2024-12-18T20:12:12.300Z",
    6 "account": "GB30MOCK00000004188615",
    7 "expires": "2024-12-18T20:12:12.300Z",
    8 "amount": {
    9 "cents": 400,
    10 "currency": "EUR"
    11 }
    12}

    Display the response details to the customer and prompt them to complete the payment by going on their banking app and send the amount to the provided account (include the IBAN account number and/or the sort code).

    When the customer has confirmed the payment from their banking app, Merchants will see the payment record status has been updated.

    ❗️ The payment intent record is valid for 5 minutes.

    If the customer has not completed the payment within 5 minutes, the payment status will be marked as expired.