ACH Checkout

Setup

  1. Register a sandbox account or production account
    • Please let the Coinflow team know what your merchant id is on account creation
  2. Create your API Key
  3. Configure settlement location. Options include:

Implement ACH Checkout

  1. Generate a session key
    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: payer123'
    1{
    2 "key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoicGF5ZXIxMjMiLCJtZXJjaGFudElkIjoidGVzdHRlc3QiLCJpYXQiOjE3NDc2NzI5MjQsImV4cCI6MTc0Nzc1OTMyNH0.TUpJbm1bf51opIBXnXQbP0uNZ_HF35droAw2bAOD0lw"
    3}
  2. Have the payer add a bank account.

    📘 This endpoint requires you to show proof of a Bank Auth provider.

    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/customer/v2/bankAccount \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'content-type: application/json' \
    5 --header 'x-coinflow-auth-user-id: payer123' \
    6 --data '
    7{
    8 "type": "checking",
    9 "email": "payer@gmail.com",
    10 "alias": "My Checking Account 1",
    11 "country": "US",
    12 "routingNumber": "9999999999",
    13 "firstName": "Dwayne",
    14 "lastName": "Johnson",
    15 "city": "Chicago",
    16 "state": "IL",
    17 "zip": "60601",
    18 "account_number": "88888888",
    19 "address1": "85 E Wacker St"
    20}
    21'
  3. Display the total cost of the checkout purchase with our Get Totals endpoint.
    1curl --location 'https://api-sandbox.coinflow.cash/api/checkout/totals/YOUR_MERCHANT_ID' \
    2--header 'accept: application/json' \
    3--header 'content-type: application/json' \
    4--header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoicGF5ZXIxMjMiLCJtZXJjaGFudElkIjoidGVzdHRlc3QiLCJpYXQiOjE3NDc2NzI5MjQsImV4cCI6MTc0Nzc1OTMyNH0.TUpJbm1bf51opIBXnXQbP0uNZ_HF35droAw2bAOD0lw' \
    5--data '
    6{
    7 "subtotal": {
    8 "cents": 200
    9 }
    10}
    11'
    //Response
    {
    "card": {
    "subtotal": {
    "cents": 200
    },
    "creditCardFees": {
    "cents": 0
    },
    "chargebackProtectionFees": {
    "cents": 0
    },
    "gasFees": {
    "cents": 0
    },
    "total": {
    "cents": 200
    },
    "merchantPaidCreditCardFees": {
    "cents": 36
    },
    "merchantPaidGasFees": {
    "cents": 0
    },
    "merchantPaidChargebackProtectionFees": {
    "cents": 0
    }
    },
    "ach": {
    "subtotal": {
    "cents": 200
    },
    "creditCardFees": {
    "cents": 0
    },
    "chargebackProtectionFees": {
    "cents": 0
    },
    "gasFees": {
    "cents": 0
    },
    "total": {
    "cents": 200
    },
    "merchantPaidCreditCardFees": {
    "cents": 100
    },
    "merchantPaidGasFees": {
    "cents": 0
    },
    "merchantPaidChargebackProtectionFees": {
    "cents": 0
    }
    }
    }
  4. Enable an ACH Checkout
    • Note: Call Get Customer endpoint to retrieve the customer’s latest tokenized credit card token: bankAccounts[0].token
1curl --request POST \
2 --url https://api-sandbox.coinflow.cash/api/checkout/ach/YOUR_MERCHANT_ID \
3 --header 'accept: application/json' \
4 --header 'content-type: application/json' \
5 --header 'x-coinflow-auth-session-key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoicGF5ZXIxMjMiLCJtZXJjaGFudElkIjoidGVzdHRlc3QiLCJpYXQiOjE3NDc2NzI5MjQsImV4cCI6MTc0Nzc1OTMyNH0.TUpJbm1bf51opIBXnXQbP0uNZ_HF35droAw2bAOD0lw' \
6 --data '
7{
8 "subtotal": {
9 "cents": 200
10 },
11 "token": "4584a921-4deb-4e4f-ac7f-b22bb90fc90f",
12 "settlementType": "USDC"
13}
14'
1{
2 "paymentId": "d1626325-f083-418e-adf8-9a1c0bc92c37"
3}

🚧 ACH Payments take T+3 Business days to settle.