Token Response | Finix.js Reference

Token Response

The response object passed to onSubmit callback or form.submit() method on successful tokenization. Access the token via response.data.

Tokens expire 30 minutes after creation and should be used immediately to create a Payment Instrument.

Card Token

Card token shape

On success, response.data contains:

{
  "id": "TKeD6uad8xZc52Rqg1VhvSBw",
  "created_at": "2025-06-10T00:31:53.54Z",
  "updated_at": "2025-06-10T00:31:53.54Z",
  "currency": "USD",
  "expires_at": "2025-06-11T00:31:53.54Z",
  "fingerprint": "FPRrcobjtdU98gr4sjiqYR1Qg",
  "instrument_type": "PAYMENT_CARD"
}
Field Description
id Token ID (prefixed TK) — use this to create a Payment Instrument
currency USD for most countries; CAD for Canadian bank accounts
expires_at Token expires 30 minutes after creation
fingerprint Unique fingerprint for the payment instrument (prefixed FP)
instrument_type PAYMENT_CARD, BANK_ACCOUNT, or THIRD_PARTY_TOKEN

Using the token

Pass tokenData.id to your backend, then use it to create a Payment Instrument via the Finix API.

Bank Account Token

Bank token shape

Bank account tokens have the same shape as card tokens, with instrument_type: "BANK_ACCOUNT".

Using the token

Pass tokenData.id to your backend, then use it to create a Payment Instrument via the Finix API.

Error Response

Error handling

When tokenization fails, error is non-null and response is null.

Parameter Type Description
error object Error details if submission failed
response null Always null when error is present

Example JavaScript Code

// Card token — accessed via response.data in the onSubmit callback:
const tokenData = response.data || {};
// tokenData shape:
// {
//   "id": "TKeD6uad8xZc52Rqg1VhvSBw",
//   "created_at": "2025-06-10T00:31:53.54Z",
//   "updated_at": "2025-06-10T00:31:53.54Z",
//   "currency": "USD",
//   "expires_at": "2025-06-11T00:31:53.54Z",
//   "fingerprint": "FPRrcobjtdU98gr4sjiqYR1Qg",
//   "instrument_type": "PAYMENT_CARD"
// }

Finix.PaymentForm("payment-form", "sandbox", "APgPDQrLD52TYvqazjHJJchM", {
  onSubmit: function (error, response) {
    if (error) {
      console.error("Tokenization failed:", error);
      return;
    }

const tokenData = response.data || {};
    const token = tokenData.id; // e.g. "TKeD6uad8xZc52Rqg1VhvSBw"

// Send the token to your backend to create a Payment Instrument
    fetch("/your/backend", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ token: token }),
    });
  },
});

// Bank token — same shape, instrument_type differs:
const tokenData = response.data || {};
// tokenData shape:
// {
//   "id": "TKbFq4r8G5pN2mXvYhL9jW1c",
//   "created_at": "2025-06-10T00:31:53.54Z",
//   "updated_at": "2025-06-10T00:31:53.54Z",
//   "currency": "USD",
//   "expires_at": "2025-06-11T00:31:53.54Z",
//   "fingerprint": "FPaBC123def456ghi789",
//   "instrument_type": "BANK_ACCOUNT"
// }

const tokenData = response.data || {};
    const token = tokenData.id; // e.g. "TKbFq4r8G5pN2mXvYhL9jW1c"

Finix.PaymentForm("payment-form", "sandbox", "APgPDQrLD52TYvqazjHJJchM", {
  onSubmit: function (error, response) {
    if (error) {
      console.error("Tokenization failed:", error);
      return;
    }
    // response is null when error is non-null
  },
});