Coinflow checkout API
The checkout API from Coinflow — 33 operation(s) for checkout.
The checkout API from Coinflow — 33 operation(s) for checkout.
openapi: 3.1.0
info:
title: API Reference authentication checkout API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: checkout
paths:
/checkout/ach/{merchantId}:
post:
operationId: ach-checkout
summary: ACH Checkout
description: Processes a checkout via ACH.
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'428':
description: User must re-verify account
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AchCheckoutArgs'
/checkout/apa/{merchantId}:
post:
operationId: apa-checkout
summary: APA Checkout
description: Initiates the checkout for an APA Payment
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_ApaCheckout_Response_200'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/Pick_VerificationRequiredResponse.verification-or-verificationLink_'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ApaCheckoutArgs'
/checkout/v2/apple-pay/{merchantId}:
post:
operationId: apple-pay
summary: Apple Pay Checkout
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'402':
description: ApplePay unavailable
content:
application/json:
schema:
description: Any type
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ApplePayCheckoutArgs'
/checkout/apple-pay/validatemerchant:
get:
operationId: validate-merchant
summary: Apple Pay Validate Merchant
tags:
- checkout
parameters:
- name: domainName
in: query
description: '- Top level domain that the Apple Pay Button is associated with'
required: true
schema:
type: string
- name: merchantId
in: query
description: 'The merchant ID associated with this request, required
if you are utilizing custom certificates
- The Merchant ID of the Merchant'
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
description: Any type
/checkout/capture:
post:
operationId: capture-payment
summary: Capture Payment
description: If a payment has been created with authOnly=true, capture it using this endpoint.
tags:
- checkout
parameters:
- name: Authorization
in: header
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_CapturePayment_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CapturePaymentRequest'
/checkout/card/{merchantId}:
post:
operationId: card-checkout
summary: Card Checkout
description: Processes a checkout via credit card information, will tokenize and save the card for reuse by the customer in the future.
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
description: '- (Optional) If you are using Coinflow Chargeback Protection, you must pass the device id of the customer''s device.'
required: false
schema:
type: string
- name: x-coinflow-client-ip
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CardCheckoutResponse'
'412':
description: Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/Pick_VerificationRequiredResponse.verification-or-verificationLink_'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CardCheckoutArgs'
/checkout/card-on-file-authorized:
post:
operationId: card-on-file-authorized
summary: Card on File Authorized
description: 'Checks if a user is authorized for card on file transactions with this card.
It is recommended to call this endpoint to confirm card on file transactions can be performed with a card before attempting any session (such as an auction) involving card on file transactions.'
tags:
- checkout
parameters:
- name: x-coinflow-auth-user-id
in: header
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
required: false
schema:
type: string
- name: x-coinflow-client-ip
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_CardOnFileAuthorized_Response_200'
'403':
description: Card on file not enabled
content:
application/json:
schema:
description: Any type
'410':
description: Validation for this card has expired. Revalidate the CVV for this card, and make a new purchase using the /api/checkout/card/token in order to begin using this endpoint again.
content:
application/json:
schema:
$ref: '#/components/schemas/RevalidateCVVFields'
'412':
description: 3DS Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
requestBody:
content:
application/json:
schema:
type: object
properties:
token:
type: string
required:
- token
/checkout/card-on-file:
post:
operationId: card-on-file-checkout
summary: Card On File Checkout
description: 'Processes a Card On File Transaction using a saved card from a previous Customer Initiated Transaction (CIT).
This endpoint can only be used if the customer is actively involved
in the purchase flow and has explicitly granted their authorization
to charge their card.'
tags:
- checkout
parameters:
- name: x-coinflow-auth-user-id
in: header
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
required: false
schema:
type: string
- name: x-coinflow-client-ip
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'403':
description: Card on file not enabled
content:
application/json:
schema:
description: Any type
'410':
description: Validation for this card has expired. Revalidate the CVV for this card, and make a new purchase using the /api/checkout/card/token in order to begin using this endpoint again.
content:
application/json:
schema:
$ref: '#/components/schemas/RevalidateCVVFields'
'412':
description: 3DS Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CardOnFileCheckoutArgs'
/checkout/cashapp/{merchantId}:
post:
operationId: cash-app-checkout
summary: Cash App Checkout
description: Initiates the checkout for a Cash App Payment
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
description: '- (Optional) If you are using Coinflow Chargeback Protection, you must pass the device id of the customer''s device.'
required: false
schema:
type: string
- name: x-coinflow-client-ip
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_CashAppCheckout_Response_200'
'412':
description: Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/Pick_VerificationRequiredResponse.verification-or-verificationLink_'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CashAppCheckoutArgs'
/checkout/pix:
post:
operationId: create-pix-payment
summary: Create Pix Payment
description: Initiates a Pix payment order. Returns a BR code used to pay the order. Must be paid before the returned expiration date (5 minutes).
tags:
- checkout
parameters:
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PixCheckoutResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PixCheckoutArgs'
/checkout/crypto:
post:
operationId: crypto-checkout-headless
summary: Crypto Payin
description: Initiates a payment where the customer is paying with Crypto
tags:
- checkout
parameters:
- name: x-coinflow-auth-user-id
in: header
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/HeadlessCheckoutSession'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CryptoHeadlessCheckoutArgs'
get:
operationId: get-supported-chains-and-tokens-for-merchant
summary: Get supported chains and tokens
description: Get the supported chains and tokens for crypto payin w/ merchant settings
tags:
- checkout
parameters:
- name: subtotalCents
in: query
description: '- (Optional) - include parameter to receive quoted fee in response'
required: false
schema:
type: number
format: double
- name: subtotalCurrency
in: query
description: '- (Optional) - include parameter if subtotal is not USD'
required: false
schema:
$ref: '#/components/schemas/Currency'
- name: tier
in: query
description: '- (Optional) - filter tokens by fee tier'
required: false
schema:
$ref: '#/components/schemas/CryptoTier'
- name: Authorization
in: header
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/SupportedChainTokenCombos'
/checkout/jwt-token:
post:
operationId: get-checkout-jwt-token
summary: Get Checkout Jwt Token
description: "Gets a Checkout Jwt Token for a purchase\n\nCheckout JWT tokens ensure:\n1. The arguments of the purchase cannot be manipulated\n2. The checkout JWT is only valid for a single purchase\n3. The arguments of the purchase are encrypted to be hidden from the user\n (webhook info, chargebackProtectionData, etc...)"
tags:
- checkout
parameters:
- name: Authorization
in: header
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_GetCheckoutJwtToken_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCheckoutLinkArgs'
/checkout/link:
post:
operationId: get-checkout-link
summary: Get Checkout Link
description: 'Gets a checkout link for the UserID that can be embedded in vanilla iframe
or the user can be redirected to'
tags:
- checkout
parameters:
- name: x-coinflow-auth-user-id
in: header
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-coinflow-submerchant-id
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_GetCheckoutLink_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetCheckoutLinkArgs'
/checkout/destination-auth-key:
post:
operationId: get-destination-auth-key
summary: Get Destination Auth Key
description: 'If your merchant account is settling USDC to an account OTHER than
the one defined in your settlement settings, you can utilize this
endpoint to get a destinationAuthKey which can be passed into the
checkout endpoints which will settle USDC to the account which
is passed into this endpoint.'
tags:
- checkout
parameters:
- name: Authorization
in: header
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Checkout_GetDestinationAuthKey_Response_200'
requestBody:
content:
application/json:
schema:
type: object
properties:
blockchain:
$ref: '#/components/schemas/Blockchain'
destination:
type: string
required:
- blockchain
- destination
/checkout/fees:
post:
operationId: get-fees
summary: Get Interchange Fees
description: 'Gets the breakdown of possible fees
It is unlikely you will be calling this endpoint. Only call if you want to see the fee breakdown for all payment methods ex: Debit vs. Credit. If you are trying to display
all possible fees (including gas) broken down by line item and the final total amount, call the "Get Totals" endpoint.'
tags:
- checkout
parameters:
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Partial_Record_PaymentMethods.FeeOption-Array-or-FeeDetail-or-CurrencyCents__'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FeeDetailRequest'
/checkout/totals/{merchantId}:
post:
operationId: get-totals
summary: Get Totals
description: Gets the fees, quotes, and totals for a particular checkout.
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Record_PaymentMethods.TotalsResponseSettlement-or-undefined_'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetTotalsBody'
/checkout/evm/usdc-authorization:
post:
operationId: get-usdc-authorization-message
summary: Get USDC Authorization Message (EVM only)
description: 'Gets the USDC authorization message to be signed by the customer for dual-source payments.
The signed message allows the customer''s USDC to be used alongside credit card payment.
This is only necessary for EVM chains when using customer USDC + credit card payment.'
tags:
- checkout
parameters:
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/GetUsdcAuthorizationResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetUsdcAuthorizationBody'
/checkout/google-pay/{merchantId}:
post:
operationId: google-pay
summary: Google Pay Checkout
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'402':
description: GooglePay unavailable
content:
application/json:
schema:
description: Any type
'412':
description: Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GooglePayCheckoutArgs'
/checkout/interac:
post:
operationId: interac-checkout
summary: Interac e-Transfer Checkout (New Contact)
description: Initiates an Interac e-Transfer payin with a new contact. Returns the paymentId.
tags:
- checkout
parameters:
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/InteracCheckoutResponse'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewInteracCheckoutArgs'
/checkout/interac/token:
post:
operationId: interac-token-checkout
summary: Interac e-Transfer Checkout (Saved Contact)
description: Initiates an Interac e-Transfer payin with a previously saved contact.
tags:
- checkout
parameters:
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/InteracCheckoutResponse'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavedTokenCheckoutArgs'
/checkout/merchant-initiated-transaction:
post:
operationId: merchant-initiated-transaction
summary: Merchant Initiated Transaction
description: 'Processes a Merchant Initated Transaction using a saved card from a previous Customer Initiated Transaction (CIT) authorized for this purpose.
This endpoint can only be used if the customer has once before authorized their card to be charged on your platform.
An example flow would be a usage based billing paradigm. A customer would add their card and perform a zero authorization transaction which would then allow this card to be charged in subsequent merchant initiated transactions.'
tags:
- checkout
parameters:
- name: x-coinflow-auth-user-id
in: header
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/CheckoutResponse'
'403':
description: Merchant Initiated Transactions not enabled
content:
application/json:
schema:
description: Any type
'410':
description: Validation for this card has expired. Revalidate the CVV for this card, and make a new purchase using the /api/checkout/card/token in order to begin using this endpoint again.
content:
application/json:
schema:
$ref: '#/components/schemas/RevalidateCVVFields'
'429':
description: Reached Max Number of Transactions In Period
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MerchantInitiatedTransactionArgs'
/checkout/paypal/{merchantId}:
post:
operationId: new-pay-pal-checkout
summary: PayPal New Checkout
description: Initiates the checkout for PayPal payment with a new account
tags:
- checkout
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: x-coinflow-auth-session-key
in: header
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
required: true
schema:
type: string
- name: x-device-id
in: header
description: '- (Optional) If you are using Coinflow Chargeback Protection, you must pass the device id of the customer''s device.'
required: false
schema:
type: string
- name: x-coinflow-client-ip
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/PayPalCheckoutResponse'
'412':
description: Challenge required
content:
application/json:
schema:
$ref: '#/components/schemas/ChallengeFields'
'423':
description: Customer is Blocked
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/Pick_VerificationRequiredResponse.verification-or-verificationLink_'
requestBody:
content:
application/json:
schema:
# --- truncated at 32 KB (250 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coinflow/refs/heads/main/openapi/coinflow-checkout-api-openapi.yml