# Get a single card payment

Returns a single card payment by id.

Endpoint: GET /card_payments/{id}
Version: v3
Security: auth_token, api-key

## Path parameters:

  - `id` (string, required)
    The unique identifier of a card payment.

## Response 200 fields (application/json):

  - `id` (string, required)
    Stable identifier across the entire payment lifecycle.

  - `profileId` (string)
    The profile Id which a specific identity, instrument or transaction type is linked to.

Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply.

You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs.

Profile Ids can be found in the Multi Portal, in the API Credentials page.

  - `type` (string, required)
    The high-level type of card payment. For finer-grained classification (e.g. distinguishing a sale-purchase from a sale with cashback), see the per-event subtype field.
    Enum: "PURCHASE", "REFUND", "ORIGINAL_CREDIT", "ACCOUNT_FUNDING", "CASH_WITHDRAWAL", "BALANCE_INQUIRY"

  - `card` (object, required)
    The managed card used for this payment.

  - `card.id` (string, required)
    The unique identifier of the managed card.

  - `card.type` (string, required)
    Enum: "managed_cards"

  - `card.mode` (string)
    The mode the card was created in.
  - prepaid: The card has its own balance and can have funds transferred to or from it.
  - debit: The card has no balance of its own; it draws on its parent managed account up to a configurable spend limit.
    Enum: "prepaid", "debit"

  - `card.friendlyName` (string)
    The friendly name chosen for the card.

  - `card.nameOnCard` (string)
    The cardholder name printed on the card.

  - `card.cardBrand` (string)
    The scheme of the card. Restricted to schemes supported by card payments.
    Enum: "MASTERCARD", "VISA"

  - `card.cardNumberFirstSix` (string)
    The first six digits of the card number (BIN range).

  - `card.cardNumberLastFour` (string)
    The last four digits of the card number.

  - `card.linkedUserId` (string)
    Identifier of the authorised user the card is assigned to. Populated only when the card has been assigned to a specific user.

  - `card.parentManagedAccountId` (string)
    Identifier of the managed account this card draws funds from. Populated only when mode is debit.

  - `merchant` (object, required)
    Information about a merchant — used wherever a merchant appears in card-payment flows, statement entries, and transaction activity.

  - `merchant.id` (string, required)
    Merchant identifier (MID) — the acquirer-assigned code that identifies the merchant on card-scheme messages (ISO 8583 DE 42 Card Acceptor Identification Code).

  - `merchant.name` (string, required)
    Merchant name (DBA name).

  - `merchant.nameOther` (string)
    Alternative merchant name as supplied by the card network, when present.

  - `merchant.networkId` (string)
    Identifier assigned by the acquirer or scheme to the merchant.

  - `merchant.categoryCode` (string)
    ISO 18245 merchant category code (MCC).

  - `merchant.description` (string)
    Free-text description of the merchant.

  - `merchant.street` (string)
    Street address of the merchant terminal.

  - `merchant.city` (string)
    City of the merchant terminal.

  - `merchant.state` (string)
    Subdivision (state, province, region) of the merchant terminal.

  - `merchant.postalCode` (string)
    Postal code of the merchant terminal.

  - `merchant.country` (string)
    ISO 3166-1 alpha-2 country code of the merchant terminal.

  - `merchant.telephone` (string)
    Merchant telephone.

  - `merchant.url` (string)
    Merchant website.

  - `merchant.contact` (string)
    Merchant contact (name or email of a representative, when present).

  - `merchant.reference` (string)
    Merchant-supplied reference for the transaction (the merchant's own identifier for what they billed).

  - `merchant.logoUrl` (string)
    Merchant logo URL, when available.

  - `displayAmount` (object, required)
    Platform-maintained headline amount of this card payment, in the cardholder's preferred display currency. The canonical "how much is this payment about" figure — show this on receipts, statements, and notifications and you'll always see a meaningful value.

Headline, not net. This reflects the original / intended amount of the payment and stays stable across reversals and cancellations. To compute the actual net (for accounting), walk events[] and sum the scheme amounts yourself.

Magnitude is always positive. The debit/credit direction is implicit from type (purchases debit, refunds and OCTs credit). For the lifecycle phase, read status. For amounts in the merchant's currency or the card's currency, walk events[].

  - `displayAmount.currency` (string, required)
    The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.

  - `displayAmount.amount` (integer, required)
    The monetary amount, scaled to the lowest denomination of the currency.

Example, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.

  - `status` (string, required)
    Lifecycle status of a CardPayment.

- PENDING — authorised, not yet (or not fully) settled. The hold is still on the card.
- SETTLED — fully settled. The customer has been charged.
- DECLINED — the latest authorisation was declined; no money moved.
- CANCELLED — the authorisation was cancelled/reversed before settlement; no charge applied.
- EXPIRED — the authorisation timed out without settling.
    Enum: "PENDING", "SETTLED", "DECLINED", "CANCELLED", "EXPIRED"

  - `relatedCardPaymentId` (string)
    Direct parent linkage — id of the single prior card payment that this payment derives from. Set on:
  - REFUND payments referring to the original purchase
  - ORIGINAL_CREDIT payments referring to the prior purchase being credited
  - Tip / add-on payments referring to the original ride / fare / service
  - Installment / recurring payments referring to the initial setup transaction

Corresponds to Visa's "Original Transaction ID" linkage and Mastercard's DE 105 subelement 002 (Economically Related Transaction Identifier). Not used for messages that share a single lifecycle — those are events on the same card payment.

  - `events` (array, required) — one of (discriminator: type):
    Ordered event stream — every scheme message in this card payment's lifecycle. For headline display use displayAmount; walk this when you need scheme-level detail (per-event amounts, fees, reason codes, reversals).
    - AUTHORISATION:
      - `id` (string, required)
      - `subtype` (string, required)
        Card-scheme network classification of the underlying transaction. Reversal-vs-original lives on the separate reversal field.
        Enum: "sale_purchases", "cash_withdrawals", "sales_with_cashback", "mail_or_telephone_orders", "account_funding"
      - `reversal` (boolean)
        True when this event is a reversal of a prior authorisation in the same lifecycle (e.g. merchant void, expiry, explicit cancellation). False for originals.
      - `result` (string)
        Approved or declined by the issuer. Populated on originals; omitted on reversals.
        Enum: "APPROVED", "DECLINED"
      - `authorisationCategory` (string)
        Pre-auth (provisional hold) or final auth. Populated on originals.
        Enum: "PRE_AUTH", "FINAL_AUTH"
      - `authForwardingDetails` (object)
        When the card is configured for auth forwarding, the forwarding context for this event.
      - `authForwardingDetails.triggered` (boolean)
        True if auth forwarding was triggered for this authorisation.
      - `authForwardingDetails.decisionOutcome` (string)
        Default decision applied if the innovator did not respond in time.
        Enum: "APPROVE", "DECLINE"
      - `authForwardingDetails.innovatorTimedOut` (boolean)
        True if the innovator failed to respond within the configured timeout and the default decision was applied.
      - `declineReason` (string)
        Present when result is DECLINED.
        Enum: "NO_REASON", "PHYSICAL_NOT_ACTIVATED", "INSUFFICIENT_BALANCE", "CVV_CHECKS_FAILED", "CVV_RETRIES_EXCEEDED", "CARD_STATUS_NOT_ALLOWED", "PIN_CHECKS_FAILED", "PIN_RETRIES_EXCEEDED", "CARD_EXPIRY_CHECKS_FAILED", "AVS_CHECKS_FAILED", "ATM_WITHDRAWAL_LIMIT_EXCEEDED", "SCA_REQUIRED", "AUTH_RULE_CHECKS_FAILED", "TRANSACTION_NOT_PERMITTED", "TIMEOUT", "SINGLE_SPEND"
      - `authRuleFailedReason` (string)
        The specific auth rule that caused the decline. Present when declineReason is AUTH_RULE_CHECKS_FAILED. Mirrors the legacy authorisation webhook's authRuleFailedReason.
      - `cancellationReason` (string)
        Free-text reason for an explicit cancellation of an authorisation hold. Populated on reversal: true events driven by explicit cancellation rather than network reversal.
      - `transactionAmount` (object)
        The amount for this event, in the merchant's currency (ISO 8583 DE 4).
      - `billingAmount` (object)
        The amount applied to the card, in the card's currency (ISO 8583 DE 6).
      - `forex` (object)
        Auth-time FX context — exchangeRate and padding. Populated on cross-currency authorisations.
      - `forex.exchangeRate` (object)
        Rate applied to convert transactionAmount into billingAmount at authorisation time. Populated on cross-currency authorisations.
      - `forex.exchangeRate.value` (integer)
      - `forex.exchangeRate.scale` (integer)
      - `forex.padding` (object)
        Extra amount blocked at authorisation time to cater for currency fluctuation between auth and settlement. Already included in the event's transactionAmount; surfaced separately so the embedder can show the cardholder how much of the charge is the FX cushion. Released or absorbed at clearing time.
      - `userAmount` (object)
        Presentation-only amount to be shown to the cardholder in their app. The userAmount will only differ from the billingAmount if a userCurrency was set for the card during card creation.
      - `userExchangeRate` (object)
        Rate applied to convert transactionAmount into userAmount. Presentation-only.
      - `authCode` (string)
        Issuer authorisation code on this scheme message (ISO 8583 DE 38). Echoed by subsequent settlement, refund, OCT messages in the same lifecycle.
      - `fees` (array) — one of (discriminator: type):
        Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step).
        - PLATFORM_FEE:
          - `id` (string, required)
            Identifier of the underlying FeeTransaction.
          - `subtype` (string, required)
            Category of fee.
            Enum: "purchase_fees", "refund_fees", "atm_withdrawal_fees", "withdrawal_fees", "chargeback_fees", "fee_reversals", "custom_fees", "other_fees"
          - `amount` (object, required)
            Fee amount, in the currency of the instrument the fee was applied to.
        - FOREX_FEE:
          - `amount` (object)
            The forex fee charged on this event, in the currency of the instrument the fee was applied to.
      - `fees.type` (string, required)
        Enum: "PLATFORM_FEE", "FOREX_FEE"
      - `timestamp` (integer, required)
        When this event occurred at the point-of-interaction, Epoch millis.
      - `processedTimestamp` (integer)
        When this event was processed by the platform, Epoch millis.
    - SETTLEMENT:
      - `id` (string, required)
      - `subtype` (string, required)
        Card-scheme network classification of the underlying transaction being settled.
        Enum: same as `subtype` in "AUTHORISATION" (5 values)
      - `reversal` (boolean)
        True when this event reverses a prior settlement; funds return to the card. False for originals.
      - `settlementState` (string, required)
        Processing state of this settlement on the platform.
        Enum: "PENDING", "COMPLETED"
      - `transactionAmount` (object)
        The amount cleared, in the merchant's currency (ISO 8583 DE 4).
      - `billingAmount` (object)
        The amount billed against the card, in the card's currency (ISO 8583 DE 6). May differ from any earlier authorisation due to final amount and forex movement.
      - `exchangeRate` (object)
        Forex rate applied at clearing time.
      - `exchangeRate.value` (integer)
      - `exchangeRate.scale` (integer)
      - `userAmount` (object)
        Presentation-only amount to be shown to the cardholder in their app. The userAmount will only differ from the billingAmount if a userCurrency was set for the card during card creation.
      - `userExchangeRate` (object)
        Rate applied to convert transactionAmount into userAmount. Presentation-only.
      - `authCode` (string)
        Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation.
      - `fees` (array) — one of (discriminator: type):
        Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step).
        - PLATFORM_FEE:
          - `id` (string, required)
            Identifier of the underlying FeeTransaction.
          - `subtype` (string, required)
            Category of fee.
            Enum: same as `subtype` in "PLATFORM_FEE" (8 values)
          - `amount` (object, required)
            Fee amount, in the currency of the instrument the fee was applied to.
        - FOREX_FEE:
          - `amount` (object)
            The forex fee charged on this event, in the currency of the instrument the fee was applied to.
      - `fees.type` (string, required)
        Enum: same as `fees.type` in "AUTHORISATION" (2 values)
      - `timestamp` (integer, required)
        When this settlement event occurred, Epoch millis.
      - `processedTimestamp` (integer)
        When this event was processed by the platform, Epoch millis.
    - REFUND:
      - `id` (string, required)
      - `reversal` (boolean)
        True when this event reverses a prior refund (money was returned to the cardholder and is now being clawed back). False for an original refund credit.
      - `subtype` (string)
        Card-scheme network classification of the refund. Reversal-vs-original lives on the separate reversal field.
        Enum: "purchase_refunds", "purchase_refund_reversals"
      - `reasonCode` (string)
        Network reason code accompanying the event, when provided by the scheme.
      - `transactionAmount` (object)
        The amount credited / reversed, in the merchant's currency.
      - `billingAmount` (object)
        The amount applied to the card, in the card's currency.
      - `exchangeRate` (object)
        Forex rate applied to convert transactionAmount into billingAmount.
      - `exchangeRate.value` (integer)
      - `exchangeRate.scale` (integer)
      - `userAmount` (object)
        Presentation-only amount to be shown to the cardholder in their app. The userAmount will only differ from the billingAmount if a userCurrency was set for the card during card creation.
      - `userExchangeRate` (object)
        Rate applied to convert transactionAmount into userAmount. Presentation-only.
      - `authCode` (string)
        Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation.
      - `fees` (array) — one of (discriminator: type):
        Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step).
        - PLATFORM_FEE:
          - `id` (string, required)
            Identifier of the underlying FeeTransaction.
          - `subtype` (string, required)
            Category of fee.
            Enum: same as `subtype` in "PLATFORM_FEE" (8 values)
          - `amount` (object, required)
            Fee amount, in the currency of the instrument the fee was applied to.
        - FOREX_FEE:
          - `amount` (object)
            The forex fee charged on this event, in the currency of the instrument the fee was applied to.
      - `fees.type` (string, required)
        Enum: same as `fees.type` in "AUTHORISATION" (2 values)
      - `timestamp` (integer, required)
        When this event occurred, Epoch millis.
      - `processedTimestamp` (integer)
        When this event was processed by the platform, Epoch millis.
    - ORIGINAL_CREDIT:
      - `id` (string, required)
      - `reversal` (boolean)
        True when this event reverses a prior OCT (push credit being clawed back). False for an original push credit.
      - `subtype` (string)
        Card-scheme network classification of the OCT. Reversal-vs-original lives on the separate reversal field.
        Enum: "original_credit_transactions", "original_credit_transaction_reversals"
      - `reasonCode` (string)
        Network reason code accompanying the event, when provided by the scheme.
      - `transactionAmount` (object)
        The amount credited / reversed, in the merchant's currency.
      - `billingAmount` (object)
        The amount applied to the card, in the card's currency.
      - `exchangeRate` (object)
        Forex rate applied to convert transactionAmount into billingAmount.
      - `exchangeRate.value` (integer)
      - `exchangeRate.scale` (integer)
      - `userAmount` (object)
        Presentation-only amount to be shown to the cardholder in their app. The userAmount will only differ from the billingAmount if a userCurrency was set for the card during card creation.
      - `userExchangeRate` (object)
        Rate applied to convert transactionAmount into userAmount. Presentation-only.
      - `authCode` (string)
        Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation.
      - `fees` (array) — one of (discriminator: type):
        Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step).
        - PLATFORM_FEE:
          - `id` (string, required)
            Identifier of the underlying FeeTransaction.
          - `subtype` (string, required)
            Category of fee.
            Enum: same as `subtype` in "PLATFORM_FEE" (8 values)
          - `amount` (object, required)
            Fee amount, in the currency of the instrument the fee was applied to.
        - FOREX_FEE:
          - `amount` (object)
            The forex fee charged on this event, in the currency of the instrument the fee was applied to.
      - `fees.type` (string, required)
        Enum: same as `fees.type` in "AUTHORISATION" (2 values)
      - `timestamp` (integer, required)
        When this event occurred, Epoch millis.
      - `processedTimestamp` (integer)
        When this event was processed by the platform, Epoch millis.

  - `events.type` (string, required)
    Type of event recorded against a CardPayment. The reversal flag on each event distinguishes a reversal from the original action.
    Enum: "AUTHORISATION", "SETTLEMENT", "REFUND", "ORIGINAL_CREDIT"

  - `creationTimestamp` (integer, required)
    When the first event for this payment was received, Epoch millis.

  - `lastUpdatedTimestamp` (integer)
    When the most recent event for this payment was received, Epoch millis.

## Response 404 fields (application/json):

  - `code` (string)

  - `message` (string)


## Response 401 fields

## Response 500 fields
