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.