openapi: 3.1.0
info:
title: API Reference authentication subscription API
version: 1.0.0
servers:
- url: https://api-sandbox.coinflow.cash/api
description: https://api-sandbox.coinflow.cash/api
tags:
- name: subscription
paths:
/subscription/{merchantId}/subscribers/{subscriptionId}:
patch:
operationId: cancel-customer-subscription
summary: Customer Cancel Subscription
description: Cancel a subscription (by customer)
tags:
- subscription
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: subscriptionId
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: Successful response
/subscription/{merchantId}/plans:
get:
operationId: get-available-plans
summary: Get Available Plans
description: Get the available subscription plans for a merchant
tags:
- subscription
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:
type: array
items:
$ref: '#/components/schemas/SubscriptionPlan'
/subscription/{merchantId}/subscribers:
get:
operationId: get-customer-subscriptions
summary: Get Customer Subscriptions
description: Get the subscriptions a customer has with a merchant
tags:
- subscription
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:
type: array
items:
$ref: '#/components/schemas/SubscriptionDisplay'
/subscription/{merchantId}/plans/{code}:
get:
operationId: get-plan
summary: Get Plan
description: Get a specific subscription plan
tags:
- subscription
parameters:
- name: merchantId
in: path
required: true
schema:
type: string
- name: code
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/SubscriptionPlan'
/subscription/{merchantId}/subscribers/ach:
post:
operationId: create-subscription-ach
summary: Purchase Subscription by ACH
description: Purchase a subscription using ACH
tags:
- subscription
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:
type: string
'428':
description: User must re-verify account
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionAchSetup'
/subscription/{merchantId}/subscribers/token:
post:
operationId: create-subscription-token
summary: Purchase Subscription with Existing Card
description: Purchase a subscription with an existing credit card
tags:
- subscription
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
responses:
'200':
description: Ok
content:
application/json:
schema:
type: string
'422':
description: Address Required
content:
application/json:
schema:
description: Any type
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionTokenSetup'
/subscription/{merchantId}/subscribers/card:
post:
operationId: create-subscription-card
summary: Purchase Subscription with New Card
description: Purchase a subscription with a new credit card
tags:
- subscription
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
responses:
'200':
description: Ok
content:
application/json:
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubscriptionCardSetup'
components:
schemas:
Blockchain.TEMPO:
type: string
enum:
- tempo
title: Blockchain.TEMPO
PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemFulfillment:
type: string
enum:
- digital
- physical
description: How the product was fulfilled.
title: PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemFulfillment
Blockchain.ETH:
type: string
enum:
- eth
title: Blockchain.ETH
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
SubscriptionInterval:
type: string
enum:
- Daily
- Weekly
- Monthly
- Yearly
title: SubscriptionInterval
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
Blockchain.POLYGON:
type: string
enum:
- polygon
title: Blockchain.POLYGON
Blockchain.STELLAR:
type: string
enum:
- stellar
title: Blockchain.STELLAR
SubscriptionPlan:
type: object
properties:
id:
type: string
name:
type: string
code:
type: string
interval:
$ref: '#/components/schemas/SubscriptionInterval'
duration:
type: integer
amount:
$ref: '#/components/schemas/CurrencyCents'
description:
type: string
transaction:
type: string
settlementChain:
$ref: '#/components/schemas/OperationalBlockchain'
active:
type: boolean
merchantInitiated:
type: boolean
description: Only specify this as true if you do not want subscription payments automatically processed. Then you will be responsible for manually calling the merchant initiated transaction endpoint.
required:
- id
- name
- code
- interval
- amount
- active
title: SubscriptionPlan
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
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
VersionInfo:
type: object
properties:
url:
type: string
transactionId:
type: string
directoryServer:
type: string
version:
type: string
required:
- transactionId
- directoryServer
- version
title: VersionInfo
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
RecipientAftInfo:
type: object
properties:
firstName:
type: string
lastName:
type: string
address1:
type: string
city:
type: string
postalCode:
type: string
state:
type: string
countryCode:
type: string
dateOfBirth:
type: string
description: Recipients Date Of Birth in YYYMMDD format.
phoneNumber:
type: string
documentReference:
type: string
required:
- firstName
- lastName
- address1
- city
- postalCode
- countryCode
title: RecipientAftInfo
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
SubscriptionTokenSetupAddress:
type: object
properties:
country:
type: string
state:
type: string
zip:
type: string
city:
type: string
address1:
type: string
required:
- country
- city
- address1
description: The address field is not needed here unless explicitly given instructions to do so.
title: SubscriptionTokenSetupAddress
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
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
SubscriptionStatus:
type: string
enum:
- Active
- Canceled
- Expired
- Concluded
- Failed
- Blocked
title: SubscriptionStatus
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
SubscriptionTokenSetup:
type: object
properties:
customerInfo:
$ref: '#/components/schemas/CustomerInfo'
webhookInfo:
$ref: '#/components/schemas/AnyObject'
chargebackProtectionData:
$ref: '#/components/schemas/CartClassOmitted'
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'
planCode:
type: string
description: The code of the plan to use for the subscription
authentication3DS:
$ref: '#/components/schemas/Authentication3DS'
threeDsChallengePreference:
$ref: '#/components/schemas/ThreeDsChallengePreference'
accountFundingTransaction:
$ref: '#/components/schemas/AccountFundingTransaction'
token:
type: string
description: Token for the card to be used for the subscription
address:
$ref: '#/components/schemas/SubscriptionTokenSetupAddress'
description: The address field is not needed here unless explicitly given instructions to do so.
required:
- planCode
- token
title: SubscriptionTokenSetup
ConcludeChallenge:
type: object
properties:
transactionId:
type: string
required:
- transactionId
title: ConcludeChallenge
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
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
External3DSInfo:
type: object
properties:
transactionId:
type: string
cavv:
type: string
eci:
type: string
dsTransactionId:
type: string
acsTransactionId:
type: string
version:
type: string
required:
- transactionId
- cavv
- eci
- dsTransactionId
- acsTransactionId
- version
description: 'External 3DS info, if provided must call the endpoint
with API key or checkout JWT.'
title: External3DSInfo
ThreeDsChallengePreference:
type: string
enum:
- NoPreference
- Frictionless
- Challenge
title: ThreeDsChallengePreference
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
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
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
SubscriptionCardSetup:
type: object
properties:
customerInfo:
$ref: '#/components/schemas/CustomerInfo'
webhookInfo:
$ref: '#/components/schemas/AnyObject'
chargebackProtectionData:
$ref: '#/components/schemas/CartClassOmitted'
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'
planCode:
type: string
description: The code of the plan to use for the subscription
authentication3DS:
$ref: '#/components/schemas/Authentication3DS'
threeDsChallengePreference:
$ref: '#/components/schemas/ThreeDsChallengePreference'
accountFundingTransaction:
$ref: '#/components/schemas/AccountFundingTransaction'
card:
$ref: '#/components/schemas/SubscriptionCardSetupCard'
description: 'Credit card information.
Always pass address unless explicitly told that you may not'
required:
- planCode
- card
title: SubscriptionCardSetup
Blockchain.ARBITRUM:
type: string
enum:
- arbitrum
title: Blockchain.ARBITRUM
Authentication3DS:
oneOf:
- $ref: '#/components/schemas/Device3DSInfo'
- $ref: '#/components/schemas/External3DSInfo'
- $ref: '#/components/schemas/ConcludeChallenge'
description: "3DS Card Authorization Data\n\nOn initial payment submission - Device3DSInfo needed:\n 3DS device information - required if 3DS is enabled\n\nAfter card challenge complete:\n 3DS challenge transaction id - required after prompted for challenge"
title: Authentication3DS
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
SubscriptionAchSetup:
type: object
properties:
customerInfo:
$ref: '#/components/schemas/CustomerInfo'
webhookInfo:
$ref: '#/components/schemas/AnyObject'
chargebackProtectionData:
$ref: '#/components/schemas/CartClassOmitted'
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'
planCode:
type: string
description: The code of the plan to use for the subscription
token:
type: string
description: Token for the bank account to be used for the subscription
required:
- planCode
- token
title: SubscriptionAchSetup
CartItemClassOmitted:
oneOf:
- $ref: '#/components/schemas/Pick_nftCartItem.Exclude_keyofnftCartItem.sellingPrice-or-itemClass__'
- $ref: '#/components/schemas/Pick_GiftCardCartItem.Exclude_keyofGiftCardCartItem.listPrice__'
- $ref: '#/components/schemas/CryptoCartItem'
- $ref: '#/components/schemas/MoneyTopUpCartItem'
title: CartItemClassOmitted
Pick_GiftCardCartItem.Exclude_keyofGiftCardCartItem.listPrice__:
type: object
properties:
brand:
type: string
description: The name of the brand
sellingPrice:
$ref: '#/components/schemas/PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceSellingPrice'
itemClass:
$ref: '#/components/schemas/PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemClass'
productType:
$ref: '#/components/schemas/PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceProductType'
quantity:
type: number
format: double
description: The number of units sold
rawProductData:
$ref: '#/components/schemas/Record_string.any_'
seller:
$ref: '#/components/schemas/SellerInfo'
id:
type: string
description: The cart items’s unique ID
itemFulfillment:
$ref: '#/components/schemas/PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemFulfillment'
description: How the product was fulfilled.
sku:
type: string
description: The stock-keeping unit (SKU) number
categories:
type: array
items:
type: string
description: The category in the site/app in which the item was classified (e.g., fashion)
isGift:
type: boolean
recipientInfo:
$ref: '#/components/schemas/RecipientInfo'
expectedDeliveryDelay:
type: number
format: double
description: The expected delay in delivery, in hours
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:
- sellingPrice
- itemClass
- productType
- quantity
- id
- itemFulfillment
description: From T, pick a set of properties whose keys are in the union K
title: Pick_GiftCardCartItem.Exclude_keyofGiftCardCartItem.listPrice__
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__
CardDataWithoutAddress:
type: object
properties:
cardToken:
type: string
description: This is the card token received from the `CoinflowCardNumberInput`
expYear:
type: string
description: 'The Cards Expiration Year ex: 2026 => 26'
expMonth:
type: string
description: 'The Cards Expiration Month ex: January => 01 December => 12'
additionalVendorData:
$ref: '#/components/schemas/CardDataWithoutAddressAdditionalVendorData'
description: 'Optional non-PCI passthrough fields merged into the stored card vendorData.
Base type is empty; tokenization providers extend it with their own fields.'
email:
type: string
businessName:
type: string
firstName:
type: string
lastName:
type: string
required:
- cardToken
- expYear
- expMonth
- email
- firstName
- lastName
title: CardDataWithoutAddress
PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceProductType:
type: string
enum:
- giftCard
title: PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceProductType
SubscriptionCardSetupCard:
oneOf:
- $ref: '#/components/schemas/CardData'
- $ref: '#/components/schemas/CardDataWithoutAddress'
description: 'Credit card information.
Always pass address unless explicitly told that you may not'
title: SubscriptionCardSetupCard
SubscriptionDisplay:
type: object
properties:
id:
type: string
customerId:
type: string
blockchain:
$ref: '#/components/schemas/Blockchain'
merchantId:
type: string
email:
type: string
plan:
type: string
planCode:
type: string
nextPaymentAt:
type: string
format: date-time
status:
$ref: '#/components/schemas/SubscriptionStatus'
required:
- id
- customerId
- merchantId
- email
- plan
- planCode
- status
title: SubscriptionDisplay
Blockchain.BASE:
type: string
enum:
- base
title: Blockchain.BASE
CardDataWithoutAddressAdditionalVendorData:
type: object
properties: {}
description: 'Optional non-PCI passthrough fields merged into the stored card vendorData.
Base type is empty; tokenization providers extend it with their own fields.'
title: CardDataWithoutAddressAdditionalVendorData
CardDataAdditionalVendorData:
type: object
properties: {}
description: 'Optional non-PCI passthrough fields merged into the stored card vendorData.
Base type is empty; tokenization providers extend it with their own fields.'
title: CardDataAdditionalVendorData
AccountFundingTransaction:
type: object
properties:
recipientAftInfo:
$ref: '#/components/schemas/RecipientAftInfo'
description: Used for Account Funding Transactions
title: AccountFundingTransaction
CardData:
type: object
properties:
cardToken:
type: string
description: This is the card token received from the `CoinflowCardNumberInput`
expYear:
type: string
description: 'The Cards Expiration Year ex: 2026 => 26'
expMonth:
type: string
description: 'The Cards Expiration Month ex: January => 01 December => 12'
additionalVendorData:
$ref: '#/components/schemas/CardDataAdditionalVendorData'
description: 'Optional non-PCI passthrough fields merged into the stored card vendorData.
Base type is empty; tokenization providers extend it with their own fields.'
email:
type: string
businessName:
type: string
firstName:
type: string
lastName:
type: string
address1:
type: string
city:
type: string
zip:
type: string
state:
type: string
country:
type: string
required:
- cardToken
- expYear
- expMonth
- email
- firstName
- lastName
- address1
- city
- country
title: CardData
Blockchain.MONAD:
type: string
enum:
- monad
title: Blockchain.MONAD
Record_string.any_:
type: object
properties: {}
description: Construct a type with a set of properties K of type T
title: Record_string.any_
Device3DSInfo:
type: object
properties:
colorDepth:
type: number
format: double
screenHeight:
type: number
format: double
screenWidth:
type: number
format: double
timeZone:
type: number
format: double
versionInfo:
type: array
items:
$ref: '#/components/schemas/VersionInfo'
required:
- colorDepth
- screenHeight
- screenWidth
- timeZone
title: Device3DSInfo
CurrencyCents:
type: object
properties:
cents:
type: integer
currency:
$ref: '#/components/schemas/Currency'
required:
- cents
- currency
title: CurrencyCents
PhoneInfo:
type: object
properties:
carrier:
type: string
description: 'The mobile carrier
Example: T-Mobile'
countryCode:
type: string
description: 'The country code (leading `+` is optional)
Example: 42
Pattern: ^\+?[0-9]+$'
phone:
type: string
description: 'The phone number without the country code or hyphens
Example: 2025550169
Pattern: ^[0-9]+$'
required:
- countryCode
- phone
description: Phone information structure
title: PhoneInfo
OperationalBlockchain:
oneOf:
- $ref: '#/components/schemas/Blockchain.SOLANA'
- $ref: '#/components/schemas/Blockchain.ETH'
- $ref: '#/components/schemas/Blockchain.POLYGON'
- $ref: '#/components/schemas/Blockchain.BASE'
- $ref: '#/components/schemas/Blockchain.ARBITRUM'
- $ref: '#/components/schemas/Blockchain.STELLAR'
- $ref: '#/components/schemas/Blockchain.MONAD'
- $ref: '#/components/schemas/Blockchain.TEMPO'
title: OperationalBlockchain
PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemClass:
type: string
enum:
- giftCard
title: PickGiftCardCartItemExcludeKeyofGiftCardCartItemListPriceItemClass
Blockchain.SOLANA:
type: string
enum:
- solana
title: Blockchain.SOLANA
RecipientInfoWalletCustodialType:
type: string
enum:
- custodial
- nonCustodial
- unknown
description: 'The type of the wallet
Allowed values: custodial, nonCustodial, unknown
Example: custodial'
title: RecipientInfoWalletCustodialType
AnyObject:
type: object
properties:
example:
type: string
title: AnyObject
Blockchain:
type: string
enum:
- solana
- eth
- polygon
- base
- user
- arbitrum
- stellar
- monad
- tempo
title: Blockchain
securitySchemes:
wallet:
type: apiKey
in: header
name: x-coinflow-auth-wallet
description: The web3 wallet of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
blockchain:
type: apiKey
in: header
name: x-coinflow-auth-blockchain
description: The blockchain associated with the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
userId:
type: apiKey
in: header
name: x-coinflow-auth-user-id
description: The external identifier of the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
merchant:
type: apiKey
in: header
name: Authorization
description: The API key of the merchant - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
signedMessage:
type: apiKey
in: header
name: x-coinflow-auth-signed-message
description: The message signed by the users wallet
merchantId:
type: apiKey
in: header
name: x-coinflow-auth-merchant-id
description: The merchant ID the session should be generated for
sessionKey:
type: apiKey
in: header
name: x-coinflow-auth-session-key
description: The session key generated for the end user - see https://docs.coinflow.cash/api-reference/api-reference/authentication/get-session-key
admin:
type: apiKey
in: header
name: Authorization