API

CardTransaction

A card transaction.

Operations

Every route this entity exposes. Each route links to its own reference on this page.

Method Route SDK operation Returns
GET /spend/profiles/{profileId}/cards/{cardToken}/transactions list Card transactions retrieved successfully
GET /spend/profiles/{profileId}/cards/transactions/{transactionId} load Card transaction retrieved successfully

Examples

One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.

Golang

Construct client as shown in the Golang setup, then call the operations:

card_transactions, err := client.CardTransaction(nil).List(map[string]any{"card_token": "example", "profile_id": 1, "from_creation_time": "example", "to_creation_time": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(card_transactions)
card_transaction, err := client.CardTransaction(nil).Load(map[string]any{"id": 1, "profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(card_transaction)

Lua

Construct client as shown in the Lua setup, then call the operations:

local card_transactions, err = client:CardTransaction():list({ card_token = "example", profile_id = 1, from_creation_time = "example", to_creation_time = "example" })
local card_transaction, err = client:CardTransaction():load({ id = 1, profile_id = 1 })

PHP

Construct client as shown in the PHP setup, then call the operations:

$card_transactions = $client->CardTransaction()->list(["card_token" => "example", "profile_id" => 1, "from_creation_time" => "example", "to_creation_time" => "example"]);
$card_transaction = $client->CardTransaction()->load(["id" => 1, "profile_id" => 1]);

Python

Construct client as shown in the Python setup, then call the operations:

card_transactions = client.CardTransaction().list({"card_token": "example", "profile_id": 1, "from_creation_time": "example", "to_creation_time": "example"})
card_transaction = client.CardTransaction().load({"id": 1, "profile_id": 1})

Ruby

Construct client as shown in the Ruby setup, then call the operations:

card_transactions = client.CardTransaction.list({ "card_token" => "example", "profile_id" => 1, "from_creation_time" => "example", "to_creation_time" => "example" })
card_transaction = client.CardTransaction.load({ "id" => 1, "profile_id" => 1 })

TypeScript

Construct client as shown in the TypeScript setup, then call the operations:

const card_transactions = await client.CardTransaction().list({ card_token: "example", profile_id: 1, from_creation_time: "example", to_creation_time: "example" })
const card_transaction = await client.CardTransaction().load({ id: 1, profile_id: 1 })

Fields

Field Type Required Description
approvalCode one,string,null No Also called authorization code.
arn one,string,null No Acquirer reference number
authorisationMethod string No Authorisation method
balanceChannelReferenceId one,string,null No Balance channel reference ID associated with the card transaction
billingAmount object No Billing amount
cardToken string No Unique identifier of the card
creationTime string No When the transaction was created
credits array No Array of credits.
debits array No Array of debits.
declineReason one,string,null No Code of the decline reason if applicable
detailedDeclineReason one,string,null No Code of the detailed decline reason if applicable
fees array No Array of fees
id integer No ID of the transaction
merchant object No Merchant information
modificationTime string No When the transaction was last updated
pinValidationResult one,string,null No PIN validation result.
purgeTime one,string,null No Time at which reserved funds will be released after the authorisation hold expires
relayAuthorisationData one,object,null No Relayed authorisation response data, only available if the partner has opted in for relayed authorisation
state string No The current state of the transaction.
transactionAmount object No Transaction amount, including any embedded fees such as ATM fees that are not applied by Wise
transactionAmountWithFees object No Transaction amount including all fees
type string No Type of the transaction.

list

GET /spend/profiles/{profileId}/cards/{cardToken}/transactions

Operation ID: cardTransactionList.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that owns the card.
cardToken path string (uuid) Yes The unique token identifying the card.
fromCreationTime query string (date-time) Yes Start of range for transaction creation time in UTC, in ISO-8601 format.
toCreationTime query string (date-time) Yes End of range for transaction creation time in UTC, in ISO-8601 format.
pageSize query integer (int32) No Page size of query between 10 and 100 inclusive, defaults to 20.
lastId query integer (int64) No A pagination cursor that marks your position in the list. Include the ID of the last transaction from the previous page to retrieve the next page (transactions with IDs less than the provided value).
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: Card transactions retrieved successfully

application/json

Property Type Required Description
transactions array of object No
transactions[].approvalCode string,null No Also called authorization code. This can be used to prove ownership of a customer's card/account to a merchant
transactions[].arn string,null No Acquirer reference number
transactions[].authorisationMethod string No Authorisation method
transactions[].balanceChannelReferenceId string,null No Balance channel reference ID associated with the card transaction
transactions[].billingAmount object No Billing amount
transactions[].billingAmount.amount number No Billing amount
transactions[].billingAmount.currency string No Currency code
transactions[].cardToken string No Unique identifier of the card
transactions[].creationTime string (date-time) No When the transaction was created
transactions[].credits array of object No Array of credits. Only present when retrieving a single transaction by ID
transactions[].credits[].balanceId integer (int64) No Balance ID
transactions[].credits[].creationTime string (date-time) No Creation time of credit
transactions[].credits[].creditedAmount object No Amount credited to the balance
transactions[].credits[].creditedAmount.amount number No Amount
transactions[].credits[].creditedAmount.currency string No Currency code
transactions[].debits array of object No Array of debits. Only present when retrieving a single transaction by ID. The debits list is a non-aggregated list of debit movements, meaning that the balanceId is not unique in the list. For example, a cancelled transaction may have a list of 2 debits where the absolute values of debitedAmount.amount, forAmount.amount and fee.amount are the same, but one is the negation of the other due to a reservation (first debit) which was then released (second debit with negated amounts). You can choose to perform the aggregation in your system or display the full list of debits to the end customer.
transactions[].debits[].balanceId integer (int64) No Balance ID
transactions[].debits[].creationTime string (date-time) No Creation time of debit
transactions[].debits[].debitedAmount object No Amount taken from the balance
transactions[].debits[].debitedAmount.amount number No Amount
transactions[].debits[].debitedAmount.currency string No Currency code
transactions[].debits[].fee object No Conversion fee
transactions[].debits[].fee.amount number No Conversion fee amount
transactions[].debits[].fee.currency string No Currency code
transactions[].debits[].forAmount object No Amount converted to
transactions[].debits[].forAmount.amount number No Amount
transactions[].debits[].forAmount.currency string No Currency code
transactions[].debits[].rate number No Exchange rate of debitedAmount to forAmount
transactions[].declineReason string,null No Code of the decline reason if applicable
transactions[].detailedDeclineReason string,null No Code of the detailed decline reason if applicable
transactions[].fees array of object No Array of fees
transactions[].fees[].amount number No Fee amount
transactions[].fees[].currency string No Currency code
transactions[].fees[].fee_type string No Fee type
transactions[].id integer (int64) No ID of the transaction
transactions[].merchant object No Merchant information
transactions[].merchant.category object No Merchant category
transactions[].merchant.category.code string No MCC code of the merchant
transactions[].merchant.category.description string No Description of the merchant category
transactions[].merchant.category.name string No Category of the merchant
transactions[].merchant.location object No Merchant location
transactions[].merchant.location.city string,null No City where merchant is located
transactions[].merchant.location.country string,null No Country where merchant is located
transactions[].merchant.location.region string,null No Region where merchant is located
transactions[].merchant.location.state string,null No State where merchant is located
transactions[].merchant.location.zipCode string,null No Zip code where merchant is located
transactions[].merchant.name string No Name of the merchant
transactions[].modificationTime string (date-time) No When the transaction was last updated
transactions[].pinValidationResult enum: ONLINE_PIN_VALIDATED, ONLINE_PIN_INVALID, OFFLINE_PIN_VALIDATED, OFFLINE_PIN_INVALID, NOT_RECEIVED No PIN validation result. One of: - ONLINE_PIN_VALIDATED - ONLINE_PIN_INVALID - OFFLINE_PIN_VALIDATED - OFFLINE_PIN_INVALID - NOT_RECEIVED
transactions[].purgeTime string,null (date-time) No Time at which reserved funds will be released after the authorisation hold expires
transactions[].relayAuthorisationData object,null No Relayed authorisation response data, only available if the partner has opted in for relayed authorisation
transactions[].relayAuthorisationData.fallback boolean No Indicating whether there was a fallback applied by Wise
transactions[].relayAuthorisationData.responseCode enum: APPROVED, PROCESSING_ERROR, NON_SUPPORTED_CURRENCY, NON_SUPPORTED_MCC_FOR_COUNTRY, BLOCKED_COUNTRY, TRANSACTION_TYPE_NOT_SUPPORTED, ... No ResponseCode of the relayed authorisation. One of: - APPROVED - PROCESSING_ERROR - NON_SUPPORTED_CURRENCY - NON_SUPPORTED_MCC_FOR_COUNTRY - BLOCKED_COUNTRY - TRANSACTION_TYPE_NOT_SUPPORTED - SUSPECTED_FRAUD
transactions[].state enum: IN_PROGRESS, COMPLETED, DECLINED, CANCELLED, UNKNOWN No The current state of the transaction. One of: - IN_PROGRESS - COMPLETED - DECLINED - CANCELLED - UNKNOWN
transactions[].transactionAmount object No Transaction amount, including any embedded fees such as ATM fees that are not applied by Wise
transactions[].transactionAmount.amount number No Transaction amount
transactions[].transactionAmount.currency string No Currency code
transactions[].transactionAmountWithFees object No Transaction amount including all fees
transactions[].transactionAmountWithFees.amount number No Transaction amount including all fees
transactions[].transactionAmountWithFees.currency string No Currency code
transactions[].type enum: ACCOUNT_CREDIT, ACCOUNT_FUNDING, CASH_ADVANCE, CASH_WITHDRAWAL, CHARGEBACK, CREDIT_TRANSACTION, ... No Type of the transaction. One of: - ACCOUNT_CREDIT - ACCOUNT_FUNDING - CASH_ADVANCE - CASH_WITHDRAWAL - CHARGEBACK - CREDIT_TRANSACTION - ECOM_PURCHASE - POS_PURCHASE - REFUND

Example response:

{
  "transactions": [
    {
      "approvalCode": "913647",
      "arn": "04300014127798385983852",
      "authorisationMethod": "MANUAL_ENTRY",
      "balanceChannelReferenceId": "6e71018d-2f4d-4fc3-6711-f517f4664712",
      "billingAmount": {
        "amount": 1.1,
        "currency": "EUR"
      },
      "cardToken": "59123122-223d-45f9-b840-0ad4a4f80937",
      "creationTime": "2022-11-28T08:17:54.241Z",
      "declineReason": null,
      "fees": [
        {
          "amount": 0.1,
          "currency": "SGD",
          "fee_type": "ATM_MACHINE"
        }
      ],
      "id": 342671,
      "merchant": {
        "category": {
          "code": "5999",
          "description": "5999 R Miscellaneous and Special",
          "name": "MISCELLANEOUS_FOOD_STORES_CONVEN"
        },
        "location": {
          "city": "Rouen",
          "country": "France",
          "region": null,
          "state": null,
          "zipCode": "00000"
        },
        "name": "Test Payment"
      },
      "modificationTime": "2022-11-28T08:17:54.241Z",
      "pinValidationResult": "ONLINE_PIN_VALIDATED",
      "purgeTime": "2022-11-28T08:17:54.241Z",
      "state": "IN_PROGRESS",
      "transactionAmount": {
        "amount": 1.4,
        "currency": "SGD"
      },
      "transactionAmountWithFees": {
        "amount": 1.5,
        "currency": "SGD"
      },
      "type": "ECOM_PURCHASE"
    }
  ]
}
400: Invalid request

application/problem+json

Property Type Required Description
errors array of object No A list of specific validation failures
errors[].code string No A specific code for the validation failure type
errors[].detail string No A detailed description of the validation failure
errors[].ref string No A reference to the field that failed validation
instance string (uri-reference) No The URI that triggered the validation error
status integer No The HTTP status error code
title string No The title of the error
type string (uri-reference) No The type of validation error (must be /errors/types/validation for this error type)
422: Unprocessable request

application/problem+json

Property Type Required Description
code string No Error code of the request
detail string No A detailed description of the failure
instance string (uri-reference) No The URI that triggered the error
status integer No The HTTP status error code
title string No The title of the error
type string (uri-reference) No A domain type exception (must be /errors/types/domain for this error type)
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /spend/profiles/{profileId}/cards/transactions/{transactionId}

Operation ID: cardTransactionGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that owns the card.
transactionId path integer (int64) Yes The ID of the transaction.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: Card transaction retrieved successfully

application/json

Property Type Required Description
approvalCode string,null No Also called authorization code. This can be used to prove ownership of a customer's card/account to a merchant
arn string,null No Acquirer reference number
authorisationMethod string No Authorisation method
balanceChannelReferenceId string,null No Balance channel reference ID associated with the card transaction
billingAmount object No Billing amount
billingAmount.amount number No Billing amount
billingAmount.currency string No Currency code
cardToken string No Unique identifier of the card
creationTime string (date-time) No When the transaction was created
credits array of object No Array of credits. Only present when retrieving a single transaction by ID
credits[].balanceId integer (int64) No Balance ID
credits[].creationTime string (date-time) No Creation time of credit
credits[].creditedAmount object No Amount credited to the balance
credits[].creditedAmount.amount number No Amount
credits[].creditedAmount.currency string No Currency code
debits array of object No Array of debits. Only present when retrieving a single transaction by ID. The debits list is a non-aggregated list of debit movements, meaning that the balanceId is not unique in the list. For example, a cancelled transaction may have a list of 2 debits where the absolute values of debitedAmount.amount, forAmount.amount and fee.amount are the same, but one is the negation of the other due to a reservation (first debit) which was then released (second debit with negated amounts). You can choose to perform the aggregation in your system or display the full list of debits to the end customer.
debits[].balanceId integer (int64) No Balance ID
debits[].creationTime string (date-time) No Creation time of debit
debits[].debitedAmount object No Amount taken from the balance
debits[].debitedAmount.amount number No Amount
debits[].debitedAmount.currency string No Currency code
debits[].fee object No Conversion fee
debits[].fee.amount number No Conversion fee amount
debits[].fee.currency string No Currency code
debits[].forAmount object No Amount converted to
debits[].forAmount.amount number No Amount
debits[].forAmount.currency string No Currency code
debits[].rate number No Exchange rate of debitedAmount to forAmount
declineReason string,null No Code of the decline reason if applicable
detailedDeclineReason string,null No Code of the detailed decline reason if applicable
fees array of object No Array of fees
fees[].amount number No Fee amount
fees[].currency string No Currency code
fees[].fee_type string No Fee type
id integer (int64) No ID of the transaction
merchant object No Merchant information
merchant.category object No Merchant category
merchant.category.code string No MCC code of the merchant
merchant.category.description string No Description of the merchant category
merchant.category.name string No Category of the merchant
merchant.location object No Merchant location
merchant.location.city string,null No City where merchant is located
merchant.location.country string,null No Country where merchant is located
merchant.location.region string,null No Region where merchant is located
merchant.location.state string,null No State where merchant is located
merchant.location.zipCode string,null No Zip code where merchant is located
merchant.name string No Name of the merchant
modificationTime string (date-time) No When the transaction was last updated
pinValidationResult enum: ONLINE_PIN_VALIDATED, ONLINE_PIN_INVALID, OFFLINE_PIN_VALIDATED, OFFLINE_PIN_INVALID, NOT_RECEIVED No PIN validation result. One of: - ONLINE_PIN_VALIDATED - ONLINE_PIN_INVALID - OFFLINE_PIN_VALIDATED - OFFLINE_PIN_INVALID - NOT_RECEIVED
purgeTime string,null (date-time) No Time at which reserved funds will be released after the authorisation hold expires
relayAuthorisationData object,null No Relayed authorisation response data, only available if the partner has opted in for relayed authorisation
relayAuthorisationData.fallback boolean No Indicating whether there was a fallback applied by Wise
relayAuthorisationData.responseCode enum: APPROVED, PROCESSING_ERROR, NON_SUPPORTED_CURRENCY, NON_SUPPORTED_MCC_FOR_COUNTRY, BLOCKED_COUNTRY, TRANSACTION_TYPE_NOT_SUPPORTED, ... No ResponseCode of the relayed authorisation. One of: - APPROVED - PROCESSING_ERROR - NON_SUPPORTED_CURRENCY - NON_SUPPORTED_MCC_FOR_COUNTRY - BLOCKED_COUNTRY - TRANSACTION_TYPE_NOT_SUPPORTED - SUSPECTED_FRAUD
state enum: IN_PROGRESS, COMPLETED, DECLINED, CANCELLED, UNKNOWN No The current state of the transaction. One of: - IN_PROGRESS - COMPLETED - DECLINED - CANCELLED - UNKNOWN
transactionAmount object No Transaction amount, including any embedded fees such as ATM fees that are not applied by Wise
transactionAmount.amount number No Transaction amount
transactionAmount.currency string No Currency code
transactionAmountWithFees object No Transaction amount including all fees
transactionAmountWithFees.amount number No Transaction amount including all fees
transactionAmountWithFees.currency string No Currency code
type enum: ACCOUNT_CREDIT, ACCOUNT_FUNDING, CASH_ADVANCE, CASH_WITHDRAWAL, CHARGEBACK, CREDIT_TRANSACTION, ... No Type of the transaction. One of: - ACCOUNT_CREDIT - ACCOUNT_FUNDING - CASH_ADVANCE - CASH_WITHDRAWAL - CHARGEBACK - CREDIT_TRANSACTION - ECOM_PURCHASE - POS_PURCHASE - REFUND
404: Not found

application/problem+json

Property Type Required Description
code string No Specific application-level error code
detail string No A detailed description of the failure
instance string (uri-reference) No The URI that triggered the error
status integer No The HTTP status error code
title string No The title of the exception
type string (uri-reference) No A domain type exception
422: Unprocessable request

application/problem+json

Property Type Required Description
code string No Error code of the request
detail string No A detailed description of the failure
instance string (uri-reference) No The URI that triggered the error
status integer No The HTTP status error code
title string No The title of the error
type string (uri-reference) No A domain type exception (must be /errors/types/domain for this error type)
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.