Coinflow marketplace API
The marketplace API from Coinflow — 11 operation(s) for marketplace.
The marketplace API from Coinflow — 11 operation(s) for marketplace.
openapi: 3.1.0
info:
title: API Reference authentication marketplace API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: marketplace
paths:
/seller/usdc-withdraw/recipient:
post:
operationId: add-usdc-withdraw-recipient
summary: Adds a USDC recipient.
description: Registers a solana address that can receive USDC from the merchant’s Coinflow wallet balance
tags:
- marketplace
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: Successful response
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
description: '- The recipient''s solana wallet address'
content:
application/json:
schema:
type: object
properties:
recipient:
type: string
required:
- recipient
delete:
operationId: remove-usdc-withdraw-recipient
summary: Removes a USDC recipient.
description: Removes a solana address from the merchant's allowlisted USDC recipients
tags:
- marketplace
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: Successful response
requestBody:
description: '- The recipient''s solana wallet address'
content:
application/json:
schema:
type: object
properties:
recipient:
type: string
required:
- recipient
/seller:
post:
operationId: create-seller
summary: Create Seller
description: Given the verification information, register a seller to a marketplace
tags:
- marketplace
responses:
'200':
description: Successful response
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSellerRequest'
/seller/usdc-withdraw:
post:
operationId: seller-usdc-withdraw
summary: Creates a USDC withdrawal transaction for a merchant using the Coinflow wallet
description: Creates a usdc withdrawal transaction for merchants using Coinflow wallet- so they can withdraw usdc from their wallet.
tags:
- marketplace
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/SellerUsdcWithdrawResponse'
'451':
description: Must Complete Additional Verification
content:
application/json:
schema:
$ref: '#/components/schemas/VerificationRequiredResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SellerUsdcWithdrawRequest'
/marketplace/kyc/download/{verificationId}:
get:
operationId: download-kyc
summary: Download Seller KYC verification report.
tags:
- marketplace
parameters:
- name: verificationId
in: path
required: true
schema:
type: string
- 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: Successful response
/marketplace/link/purchase:
post:
operationId: get-purchase-link
summary: Get Purchase Link
description: 'Get a link which the marketplace can redirect or present via iframe to the
customer for them to complete a purchase with a seller.'
tags:
- marketplace
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/GetMarketplaceLinkResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetMarketplacePurchaseLinkRequest'
/marketplace/link/purchase/credits:
post:
operationId: get-purchase-with-credits-link
summary: Get Purchase with Credits link
description: Get a link for a user to make a marketplace purchase with their Credits Balance
tags:
- marketplace
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/GetMarketplaceLinkResponse'
requestBody:
content:
application/json:
schema:
type: object
properties:
checkoutJwtToken:
type: string
email:
type: string
required:
- checkoutJwtToken
/marketplace/link/seller/login:
post:
operationId: get-seller-login-link
summary: Get Seller Login Link
description: 'Get a link which the marketplace can redirect sellers to login to
their dashboards and view purchases and withdraw their money.'
tags:
- marketplace
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/GetMarketplaceLinkResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Marketplace_GetSellerLoginLink_Request'
/marketplace/link/seller/registration:
post:
operationId: get-seller-register-link
summary: Get Seller Registration Link
description: 'Get a link which the marketplace can redirect new sellers to register
their accounts.'
tags:
- marketplace
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/GetMarketplaceLinkResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetMarketplaceSellerRegistrationLinkRequest'
/seller/verifyTransaction:
get:
operationId: get-verify-transaction
summary: Get Seller Verification Transaction
description: 'Returns a verification transaction so the seller needs to sign and send with their MPC wlalet.
The transaction verifies that they have access to the authentication method tied to the MPC wallet which is linked
to their Coinflow Account.'
tags:
- marketplace
parameters:
- name: parentId
in: query
description: '- The parent merchant ID (can be merchantId or _id)'
required: true
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:
type: string
/marketplace/link/subscription:
post:
operationId: get-subscribe-link
summary: Get Subscription Link
description: 'Get a link which the marketplace can redirect or present via iframe to the
customer for them to subscribe to a particular seller''s subscription.'
tags:
- marketplace
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/GetMarketplaceLinkResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GetMarketplaceSubscribeLinkRequest'
/marketplace/wallet:
post:
operationId: get-wallet-address-by-email
summary: Get wallet by email
description: 'Given an email address returns the MPC wallet address for the user. Can
be used to pass into the SDK, query the API, and check balances.'
tags:
- marketplace
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/Marketplace_GetWalletAddressByEmail_Response_200'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Email'
components:
schemas:
PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemFulfillment:
type: string
enum:
- digital
- physical
description: How the product was fulfilled.
title: PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemFulfillment
AdditionalVerification:
type: object
properties:
name:
type: string
link:
type: string
reference:
type: string
vendor:
$ref: '#/components/schemas/VerificationVendor'
sessionToken:
type: string
required:
- name
- link
- reference
- vendor
title: AdditionalVerification
SellerDocVKybBody:
type: object
properties:
email:
type: string
onboardingToken:
type: string
description: 'Server-signed onboarding token minted by the parent marketplace. The
parent is derived from this token — it cannot be supplied directly.
Not required when the request is authenticated with the marketplace''s
API key; the parent is then derived from the key.'
sellerId:
type: string
description: MerchantId of the individual seller
business:
type: boolean
country:
type: string
required:
- email
- sellerId
- business
- country
title: SellerDocVKybBody
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
MoneyTopUpCartItemItemClass:
type: string
enum:
- moneyTopUp
description: 'Denotes the cart item class. The item schema is chosen based on this value.
Allowed value: moneyTopUp
Example: moneyTopUp'
title: MoneyTopUpCartItemItemClass
CreateSellerRequest:
oneOf:
- $ref: '#/components/schemas/SellerUsKybBody'
- $ref: '#/components/schemas/SellerUsKycBody'
- $ref: '#/components/schemas/SellerDocVKybBody'
- $ref: '#/components/schemas/SellerDocVKycBody'
title: CreateSellerRequest
SellerDocVKycBody:
type: object
properties:
email:
type: string
onboardingToken:
type: string
description: 'Server-signed onboarding token minted by the parent marketplace. The
parent is derived from this token — it cannot be supplied directly.
Not required when the request is authenticated with the marketplace''s
API key; the parent is then derived from the key.'
sellerId:
type: string
description: MerchantId of the individual seller
individual:
type: boolean
country:
type: string
disableAutoApprove:
type: boolean
required:
- email
- sellerId
- individual
- country
title: SellerDocVKycBody
KycUserInformation:
type: object
properties:
email:
type: string
firstName:
type: string
surName:
type: string
physicalAddress:
type: string
city:
type: string
state:
type: string
zip:
type: string
country:
type: string
description: ISO 3166-1 alpha-2 country codes
dob:
type: string
description: Date of birth in YYYYMMDD format
ssn:
type: string
description: 4 Digit SSN
required:
- email
- firstName
- surName
- physicalAddress
- city
- state
- zip
- country
- dob
- ssn
title: KycUserInformation
CartItemAddress:
type: object
properties:
country:
type: string
description: 'Country code specified as a two letter code according to ISO 3166 Alpha-2
Between 2 and 2 characters
Example: US
Pattern: ^[A-Z]{2}$'
state:
type: string
description: 'The state or province
Example: PA'
city:
type: string
description: 'The city or locality
Example: Pittsburgh'
street:
type: string
description: 'The street name
Example: Baker St'
postalCode:
type: string
description: The address postal code
description: Address structure
title: CartItemAddress
GetMarketplaceSellerRegistrationLinkRequest:
type: object
properties:
email:
type: string
sellerId:
type: string
description: ID of the seller
country:
type: string
description: Country in which the seller is located
redirectUrl:
type: string
description: Optional url for post registration navigation
required:
- email
- sellerId
title: GetMarketplaceSellerRegistrationLinkRequest
SellerUsdcWithdrawResponse:
type: object
properties:
transaction:
type: string
required:
- transaction
title: SellerUsdcWithdrawResponse
RecipientInfoWallet:
type: object
properties:
custodialType:
$ref: '#/components/schemas/RecipientInfoWalletCustodialType'
description: 'The type of the wallet
Allowed values: custodial, nonCustodial, unknown
Example: custodial'
blockchain:
type: string
description: 'The blockchain on which the transaction was made
Example: BTC
Pattern: ^[A-Z0-9-]+$'
address:
type: string
description: The crypto wallet address that will receive the funds
required:
- custodialType
- blockchain
- address
description: The crypto wallet that will receive the funds
title: RecipientInfoWallet
RecipientInfoWalletCustodialType:
type: string
enum:
- custodial
- nonCustodial
- unknown
description: 'The type of the wallet
Allowed values: custodial, nonCustodial, unknown
Example: custodial'
title: RecipientInfoWalletCustodialType
CryptoCartItemItemClass:
type: string
enum:
- crypto
description: 'Denotes the cart item class. The item schema is chosen based on this value.
Allowed value: crypto
Example: crypto'
title: CryptoCartItemItemClass
NameCustomerInfo:
type: object
properties:
verificationId:
type: string
displayName:
type: string
address:
type: string
city:
type: string
state:
type: string
zip:
type: string
country:
type: string
ip:
type: string
lat:
type: string
lng:
type: string
dob:
type: string
description: Date of birth in YYYY-MM-DD format
email:
type: string
name:
type: string
title: NameCustomerInfo
CryptoCartItem:
type: object
properties:
itemClass:
$ref: '#/components/schemas/CryptoCartItemItemClass'
description: 'Denotes the cart item class. The item schema is chosen based on this value.
Allowed value: crypto
Example: crypto'
id:
type: string
description: 'The cart items''s unique ID
Example: 5de33332-546a-4171-8988-2a43d2bfe9c6'
rawProductData:
$ref: '#/components/schemas/AnyObject'
units:
type: string
description: 'The amount in the crypto currency which is specified in the `cryptoCurrency` property
Example: 1.04112
Pattern: ^[0-9]+(\.[0-9]+)?$'
cryptoCurrency:
type: string
description: 'The crypto-currency symbol (uppercase)
Example: BTC
Pattern: ^[A-Z0-9-]+$'
unitPrice:
$ref: '#/components/schemas/CryptoCartItemUnitPrice'
description: The price per 1 unit
expectedDeliveryDelay:
type: number
format: double
description: 'The expected delay in delivery, in hours
Min value: 0'
recipientInfo:
$ref: '#/components/schemas/RecipientInfo'
seller:
$ref: '#/components/schemas/SellerInfo'
required:
- itemClass
- units
- cryptoCurrency
- unitPrice
- recipientInfo
description: Represents a crypto item in a shopping cart
title: CryptoCartItem
SellerUsKycBody:
type: object
properties:
email:
type: string
onboardingToken:
type: string
description: 'Server-signed onboarding token minted by the parent marketplace. The
parent is derived from this token — it cannot be supplied directly.
Not required when the request is authenticated with the marketplace''s
API key; the parent is then derived from the key.'
sellerId:
type: string
description: MerchantId of the individual seller
individual:
type: boolean
info:
$ref: '#/components/schemas/KycUserInformation'
required:
- email
- sellerId
- individual
- info
title: SellerUsKycBody
SplitNameCustomerInfo:
type: object
properties:
verificationId:
type: string
displayName:
type: string
address:
type: string
city:
type: string
state:
type: string
zip:
type: string
country:
type: string
ip:
type: string
lat:
type: string
lng:
type: string
dob:
type: string
description: Date of birth in YYYY-MM-DD format
email:
type: string
firstName:
type: string
lastName:
type: string
required:
- firstName
- lastName
title: SplitNameCustomerInfo
PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice:
type: object
properties:
currency:
type: string
valueInCurrency:
type: number
format: double
description: The item's list price
title: PickNftCartItemExcludeKeyofnftCartItemSellingPriceOrItemClassListPrice
CustomerInfo:
oneOf:
- $ref: '#/components/schemas/SplitNameCustomerInfo'
- $ref: '#/components/schemas/NameCustomerInfo'
title: CustomerInfo
GetMarketplaceLinkResponse:
type: object
properties:
link:
type: string
description: URL to redirect or present via IFrame
required:
- link
title: GetMarketplaceLinkResponse
CurrencyAmount:
type: object
properties:
valueInCurrency:
type: number
format: double
description: 'The amount in the currency, which is specified in the `currency` property
Example: 90'
currency:
type: string
description: 'Currency specified as a three letter code according to ISO 4217
Example: USD'
required:
- valueInCurrency
- currency
description: Common currency amount structure
title: CurrencyAmount
Verification:
type: object
properties:
reference:
type: string
status:
$ref: '#/components/schemas/VerificationStatus'
vendor:
$ref: '#/components/schemas/VerificationVendor'
name:
type: string
attested:
type: boolean
shareToken:
type: string
shareTokenStatus:
type: string
sessionToken:
type: string
required:
- reference
- status
- vendor
title: Verification
CryptoCartItemUnitPrice:
type: object
properties:
currency:
type: string
description: 'Currency specified as a three letter code according to ISO 4217
Example: USD'
valueInCurrency:
type: number
format: double
description: 'The amount in the currency, which is specified in the `currency` property
Example: 90'
required:
- currency
- valueInCurrency
description: The price per 1 unit
title: CryptoCartItemUnitPrice
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
GetMarketplaceSellerEmailLoginLinkRequest:
type: object
properties:
email:
type: string
description: Email which the seller will use the login to their seller dashboard.
required:
- email
title: GetMarketplaceSellerEmailLoginLinkRequest
Email:
type: object
properties:
email:
type: string
required:
- email
title: Email
UboInfo:
type: object
properties:
ssn:
type: string
dob:
type: string
country:
type: string
description: ISO 3166-1 alpha-2 country codes
zip:
type: string
state:
type: string
city:
type: string
physicalAddress:
type: string
surName:
type: string
firstName:
type: string
required:
- ssn
- dob
- country
- zip
- state
- city
- physicalAddress
- surName
- firstName
title: UboInfo
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
ThreeDsChallengePreference:
type: string
enum:
- NoPreference
- Frictionless
- Challenge
title: ThreeDsChallengePreference
CartClassOmitted:
type: array
items:
$ref: '#/components/schemas/CartItemClassOmitted'
description: Cart item details required for Coinflow Chargeback Protection. Required if the merchant uses chargeback protection.
title: CartClassOmitted
KybInformationBusiness:
type: object
properties:
country:
type: string
description: Main business country
zip:
type: string
description: Main business zip code
state:
type: string
description: Main business state/providence
city:
type: string
description: Main business city
address2:
type: string
address1:
type: string
description: Main business street address
required:
- country
- zip
- state
- city
- address1
title: KybInformationBusiness
Marketplace_GetSellerLoginLink_Request:
oneOf:
- $ref: '#/components/schemas/GetMarketplaceSellerEmailLoginLinkRequest'
- $ref: '#/components/schemas/GetMarketplaceSellerIdLoginLinkRequest'
title: Marketplace_GetSellerLoginLink_Request
GetMarketplaceSellerIdLoginLinkRequest:
type: object
properties:
sellerId:
type: string
required:
- sellerId
title: GetMarketplaceSellerIdLoginLinkRequest
RecipientInfo:
type: object
properties:
accountId:
type: string
description: The ID of the account that will receive the purchased goods
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]))?$'
email:
type:
- string
- 'null'
description: 'Email
Example: lois.lane@dailyplanet.com'
firstName:
type: string
description: 'First name
Example: Lois'
gender:
type: string
description: 'Gender
Example: female'
lastName:
type: string
description: 'Last name
Example: Lois'
message:
type: string
description: The message that the recipient will receive
phoneInfo:
$ref: '#/components/schemas/PhoneInfo'
shippingAddress:
$ref: '#/components/schemas/CartItemAddress'
wallet:
$ref: '#/components/schemas/RecipientInfoWallet'
description: The crypto wallet that will receive the funds
title: RecipientInfo
PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceSellingPrice:
type: object
properties:
currency:
type: string
valueInCurrency:
type: number
format: double
required:
- currency
- valueInCurrency
title: PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceSellingPrice
MoneyTopUpCartItem:
type: object
properties:
itemClass:
$ref: '#/components/schemas/MoneyTopUpCartItemItemClass'
description: 'Denotes the cart item class. The item schema is chosen based on this value.
Allowed value: moneyTopUp
Example: moneyTopUp'
id:
type: string
description: 'The cart items''s unique ID
Example: 5de33332-546a-4171-8988-2a43d2bfe9c6'
rawProductData:
$ref: '#/components/schemas/Record_string.any_'
sellingPrice:
$ref: '#/components/schemas/CurrencyAmount'
recipientInfo:
$ref: '#/components/schemas/RecipientInfo'
topUpAmount:
$ref: '#/components/schemas/CurrencyAmount'
quantity:
type: number
format: double
description: 'Quantity
Example: 2'
isPresetAmount:
type: boolean
description: 'Represents whether the item amount is taken from a preset list, e.g. 25, 50, 100, etc.
or whether it was a different amount, e.g. 27'
required:
- itemClass
- sellingPrice
- topUpAmount
- quantity
- isPresetAmount
description: Represents a money top-up item in a shopping cart
title: MoneyTopUpCartItem
Cents:
type: object
properties:
cents:
type: integer
required:
- cents
title: Cents
Marketplace_GetWalletAddressByEmail_Response_200:
type: object
properties:
blockchain:
type: string
wallet:
type: string
required:
- blockchain
- wallet
title: Marketplace_GetWalletAddressByEmail_Response_200
AnyObject:
type: object
properties:
# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coinflow/refs/heads/main/openapi/coinflow-marketplace-api-openapi.yml