Token updated

POST https://webhook.example.com

This webhook event is triggered when an expiration date for a previously tokenized card is updated.

Headers

  • x-fsk-wh-chksm string Required

    The SHA-256 hash signature of the webhook payload, encoded in base64.

application/json

Body

The request body for the token.updated webhook event.

  • event object Required

    Webhook event details.

    Hide event attributes Show event attributes object
    • id string Required

      Unique ID for this webhook event.

    • type string Required

      The type of event that occurred.

    • timestamp string(date-time) Required

      The time when the event was triggered (UTC).

  • originalResponse object Required

    Represents the response to a tokenized card update request.

    Hide originalResponse attributes Show originalResponse attributes object
    • id string

      Unique ID for this card update transaction.

    • paymentMethod object

      The tokenized card that was updated.

      Hide paymentMethod attributes Show paymentMethod attributes object
      • id string Required

        The unique identifier of the payment method. This ID has a prefix that makes it human-readable (pmt_trm_* for physical terminals, pmt_vrt_* for virtual terminals, pmt_tkn_* for tokenized cards), but applications should always use the type field to determine the payment method type rather than parsing this ID.

      • dateDeleted string(date-time)

        The date and time (UTC) when this payment method token was removed from the system using the Remove Token endpoint. This parameter will only be returned if the token was removed/deleted from the system.

        This field will be present in three scenarios:

        • As part of a successful Remove Token endpoint response
        • In token.removed webhook notifications
        • In List Transactions responses for transactions where the associated token was later removed

        When this field is present, sensitive card details (maskedCardNumber, cardExpDate) will be removed for security purposes, but all other transaction data remains intact.

      • type string Required

        The type of payment method:

        • Physical - A physical payment terminal for Card Present transactions
        • Virtual - A hosted payment form/iframe for Card Not Present transactions
        • Token - A tokenized card for card-on-file transactions

        Values are Physical, Virtual, or Token.

      • currency string Required

        The currency of the payment method.

        Values are USD or CAD.

      • description string

        A human-readable name for the payment method.

      • cardType string

        The type of card used for this transaction:

        • UNKNOWN - The card type is unknown
        • DEBIT - Debit Card
        • VISA - Visa Credit Card
        • MASTERCARD - MasterCard Credit Card
        • AMEX - American Express Credit Card
        • DINERS - Diners Club Credit Card
        • DISCOVER - Discover Credit Card
        • JCB - JCB Credit Card
        • UNIONPAY - UnionPay Credit Card
        • MAESTRO - Maestro Debit Card
        • GIFT - Gift Card
        • CASH - All-cash Transaction
        • EBT - Electronic Benefits Transfer Card
        • OTHER - Other tender types

        Values are UNKNOWN, DEBIT, VISA, MASTERCARD, AMEX, DINERS, DISCOVER, JCB, UNIONPAY, MAESTRO, GIFT, CASH, EBT, or OTHER.

      • maskedCardNumber string

        The masked card number. The format may vary (e.g. *********0011, 4*0011, etc.)

      • cardExpDate string

        The expiration date of the card in MMYY format.

    • referenceId string

      The reference ID for this transaction. This will either be the reference ID provided in the transaction request or, if no value was provided, a value generated automatically by the system. This reference ID can be used for processing captures and referenced refunds by including it in the originalReferenceId field of subsequent transactions.

      Maximum length is 100.

    • resultCode number

      Result codes:

      • 0 - Successful transaction request. (Check each transactionResponse's responseCode to determine if a transaction was approved or declined, card was tokenized, etc.)
      • 1003 - The payment terminal is busy or unavailable. (If this error persists, the user may need to close and re-open the Payment Application on the terminal or restart the terminal)
      • 1005 - The specified terminal could not be found.
      • 3000 - An unexpected error occurred. Please try again.
      • 3002 - The transaction could not be completed because the payment terminal could not find the related transaction.
      • 3005 - To resolve this error, power off your payment terminal, wait one minute and retry the transaction. If the error persists, please contact support.
      • 3006 - The transaction could not be completed because the payment terminal is low on battery.
      • 3009 - The transaction could not be completed because of network connectivity issues with the payment terminal. Please restore connectivity and try again.
      • 3010 - The transaction took too long and was cancelled by the application.
      • 3011 - Invalid transaction request. Please consult the documentation for valid transaction requests.
      • 3012 - Invalid transaction request. paymentMethodId is invalid.
      • 3013 - Invalid transaction request. The specified amount appears to be incorrect. Please retry with a smaller amount.
      • 3014 - Invalid amount. Please try your transaction again with an amount greater than $0.
      • 3020 - An unsupported transaction result was received.
      • 9998 - The system is not ready to process a transaction.
      • 9999 - An unknown error has occurred. If available, an auxiliary error code will be provided in the message.

      Values are 0, 1003, 1005, 3000, 3002, 3005, 3006, 3009, 3010, 3011, 3012, 3013, 3014, 3020, 9998, or 9999.

    • resultText string

      A message describing the result code in more detail.

Responses

  • 200 application/json

    Successful acknowledgement of a webhook event. The response should be a 200 OK status with an empty body.

POST TokenUpdated
Request example
{
  "event": {
    "id": "evt_01JS21X856RR8R69GV5F17XK9C",
    "type": "token.updated",
    "timestamp": "2025-04-16T14:30:00Z"
  },
  "originalResponse": {
    "id": "trx_01J2F0ZJ2JW5B63CJFPXRGAB1S",
    "resultCode": 0,
    "resultText": "Card successfully updated",
    "referenceId": "ref_update_card_12345",
    "paymentMethod": {
      "id": "pmt_tkn_01JRZPRGFF4J2SZC3HMDBYEN2J",
      "type": "Token",
      "cardType": "VISA",
      "currency": "USD",
      "cardExpDate": "1225",
      "description": "Token for John Doe's Visa",
      "maskedCardNumber": "************0011"
    }
  }
}
Response examples (200)
{
  "value": {}
}