Create Sell
POST/checkout/sell
Create a Hosted Checkout session to enable a customer to offramp from your platform using the NOAH Hosted Checkout page.
Request
Header Parameters
Digitally signed JWT.
- application/json
Body
required
- BTC
- USDC
Array [
- DrivingLicense
- NationalIDCard
- Passport
- AddressProof
- ResidencePermit
- TaxID
]
Array [
]
Cryptocurrency code:
BTC
Supported fiat ISO_4217 3 letter currency codes.
USD
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
The URL to which the user is redirected at the end of the Hosted Checkout session. We will include the CheckoutSessionID, ExternalID and Status of the session, ie ?CheckoutSessionID={CheckoutSessionID}&ExternalID={ExternalID}&Status={Status}
Possible values: >= 10 characters
and <= 1000 characters
Unique identifier in user's system.
Possible values: non-empty
and <= 36 characters
A unique ID which identifies the customer in the Business' internal system and in NOAH.
Possible values: non-empty
and <= 36 characters
550e8400-e29b-41d4-a716-446655440000
Customer
object
FullName
object
required
user's first name
Possible values: non-empty
and <= 50 characters
user's last name (family name)
Possible values: non-empty
and <= 50 characters
user's middle name
Possible values: non-empty
and <= 50 characters
Possible values: >= 10 characters
and <= 10 characters
2024-04-16
Identities
object[]
required
ISO 3166-1 alpha-2 country code.
US
Possible values: non-empty
and <= 36 characters
Possible values: >= 10 characters
and <= 10 characters
2024-04-16
Possible values: >= 10 characters
and <= 10 characters
2024-04-16
Type of identification document:
Passport
PrimaryResidence
object
required
Street: the primary name of an address's street.
Possible values: >= 2 characters
and <= 200 characters
Street2: the secondary name of an address's street.
City: name of an address's city or town.
Possible values: non-empty
and <= 100 characters
PostCode: the address's postcode
Possible values: non-empty
and <= 20 characters
State: the address's state / province / county. For USA and Canada, state code in ISO 3166-2 code (e.g. CA) is required.
Possible values: non-empty
and <= 100 characters
ISO 3166-1 alpha-2 country code.
US
LineItems
object[]
required
List of line items that your customer is selling using this Hosted Checkout Session. This is used for display purposes for the customer during Checkout as well as remediation of disputed payments.
Possible values: >= 1
, <= 120
Description of the line item.
Possible values: non-empty
and <= 140 characters
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
A string which must be unique each time a new transaction is created, like a UUID or operation sequence number. Request can be idempotently retried by using the same Nonce.
Possible values: non-empty
and <= 36 characters
dc879b38-494b-4de7-98a9-068703144328
Responses
- 200
- 400
- 401
- 500
Checkout request created
- application/json
- Schema
- Example (from schema)
Schema
- Bitcoin
- Lightning
- Ethereum
- PolygonPos
- OffNetwork
- BTC
- USDC
-
For buy transactions,
Transaction.Amount = (FiatPayment.Amount - FiatPayment.FeeAmount) / FiatPayment.Rate
-
For sell transactions,
Transaction.Amount = (FiatPayment.Amount + FiatPayment.FeeAmount) / FiatPayment.Rate
Hosted URL to redirect the user to fulfil the payment.
Transaction
object
required
Payments network:
Bitcoin
When was this transaction created
2024-04-16T08:00:55Z
Statuses for transactions.
Possible values: [Pending
, Failed
, Settled
]
Settled
Whether the transactions was a credit (in) or a debit (out) in your account
Possible values: [In
, Out
]
In
A unique ID which identifies the customer in the Business' internal system and in NOAH.
Possible values: non-empty
and <= 36 characters
550e8400-e29b-41d4-a716-446655440000
Unique identifier in user's system.
Possible values: non-empty
and <= 36 characters
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Cryptocurrency code:
BTC
FiatPayment
object
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Supported fiat ISO_4217 3 letter currency codes.
USD
Orchestration
object
Orchestration details for the transaction.
Unique identifier for the rule that is matched for the transaction.
Unique identifier for the execution of the rules that is matched for the transaction.
{
"HostedURL": "string",
"Transaction": {
"ID": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"PublicID": "string",
"Network": "Bitcoin",
"Created": "2024-04-16T08:00:55Z",
"Status": "Settled",
"Direction": "In",
"CustomerID": "550e8400-e29b-41d4-a716-446655440000",
"ExternalID": "string",
"Amount": "10.1",
"NetworkFee": "10.1",
"CryptoCurrency": "BTC",
"FiatPayment": {
"Amount": "10.1",
"FeeAmount": "10.1",
"Rate": "10.1",
"FiatCurrency": "USD"
},
"Orchestration": {
"RuleID": "string",
"RuleExecutionID": "string"
}
}
}
Bad request
- application/json
- Schema
- Example (from schema)
Schema
- InvalidMessage
- Unexpected
- ResourceNotFound
- Unauthorized
- Forbidden
- InsufficientBalance
Array [
]
Type of error:
InvalidMessage
A unique reference that identifies the specific occurrence of the problem
Action taking place which resulted in error.
Details about the error.
Extensions
object
Additional information about the error.
Details about invalid request properties.
Features
object
Details about the disabled feature flags
property name*
string[]
List of reasons
string
{
"Type": "InvalidMessage",
"Instance": "string",
"Action": "string",
"Detail": "string",
"Extensions": {
"Request": {},
"Features": {}
}
}
Client is not authorized to perform this action
- application/json
- Schema
- Example (from schema)
Schema
- InvalidMessage
- Unexpected
- ResourceNotFound
- Unauthorized
- Forbidden
- InsufficientBalance
Array [
]
Type of error:
InvalidMessage
A unique reference that identifies the specific occurrence of the problem
Action taking place which resulted in error.
Details about the error.
Extensions
object
Additional information about the error.
Details about invalid request properties.
Features
object
Details about the disabled feature flags
property name*
string[]
List of reasons
string
{
"Type": "InvalidMessage",
"Instance": "string",
"Action": "string",
"Detail": "string",
"Extensions": {
"Request": {},
"Features": {}
}
}
Internal server error
- application/json
- Schema
- Example (from schema)
Schema
- InvalidMessage
- Unexpected
- ResourceNotFound
- Unauthorized
- Forbidden
- InsufficientBalance
Array [
]
Type of error:
InvalidMessage
A unique reference that identifies the specific occurrence of the problem
Action taking place which resulted in error.
Details about the error.
Extensions
object
Additional information about the error.
Details about invalid request properties.
Features
object
Details about the disabled feature flags
property name*
string[]
List of reasons
string
{
"Type": "InvalidMessage",
"Instance": "string",
"Action": "string",
"Detail": "string",
"Extensions": {
"Request": {},
"Features": {}
}
}
Callbacks
- POST Status Update
POST/
Send a callback to the specified URL when the payment status updates.
- application/json
Body
required
- Transaction
- FiatDeposit
- Transaction
- FiatDeposit
- Bitcoin
- Lightning
- Ethereum
- PolygonPos
- OffNetwork
- BTC
- USDC
-
For buy transactions,
Transaction.Amount = (FiatPayment.Amount - FiatPayment.FeeAmount) / FiatPayment.Rate
-
For sell transactions,
Transaction.Amount = (FiatPayment.Amount + FiatPayment.FeeAmount) / FiatPayment.Rate
- BankSepa
- BankLocal
- BankFedwire
- TokenizedCard
- IdentifierPix
- FiatPaymentMethodBankDisplay
- FiatPaymentMethodCardDisplay
- FiatPaymentMethodIdentifierDisplay
- Mastercard
- Visa
- PhoneNumber
- TaxID
Type of the event being sent:
Version of the event
0
Time the event occurred
2024-04-16T08:00:55Z
Data
object
required
Data specific to the event.
oneOf
Payments network:
Bitcoin
When was this transaction created
2024-04-16T08:00:55Z
Statuses for transactions.
Possible values: [Pending
, Failed
, Settled
]
Settled
Whether the transactions was a credit (in) or a debit (out) in your account
Possible values: [In
, Out
]
In
A unique ID which identifies the customer in the Business' internal system and in NOAH.
Possible values: non-empty
and <= 36 characters
550e8400-e29b-41d4-a716-446655440000
Unique identifier in user's system.
Possible values: non-empty
and <= 36 characters
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Cryptocurrency code:
BTC
FiatPayment
object
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Supported fiat ISO_4217 3 letter currency codes.
USD
Orchestration
object
Orchestration details for the transaction.
Unique identifier for the rule that is matched for the transaction.
Unique identifier for the execution of the rules that is matched for the transaction.
Details of a fiat deposit received by Noah.
Unique identifier of the fiat deposit.
When was this fiat deposit created.
2024-04-16T08:00:55Z
Positive decimal number in string format
Possible values: non-empty
and <= 38 characters
, Value must match regular expression ^[+]?([.]\d+|\d+[.]?\d*)$
10.1
Supported fiat ISO_4217 3 letter currency codes.
USD
Reference of the deposit.
Status of the deposit.
Possible values: [Pending
, Failed
, Settled
, Reversed
]
Settled
A unique ID which identifies the customer in the Business' internal system and in NOAH.
Possible values: non-empty
and <= 36 characters
550e8400-e29b-41d4-a716-446655440000
Existing payment method id to be used.
Possible values: non-empty
and <= 150 characters
Specific type of payment method:
BankLocal
Sender
object
required
Sender's fiat payment method.
Details
object
required
oneOf
Possible values: [FiatPaymentMethodBankDisplay
]
Possible values: [FiatPaymentMethodCardDisplay
]
The card scheme:
Visa
Possible values: [FiatPaymentMethodIdentifierDisplay
]
Identifier type:
PhoneNumber
User ID of the event.
Callbacks Responses
- 200
Callback received successfully