Coinflow redeem API
The redeem API from Coinflow — 4 operation(s) for redeem.
The redeem API from Coinflow — 4 operation(s) for redeem.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coinflow-redeem-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Reference authentication Redeem API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: redeem
paths:
/redeem/evm/creditsAuthMsg:
post:
operationId: get-evm-credits-auth-msg
summary: (EVM only) Get Credits Authorization Message
description: 'Endpoint to generate an EIP-712 typed data message for authorizing credits usage on EVM chains.
This endpoint is used to retrieve a "CreditsAuthorization" message that the user must sign using their wallet (e.g., MetaMask)
via the eth_signTypedData_v4 method. The resulting signed message (permitCredits) is then supplied to the
`/api/redeem/evm/sendGaslessTx` endpoint to execute a gasless redeem transaction.
**Request Body:**
- `merchantId` (string): The ID of the merchant requesting redemption.
- `subtotal` (Subtotal): The transaction subtotal (either in USDC or a token-based subtotal).
- `transactionData` (EvmTransactionData): Transaction details used for calculating gas fees and total credits required.
**Response:**
Returns an object with the following properties:
- `message` (string): A JSON string representing the EIP-712 typed data.
- `validBefore` (string): A timestamp or block number indicating until when the message is valid.
- `nonce` (string): A unique value to prevent replay attacks.
- `creditsRawAmount` (number): The raw credits amount calculated based on the transaction subtotal and estimated gas fees.'
tags:
- redeem
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/GetCreditsAuthMessageResponse'
'412':
description: Wallet does not have enough credits to complete redeem request, this can happen when the network is slow. Please retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
requestBody:
description: Request body containing the parameters required for generating the credits authorization message.
content:
application/json:
schema:
$ref: '#/components/schemas/GetEvmCreditsAuthMsgBody'
/redeem/evm/sendGaslessTx:
post:
operationId: send-evm-credits-gasless-tx
summary: (EVM only) Send Redeem Transaction with Credits Authorization Message
description: 'Endpoint to send a credits redeem transaction on EVM-based blockchains.
This endpoint processes a gasless transaction for redeeming credits. It requires a signed permit message
(contained in `signedMessages.permitCredits`) that was previously generated by the `/evm/creditsAuthMsg` endpoint.
**How It Works:**
- Validates that the provided signed permit (EIP-712 signature) is correct.
- Constructs the transaction using provided details and sends it through the appropriate EVM network provider.
**Request Body:**
- `merchantId` (string): The ID of the merchant.
- `subtotal` (Subtotal): The transaction subtotal.
- `transactionData` (EvmTransactionData): Details of the transaction to be executed.
- `signedMessages` (SignedMessages): Contains the signed permit message (permitCredits) for credit authorization.
- `chargebackProtectionData?` (CartItemClassOmitted): Optional chargeback protection data.
- `validBefore`, `nonce`, `creditsRawAmount`: Values returned by `/evm/creditsAuthMsg` for further verification.
**Response:**
Returns an object containing:
- `hash` (string): The transaction hash of the submitted gasless transaction.'
tags:
- redeem
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
- name: x-device-id
in: header
description: Optional device identifier provided in the request header.
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Redeem_SendEvmCreditsGaslessTx_Response_200'
'412':
description: Wallet does not have enough credits to complete redeem request, this can happen when the network is slow. Please retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
requestBody:
description: Request body with all necessary parameters to execute the gasless redeem transaction.
content:
application/json:
schema:
$ref: '#/components/schemas/EvmRedeemBody'
/redeem/merchant:
post:
operationId: get-merchant-wallet-redeem-transaction
summary: Create Merchant Wallet Redemption Transaction
description: Creates a transaction for the user to sign in order to redeem their Coinflow credits, with the resulting stablecoins being delivered to the merchant's settlement wallet.
tags:
- redeem
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
- name: x-device-id
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/RedeemResponse'
'412':
description: Wallet does not have enough credits to complete redeem request, this can happen when the network is slow. Please retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MerchantWalletRedeemBody'
/redeem:
post:
operationId: get-redeem-transaction
summary: Create Redeem Transaction
description: 'Creates a transaction for the user to sign in order to redeem their Coinflow credits with a merchant''s contract.
The transaction passed to this endpoint should be the same as if the end user''s wallet was calling the merchant''s contract with enough USDC/Other Cryto Currency to successfully complete the transaction.'
tags:
- redeem
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
- name: x-device-id
in: header
required: false
schema:
type: string
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/RedeemResponse'
'412':
description: Wallet does not have enough credits to complete redeem request, this can happen when the network is slow. Please retry the request.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RedeemBody'
components:
schemas:
AnyObject:
type: object
properties:
example:
type: string
title: AnyObject
CustomerUsdcTransferDataV2:
type: object
properties:
from:
type: string
to:
type: string
value:
type: string
validAfter:
$ref: '#/components/schemas/CustomerUsdcTransferDataV2ValidAfter'
validBefore:
$ref: '#/components/schemas/CustomerUsdcTransferDataV2ValidBefore'
nonce:
type: string
signature:
type: string
required:
- from
- to
- value
- validAfter
- validBefore
- nonce
- signature
description: 'V2 of CustomerUsdcTransferData — replaces the (v, r, s) triple with a single
`signature` bytes string, matching USDC FiatTokenV2_2''s bytes-overload
`transferWithAuthorization`. All other fields unchanged from V1.'
title: CustomerUsdcTransferDataV2
SafeMintRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
transaction:
$ref: '#/components/schemas/SafeMintRedeemTransaction'
description: Transaction to be called.
type:
$ref: '#/components/schemas/SafeMintRedeemType'
nftContract:
type: string
required:
- transaction
- type
description: '(EVM only) If your contract mints an NFT via a OpenZeppelin Safe Mint Call, then utilize this object.
The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the SafeMint event, and fwd''s the NFT to the end user''s wallet.'
title: SafeMintRedeem
TokenRedeemType:
type: string
enum:
- token
title: TokenRedeemType
RedeemBodyNativeSolToConvertLamports:
oneOf:
- type: string
- type: number
format: double
title: RedeemBodyNativeSolToConvertLamports
SellerInfo:
type: object
properties:
id:
type: string
description: Id of the seller
email:
type:
- string
- 'null'
description: 'Email
Example: lois.lane@dailyplanet.com'
firstName:
type: string
description: 'First name
Example: Lois'
lastName:
type: string
description: 'Last name
Example: Lois'
dob:
type: string
description: 'Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY
Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$'
rawSellerData:
$ref: '#/components/schemas/Record_string.any_'
title: SellerInfo
Subtotal:
oneOf:
- $ref: '#/components/schemas/CurrencyCents'
- $ref: '#/components/schemas/Cents'
- $ref: '#/components/schemas/TokenSubtotal'
title: Subtotal
TokenSubtotal:
type: object
properties:
address:
type: string
description: 'The tokens address
Solana - Token Mint Address
Evm - Token Contract Address'
amount:
$ref: '#/components/schemas/TokenSubtotalAmount'
description: Number of tokens
decimals:
type: number
format: double
description: Number of decimals for the token
required:
- address
- amount
title: TokenSubtotal
MerchantWalletRedeemBody:
type: object
properties:
merchantId:
type: string
chargebackProtectionData:
$ref: '#/components/schemas/RedeemCartItems'
webhookInfo:
$ref: '#/components/schemas/AnyObject'
feePercentage:
type: number
format: double
description: 'If this purchase is for a seller/submerchant where the marketplace takes a fee, this is the % fee which is
taken from the subtotal amount.'
fixedFee:
$ref: '#/components/schemas/Cents'
jwtToken:
type: string
description: 'This is a token encoding the parameters for the request. Allows purchase parameters to be verified
to prevent manipulation when the checkout page is presented to the user.'
redeemAmount:
$ref: '#/components/schemas/Cents'
subtotal:
$ref: '#/components/schemas/Cents'
required:
- merchantId
- subtotal
description: From T, pick a set of properties whose keys are in the union K
title: MerchantWalletRedeemBody
CurrencyCents:
type: object
properties:
cents:
type: integer
currency:
$ref: '#/components/schemas/Currency'
required:
- cents
- currency
title: CurrencyCents
Redeem_SendEvmCreditsGaslessTx_Response_200:
type: object
properties:
hash:
type: string
required:
- hash
title: Redeem_SendEvmCreditsGaslessTx_Response_200
ReturnedTokenIdRedeemType:
type: string
enum:
- returned
title: ReturnedTokenIdRedeemType
RedeemResponse:
type: object
properties:
transaction:
type: string
description: 'Transaction for the users wallet to sign and send.
Solana - base 58 encoded transaction, recover using: `Transaction.from(base58.decode(transaction))`
Near - Base 64 encoded stringified transaction, recover using: `JSON.parse(Buffer.from(transaction, ''base64'').toString());`
Evm - Base 64 encoded stringified transaction, recover using: `JSON.parse(Buffer.from(transaction, ''base64'').toString());`'
required:
- transaction
title: RedeemResponse
GetEvmCreditsAuthMsgBody:
type: object
properties:
merchantId:
type: string
description: The ID of the merchant requesting redemption.
subtotal:
$ref: '#/components/schemas/Subtotal'
transactionData:
$ref: '#/components/schemas/EvmTransactionData'
usdcAmount:
$ref: '#/components/schemas/Cents'
required:
- merchantId
- subtotal
- transactionData
title: GetEvmCreditsAuthMsgBody
productType:
type: string
enum:
- inGameProduct
- gameOfSkill
- dataStorage
- computingResources
- sportsTicket
- eSportsTicket
- musicTicket
- conferenceTicket
- virtualSportsTicket
- virtualESportsTicket
- virtualMusicTicket
- virtualConferenceTicket
- alcohol
- DLC
- subscription
- fundACause
- realEstate
- computingContract
- digitalArt
- topUp
- ownershipContract
- inGameCurrency
- digitalCollectibles
- digitalCollectiblesMarketplace
- digitalGiftingMarketplace
- sweepstakes
- virtualSportsEvents
- contractInvoicing
- onlineCasino
- cryptoOnramp
- gaming
- travelDocuments
- musicStreaming
- digitalContent
- eBooks
- digitalSubscriptionContent
title: productType
TransactionHistoryItem:
type: object
properties:
txType:
type: string
chain:
type: string
paymentAmount:
type: string
paymentToken:
type: string
to:
type: string
from:
type: string
registryContract:
type: string
assetID:
type: string
txTime:
type: string
blockNumber:
type: number
format: double
txHash:
type: string
required:
- txType
- chain
- paymentAmount
- paymentToken
- to
- from
- registryContract
- assetID
- txTime
- blockNumber
- txHash
title: TransactionHistoryItem
TokenRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
type:
$ref: '#/components/schemas/TokenRedeemType'
destination:
type: string
required:
- type
- destination
title: TokenRedeem
RedeemCartItems:
type: array
items:
$ref: '#/components/schemas/Pick_nftCartItem.Exclude_keyofnftCartItem.sellingPrice-or-itemClass__'
title: RedeemCartItems
NormalRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
transaction:
$ref: '#/components/schemas/NormalRedeemTransaction'
description: Transaction to be called.
required:
- transaction
description: '(EVM only) If your contract sends the item/service being purchased via a custom "receiver" field, then utilize this object.
The coinflow contract calls the "to" contract, which transfers the NFT/item to the "receiver" address defined in the contract function arguments.'
title: NormalRedeem
PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice:
type: object
properties:
currency:
type: string
valueInCurrency:
type: number
format: double
description: The item's list price
title: PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice
RedeemBodyRent:
type: object
properties:
lamports:
$ref: '#/components/schemas/RedeemBodyRentLamports'
required:
- lamports
description: (Solana Only) if your transaction requires a known amount of Rent to be paid, you can pass it here.
title: RedeemBodyRent
CustomerUsdcTransferDataV2ValidAfter:
oneOf:
- type: string
- type: number
format: double
title: CustomerUsdcTransferDataV2ValidAfter
Pick_nftCartItem.Exclude_keyofnftCartItem.sellingPrice-or-itemClass__:
type: object
properties:
productName:
type: string
description: The name of the related product
productType:
$ref: '#/components/schemas/productType'
listPrice:
$ref: '#/components/schemas/PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice'
description: The item's list price
quantity:
type: number
format: double
description: The number of units sold
rawProductData:
$ref: '#/components/schemas/AnyObject'
seller:
$ref: '#/components/schemas/SellerInfo'
transactionHistory:
type: array
items:
$ref: '#/components/schemas/TransactionHistoryItem'
required:
- productName
- productType
- quantity
description: From T, pick a set of properties whose keys are in the union K
title: Pick_nftCartItem.Exclude_keyofnftCartItem.sellingPrice-or-itemClass__
CustomerUsdcTransferDataValidBefore:
oneOf:
- type: string
- type: number
format: double
title: CustomerUsdcTransferDataValidBefore
DecentRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
type:
$ref: '#/components/schemas/DecentRedeemType'
dstChainId:
type: number
format: double
description: 'ID of the destination chain you will be using
Find your chain ID here: https://chainlist.org/'
dstToken:
type: string
description: Address on that chain of the token you will be receiving
contractAddress:
type: string
description: The contract address which will be called on the destination chain
contractData:
type: string
cost:
$ref: '#/components/schemas/DecentRedeemCost'
description: Amount of the token on the destination chain you will be receiving
required:
- type
- dstChainId
- dstToken
- contractAddress
- contractData
- cost
description: If your contract exists on a chain supported by Decent, pass this object in order to call it.
title: DecentRedeem
ApiError:
type: object
properties:
name:
type: string
message:
type: string
stack:
type: string
required:
- name
- message
title: ApiError
ReturnedTokenIdRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
transaction:
$ref: '#/components/schemas/ReturnedTokenIdRedeemTransaction'
description: Transaction to be called.
type:
$ref: '#/components/schemas/ReturnedTokenIdRedeemType'
nftContract:
type: string
required:
- transaction
- type
description: '(EVM only) If your contract returns the NFT ID, then utilize this object.
The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the returned NFT ID, and fwd''s the NFT to the end user''s wallet.'
title: ReturnedTokenIdRedeem
Record_string.any_:
type: object
properties: {}
description: Construct a type with a set of properties K of type T
title: Record_string.any_
CustomerUsdcTransferData:
type: object
properties:
from:
type: string
to:
type: string
value:
type: string
validAfter:
$ref: '#/components/schemas/CustomerUsdcTransferDataValidAfter'
validBefore:
$ref: '#/components/schemas/CustomerUsdcTransferDataValidBefore'
nonce:
type: string
v:
type: number
format: double
r:
type: string
s:
type: string
required:
- from
- to
- value
- validAfter
- validBefore
- nonce
- v
- r
- s
description: 'Customer signed USDC transferWithAuthorization data for dual-source payments
Used for combined USDC + Credit Card payments on EVM chains'
title: CustomerUsdcTransferData
RedeemBodyNativeSolToConvert:
type: object
properties:
lamports:
$ref: '#/components/schemas/RedeemBodyNativeSolToConvertLamports'
required:
- lamports
description: '(Solana Only) Only use this if your subtotal.token is `So11111111111111111111111111111111111111112` and your
contract requires native SOL. This will convert the amount of wSOL to native SOL for use in the transaction.'
title: RedeemBodyNativeSolToConvert
CustomerUsdcTransferDataValidAfter:
oneOf:
- type: string
- type: number
format: double
title: CustomerUsdcTransferDataValidAfter
EvmRedeemBody:
type: object
properties:
merchantId:
type: string
description: The ID of the merchant requesting redemption.
subtotal:
$ref: '#/components/schemas/Subtotal'
transactionData:
$ref: '#/components/schemas/EvmTransactionData'
usdcAmount:
$ref: '#/components/schemas/Cents'
signedMessages:
$ref: '#/components/schemas/SignedMessages'
chargebackProtectionData:
$ref: '#/components/schemas/RedeemCartItems'
validBefore:
type: string
description: Values returned from getEvmCreditsAuthMsg endpoint
nonce:
type: string
creditsRawAmount:
type: number
format: double
required:
- merchantId
- subtotal
- transactionData
- signedMessages
- validBefore
- nonce
- creditsRawAmount
description: EVM-specific Redeem body
title: EvmRedeemBody
RedeemBody:
type: object
properties:
merchantId:
type: string
subtotal:
$ref: '#/components/schemas/Subtotal'
transaction:
type: string
description: 'Transaction for which the purchase will be redeemed. This should be constructed by the merchant, and should
be setup the same way as if the user has USDC/Purchase Token in their wallet. The endpoint will modify this
transaction and then send it back to the user to sign and send.
Solana - base 58 encoded transaction, create using: `base58.encode(transaction.serialize({ requireAllSignatures: false, verifySignatures: false }))`
Evm - Base 64 encoded stringified transaction, create using: `Buffer.from(JSON.stringify(transaction)).toString(''base64'')`'
signedMessages:
$ref: '#/components/schemas/SignedMessages'
chargebackProtectionData:
$ref: '#/components/schemas/RedeemCartItems'
rent:
$ref: '#/components/schemas/RedeemBodyRent'
description: (Solana Only) if your transaction requires a known amount of Rent to be paid, you can pass it here.
nativeSolToConvert:
$ref: '#/components/schemas/RedeemBodyNativeSolToConvert'
description: '(Solana Only) Only use this if your subtotal.token is `So11111111111111111111111111111111111111112` and your
contract requires native SOL. This will convert the amount of wSOL to native SOL for use in the transaction.'
skipBalanceCheck:
type: boolean
required:
- merchantId
- subtotal
- transaction
title: RedeemBody
TokenSubtotalAmount:
oneOf:
- type: number
format: double
- type: string
description: Number of tokens
title: TokenSubtotalAmount
SafeMintRedeemType:
type: string
enum:
- safeMint
title: SafeMintRedeemType
KnownTokenIdRedeemTransaction:
type: object
properties:
data:
type: string
description: 'The data to call this contract with, HEX encoded.
The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.'
to:
type: string
description: The merchant's whitelisted contract
required:
- data
- to
description: Transaction to be called.
title: KnownTokenIdRedeemTransaction
Currency:
type: string
enum:
- USD
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CAD
- CHF
- CLF
- CLP
- CNY
- COP
- CRC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ETB
- EUR
- FJD
- GBP
- GEL
- GHS
- GMD
- GNF
- GTQ
- GYD
- HKD
- HNL
- HTG
- HUF
- IDR
- ILS
- INR
- IQD
- IRR
- ISK
- JMD
- JOD
- JPY
- KES
- KGS
- KHR
- KMF
- KRW
- KWD
- KYD
- KZT
- LAK
- LBP
- LKR
- LRD
- LSL
- LYD
- MAD
- MDL
- MGA
- MKD
- MMK
- MNT
- MOP
- MRU
- MUR
- MWK
- MVR
- MXN
- MYR
- MZN
- NAD
- NGN
- NIO
- NOK
- NPR
- NZD
- OMR
- PAB
- PEN
- PGK
- PHP
- PKR
- PLN
- PYG
- QAR
- RON
- RSD
- RWF
- SAR
- SCR
- SDG
- SEK
- SGD
- SLE
- SLL
- SOS
- SRD
- STN
- SVC
- SYP
- SZL
- THB
- TJS
- TMT
- TND
- TOP
- TRY
- TTD
- TWD
- TZS
- UAH
- UGX
- UYU
- UZS
- VND
- VUV
- WST
- XAF
- XCD
- XOF
- XPF
- YER
- ZAR
- ZMW
- ZWL
- CDF
- ERN
- FKP
- KPW
- RUB
- SBD
- SHP
- SSP
- VES
title: Currency
NormalRedeemTransaction:
type: object
properties:
data:
type: string
description: 'The data to call this contract with, HEX encoded.
The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.'
to:
type: string
description: The merchant's whitelisted contract
required:
- data
- to
description: Transaction to be called.
title: NormalRedeemTransaction
ReturnedTokenIdRedeemTransaction:
type: object
properties:
data:
type: string
description: 'The data to call this contract with, HEX encoded.
The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.'
to:
type: string
description: The merchant's whitelisted contract
required:
- data
- to
description: Transaction to be called.
title: ReturnedTokenIdRedeemTransaction
SignedMessages:
type: object
properties:
permitCredits:
type: string
description: (Evm only) This is the signed permit messages that the user must sign granting the Merchant Contract access to their balances.
customerUsdcAuthData:
$ref: '#/components/schemas/CustomerUsdcTransferData'
customerUsdcAuthDataV2:
$ref: '#/components/schemas/CustomerUsdcTransferDataV2'
required:
- permitCredits
title: SignedMessages
CustomerUsdcTransferDataV2ValidBefore:
oneOf:
- type: string
- type: number
format: double
title: CustomerUsdcTransferDataV2ValidBefore
DecentRedeemCost:
type: object
properties:
isNative:
type: boolean
description: 'Whether or not the token is the native token for the chain (ex: Ethereum - ETH, Polygon - POL).
If native dstToken should be the 0 address (0x00...)'
amount:
type: string
description: 'This is the raw amount of the token
ex: 50000000000000n'
required:
- isNative
- amount
description: Amount of the token on the destination chain you will be receiving
title: DecentRedeemCost
KnownTokenIdRedeem:
type: object
properties:
waitForHash:
type: boolean
description: 'Whether the UI should wait
for the transaction to be sent and
the hash to be returned.'
transaction:
$ref: '#/components/schemas/KnownTokenIdRedeemTransaction'
description: Transaction to be called.
nftContract:
type: string
description: The address of the Nft's Contract
nftId:
type: string
description: The ID of the NFT being purchased. Will be forwarded by the Coinflow contract to the customer's wallet.
required:
- transaction
- nftContract
- nftId
description: '(EVM only) If your know the ID of the NFT being
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coinflow/refs/heads/main/openapi/coinflow-redeem-api-openapi.yml