Coinflow withdraw API
The withdraw API from Coinflow — 30 operation(s) for withdraw.
The withdraw API from Coinflow — 30 operation(s) for withdraw.
openapi: 3.1.0
info:
title: API Reference authentication withdraw API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: withdraw
paths:
/withdraw/interac:
post:
operationId: add-interac
summary: Add Interac Account
description: Adds an interac account to the withdrawer's account which they can withdraw funds to.
tags:
- withdraw
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:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddInteracArgs'
/withdraw/account:
post:
operationId: create-bank-account
summary: Create Bank Account
description: Creates a bank account for a particular user or business.
tags:
- withdraw
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/AddWithdrawMethodResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddBankAccountArgs'
/withdraw/account/v2:
post:
operationId: create-bank-account-v-2
summary: Create Bank Account (v2)
description: Creates a bank account for a particular user or business
tags:
- withdraw
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/AddWithdrawMethodResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddBankAccountV2Args'
/withdraw/debit-card:
post:
operationId: add-debit-card
summary: Create Debit Card
description: 'Adds a debit card to the withdrawer''s account which they can withdraw funds to.
Will check the card to see if its eligible to receive funds.'
tags:
- withdraw
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:
type: string
'412':
description: User Address Info Required - Please provide address info in body.address parameters
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddDebitCardArgs'
/withdraw/eft:
post:
operationId: create-eft-account
summary: Create EFT Account
description: 'Creates an EFT account for a particular Canadian user or business.
Accepts raw Canadian bank details (institution number, transit number, account number).'
tags:
- withdraw
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: Token representing the new EFT account
content:
application/json:
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddEftAccountArgs'
/withdraw/iban:
post:
operationId: create-iban-account
summary: Create Iban Account
description: Creates an Iban account for a particular user
tags:
- withdraw
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: Token representing the new Iban account
content:
application/json:
schema:
type: string
'426':
description: BIC required
content:
application/json:
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IbanAccountData'
/withdraw/pix:
post:
operationId: create-pix-account
summary: Create Pix Account
description: Creates a Pix account for a particular user
tags:
- withdraw
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:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
pixKey:
type: string
required:
- pixKey
/withdraw/transaction:
post:
operationId: get-transaction
summary: Create Transactions
description: Creates the transaction to be signed by the user and sent to the blockchain.
tags:
- withdraw
parameters:
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/GetWithdrawTransactionResponse'
'412':
description: User Address Info Required - Please provide address info in body.address parameters
content:
application/json:
schema:
description: Any type
'451':
description: User Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/GetTransactionRequestUnavailableForLegalReasonsError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetWithdrawTransactionRequestBody'
/withdraw/account/{token}:
delete:
operationId: delete-withdrawer-account
summary: Delete Withdrawer Bank Account
description: Deletes a bank account for a particular user or business.
tags:
- withdraw
parameters:
- name: token
in: path
description: The token of the bank account to delete.
required: true
schema:
type: string
- 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/Withdraw_DeleteWithdrawerAccount_Response_200'
/withdraw/card/{token}:
delete:
operationId: delete-withdrawer-card
summary: Delete Withdrawer Card
description: Deletes a card for a particular user or business.
tags:
- withdraw
parameters:
- name: token
in: path
description: The token of the card to delete.
required: true
schema:
type: string
- 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/Withdraw_DeleteWithdrawerCard_Response_200'
/withdraw/eft/{token}:
delete:
operationId: delete-eft-account
summary: Delete Withdrawer EFT Account
description: Deletes an EFT account for a particular user
tags:
- withdraw
parameters:
- name: token
in: path
required: true
schema:
type: string
- 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/Withdraw_DeleteEftAccount_Response_200'
/withdraw/iban/{token}:
delete:
operationId: delete-iban-account
summary: Delete Withdrawer Iban Account
description: Deletes an Iban account for a particular user
tags:
- withdraw
parameters:
- name: token
in: path
required: true
schema:
type: string
- 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/Withdraw_DeleteIbanAccount_Response_200'
/withdraw/interac/{token}:
delete:
operationId: delete-withdrawer-interac
summary: Delete Withdrawer Interac Account
description: Deletes a bank account for a particular user or business.
tags:
- withdraw
parameters:
- name: token
in: path
description: The token of the bank account to delete.
required: true
schema:
type: string
- 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/Withdraw_DeleteWithdrawerInterac_Response_200'
/withdraw/paypal/{token}:
delete:
operationId: delete-withdrawer-paypal
summary: Delete Withdrawer Paypal Account
description: Deletes a bank account for a particular user or business.
tags:
- withdraw
parameters:
- name: token
in: path
description: The token of the bank account to delete.
required: true
schema:
type: string
- 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/Withdraw_DeleteWithdrawerPaypal_Response_200'
/withdraw/pix/{token}:
delete:
operationId: delete-pix-account
summary: Delete Withdrawer Pix Account
description: Deletes a Pix account for a particular user
tags:
- withdraw
parameters:
- name: token
in: path
required: true
schema:
type: string
- 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/Withdraw_DeletePixAccount_Response_200'
/withdraw/venmo/{token}:
delete:
operationId: delete-withdrawer-venmo
summary: Delete Withdrawer Venmo Account
description: Deletes a venmo for a particular user.
tags:
- withdraw
parameters:
- name: token
in: path
description: The token of the bank account to delete.
required: true
schema:
type: string
- 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/Withdraw_DeleteWithdrawerVenmo_Response_200'
/withdraw/balances:
get:
operationId: get-withdraw-balances
summary: Get Balances
description: Gets all the token balances for a particular wallet
tags:
- withdraw
parameters:
- name: tokenAddress
in: query
description: '- Optional token address to fetch balance for a specific token'
required: false
schema:
type: string
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/Withdraw_GetWithdrawBalances_Response_200'
/withdraw/evm/message:
post:
operationId: get-evm-message
summary: Get Message (EVM USDC/SBC/EuroE only)
description: 'Gets any messages to be signed by the user, the signed message is then passed
as the `evmPermitMessage` body property into the
`/api/withdraw/evm/transaction` endpoint.
This is only necessary for EVM chains.'
tags:
- withdraw
parameters:
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/GetMessageResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetWithdrawMessageBody'
/withdraw/quote:
get:
operationId: get-quote
summary: Get Quote
description: Gets a quote in USD cents for a particular token and amount.
tags:
- withdraw
parameters:
- name: token
in: query
description: '- The token address or contract of the token which the user is withdrawing.'
required: true
schema:
type: string
- name: amount
in: query
description: '- The amount of that token which the user is withdrawing.'
required: true
schema:
type: number
format: double
- name: merchantId
in: query
description: '- The merchant that this quote is for.'
required: true
schema:
type: string
- name: usePermit
in: query
description: '- [EVM only] whether the user''s wallet supports signing permit messages.'
required: false
schema:
type: boolean
default: true
- name: accountToken
in: query
description: '- The token of the account to use'
required: false
schema:
type: string
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/WithdrawQuote'
/withdraw:
get:
operationId: get-withdrawer
summary: Get Withdrawer
description: Gets the withdrawer record for a particular user or business.
tags:
- withdraw
parameters:
- name: redirectLink
in: query
description: '(optional): The URL to which the user will be redirected after
successfully completing verification via verificationLink. This applies
when the API responds with a 451 status code, instructing the caller
to direct the user to verificationLink first.'
required: false
schema:
type: string
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/GetWithdrawerResponse'
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawerVerificationRequiredResponse'
/withdraw/history:
get:
operationId: get-withdrawer-history
summary: Get Withdrawer History
description: Gets the withdrawal history for a particular user or business.
tags:
- withdraw
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/Withdraw_GetWithdrawerHistory_Response_200'
/withdraw/paypal:
post:
operationId: add-paypal
summary: Link Paypal Account
description: Adds a Paypal account to the withdrawer's account which they can withdraw funds to.
tags:
- withdraw
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:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddPaypalArgs'
/withdraw/venmo:
post:
operationId: add-venmo
summary: Link Venmo Account
description: Adds a Venmo account to the withdrawer's account which they can withdraw funds to.
tags:
- withdraw
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:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddVenmoArgs'
/withdraw/kyb:
post:
operationId: create-kyb
summary: Register Business
description: 'Performs a Know-Your-Business check for a particular user. Will create a withdrawer record for the user if one does not exist.
If the user has previously used coinflow to withdraw, the wallet will be added to the withdrawer record.'
tags:
- withdraw
parameters:
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/Withdraw_CreateKyb_Response_200'
'409':
description: User already exists for this wallet and merchant
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawerVerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KybRequestBody'
/withdraw/kyc:
post:
operationId: create-kyc
summary: Register User
description: 'Performs a Know-Your-Customer check for a particular user. Will create a withdrawer record for the user if one does not exist.
If the user has previously used coinflow to withdraw, the wallet will be added to the withdrawer record.
Note: If `x-coinflow-auth-wallet` in request headers is not associated with a user, the wallet will get added to the newly created /existing user withdrawer record.'
tags:
- withdraw
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/Withdraw_CreateKyc_Response_200'
'409':
description: Business already exists for this wallet and merchant
content:
application/json:
schema:
description: Any type
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/WithdrawerVerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KycRequestBody'
/withdraw/kyc/attested:
post:
operationId: create-kyc-attested
summary: Register User Via Attested KYC
tags:
- withdraw
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/Withdraw_CreateKycAttested_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttestedKycRequest'
/withdraw/kyc-doc:
post:
operationId: create-kyc-document
summary: Register User Via Document
tags:
- withdraw
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/Withdraw_CreateKycDocument_Response_200'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
email:
type: string
country:
type: string
idType:
type: string
description: 'Must be one of:
- ID_CARD
- PASSPORT
- DRIVERS
- RESIDENCE_PERMIT'
merchantId:
type: string
idFront:
type: string
format: binary
idBack:
type: string
format: binary
required:
- email
- country
- idType
- merchantId
- idFront
/withdraw/kyc/share-token:
post:
operationId: create-kyc-share-token
summary: Register User Via Share Token
tags:
- withdraw
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/Withdraw_CreateKycShareToken_Response_200'
'400':
description: The applicant linked to this share token is not approved, verification was either incomplete or failed
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/KycShareTokenBody'
/withdraw/evm/transaction:
post:
operationId: send-evm-gasless-transaction
summary: Send Gasless Withdraw Transaction (EVM USDC/SBC/EuroE only)
description: 'Send a gasless USDC withdraw transaction to the blockchain.
The gas for the transaction can either be paid by the user or by the merchant,
depending on your merchant settings.
This is only allowed for withdrawing USDC/SBC/EuroE on EVM chains.'
tags:
- withdraw
parameters:
- name: x-coinflow-auth-wallet
in: header
description: The web3 wallet 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/Withdraw_SendEvmGaslessTransaction_Response_200'
'412':
description: User Address Info Required - Please provide address info in body.address parameters
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SendEvmWithdrawTransactionBody'
/withdraw/kyc/validate:
post:
operationId: validate-kyc
summary: Validate KYC Information
description: 'This endpoint checks if the user''s provided information matches the information used during their Know-Your-Customer (KYC) verification.
It returns an object with a `valid` property that is `true` if the information matches and `false` otherwise.
A 404 error is returned if the KYC information for the user cannot be found. This does not indicate a validation failure.
Check the response body to determine if the KYC information is valid.'
tags:
- withdraw
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/Withdraw_ValidateKyc_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValidateKycBody'
components:
schemas:
Pick_IIbanAccount.Exclude_keyofIIbanAccount.vendorData__:
type: object
properties:
last4:
type: string
accountHash:
type: string
alias:
type: string
token:
type: string
reference:
type: string
sortCode:
type: string
bic:
type: string
required:
- last4
- accountHash
- alias
- token
- reference
- sortCode
description: From T, pick a set of properties whose keys are in the union K
title: Pick_IIbanAccount.Exclude_keyofIIbanAccount.vendorData__
ApplePayPaymentTokenPaymentMethod:
type: object
properties:
type:
$ref: '#/components/schemas/ApplePayPaymentTokenPaymentMethodType'
description: A value representing the card's type of payment.
network:
$ref: '#/components/schemas/ApplePayPaymentTokenPaymentMethodNetwork'
description: A string, suitable for display, that is the name of the payment network backing the card.
displayName:
type: string
description: A string, suitable for display, that describes the card.
required:
- type
- network
- displayName
description: Information about the card used in the transaction.
title: ApplePayPaymentTokenPaymentMethod
IAccountAddress:
type: object
properties:
address1:
# --- truncated at 32 KB (187 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coinflow/refs/heads/main/openapi/coinflow-withdraw-api-openapi.yml