APIPaymentsPayment instrument
Create a payment instrument (Basis Theory proxy)
Create a payment instrument from a Basis Theory token. Browser uses the BT SDK to tokenize a card, then sends `{tokenId, identityId, type, ...}` here. The route forwards through the BT proxy to Finix; raw PAN data never touches easy-api.
Authorization
apiKey x-easy-api-key<token>
Merchant API key. Publishable keys (pk_test_* / pk_live_) are safe for browser/frontend use and carry a limited scope set (sessions, payment_instruments, customers, orders writes; products, product_prices, payment_links reads). Secret keys (sk_test_ / sk_live_*) grant full admin access and must only be used server-side.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://loading/v1/api/payment-instruments/" \ -H "Content-Type: application/json" \ -d '{ "type": "PAYMENT_CARD", "tokenId": "tok_abc123", "identityId": "IDxxxxxxxxxxxxxxxxxx", "name": "John Doe", "address": { "postal_code": "94105" }, "tags": { "customer_type": "premium" } }'{
"success": true,
"timestamp": "2026-02-06T12:00:00.000Z",
"message": "Payment instrument created",
"data": {
"id": "PIxxxxxxxxxxxxxxxxxx",
"identity_id": "IDxxxxxxxxxxxxxxxxxx",
"instrument_type": "PAYMENT_CARD",
"type": "PAYMENT_CARD",
"created_at": "2026-02-06T12:00:00.000Z"
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}{
"success": false,
"timestamp": "2019-08-24T14:15:22Z",
"error": {
"code": "string",
"message": "string",
"details": null
}
}