Skip to main content
POST
Initiate Payment
Auth method: Basic (Access ID) — this endpoint only requires your x-access-id header. No request signing is needed. See Authentication.
Creates a payment request for the outlet your access ID belongs to. Tender generates a unique deposit address, calculates the all-in amount the customer must send, and returns both. Track the payment with Validate Payment or the transaction_requested, transaction_completed and related webhook events. amount is denominated in the outlet’s default fiat currency (USD if the outlet has none set). To price the payment in a specific fiat currency, use Initiate Payment By Fiat Currency. To show the customer the total before creating a payment, use Quote Payment. Payment endpoints share a limit of 120 requests per minute. See Rate limits.

Headers

string
required
Your API access ID provided by TenderExample: "your-access-id-here"
string
required
Media type of the request bodyExample: "application/json"

Body

string
required
The price to charge, in the outlet’s default fiat currency (USD if none is set). Send it as a decimal string. Tender converts it to the cryptocurrency amount and adds fees on top.Example: "10.00"
string
required
Chain identifier, as returned by Fetch Allowed ChainsExample: "tron"
string
required
Cryptocurrency identifier, as returned by Fetch Chain Currencies. The currency must be supported on chain and allowed for your outlet.Example: "usdt"
string
Your own reference for this payment, such as an order ID. referenceId is accepted as an alias. A reference can be used by only one payment at a time: reusing the reference of a payment that isn’t cancelled returns 409.Example: "ORDER-9821"
object
Optional metadata attached to the payment. Only the keys below are stored; any other keys are ignored.

Response

string
required
Status of the API requestExample: "success"
string
required
Human-readable message describing the resultExample: "success"
object
required
The new payment request. Additional fields may be present; ignore fields you don’t recognise.
The initiate response has no status field. A new payment always starts as pending; call Validate Payment to read its current status.

Errors

Error responses use the standard envelope with data: null. See Errors.

Example request

Example response

Authorizations

x-access-id
string
header
required

Basic (Access ID) authentication. Only the x-access-id header is required; no request signing.

Headers

x-access-id
string
required

Your API access ID provided by Tender

Content-Type
string
required

Media type of the request body

Body

application/json
amount
string
required

Price in the outlet's default fiat currency (USD if none is set), as a decimal string

Example:

"10.00"

chain
string
required

Chain identifier

Example:

"tron"

currency
string
required

Cryptocurrency identifier; must be supported on chain and allowed for the outlet

Example:

"usdt"

reference
string

Your own reference, such as an order ID. Must not be in use by another payment that isn't cancelled.

Maximum string length: 500
Example:

"ORDER-9821"

referenceId
string

Alias of reference

Maximum string length: 500
meta
object

Optional metadata. Other keys are ignored.

Response

Payment initiated

status
string
Example:

"success"

message
string
Example:

"success"

data
object

Additional fields may be present; ignore fields you don't recognise.