Manage Transactions
Provides the ability for a user to monitor and track the transactions performed on their virtual cards.
Transaction records represent a transaction performed against a provisioned virtual card (for more information on virtual cards, see here). Transactions cannot be created or deleted by the consumer directly. Transactions are generated by using the virtual card to make purchases at merchants.
Each transaction record has a sequenceId
property which can be used to cross reference related transactions. For example, a pending transaction may have already been partially transacted and have related debit transactions (for more information on transaction states, see here).
Transactions may also contain a detail
property which includes some supplementary information. For more information, see here.
Transaction States
Transactions can exist in 4 different states:
pending
complete
refund
decline
When a transaction is pending
, it has entered the first state of authorization and is currently awaiting to be debited, or further action. A transaction that is pending will typically be completely debited, thus deleting the existing pending transaction, and being replaced with a debit
transaction. A transaction can be partially debited however, which means that a new debit
transaction record will be created for each partial debit.
A pending
transaction record will continue to persist until its value has been decreased to 0, either via debits or reversal charges. Reversals will not be recorded via the transaction records, except through the decreasing value of the pending
transaction. This is not to be confused with a refund
transaction, which will generate a new transaction record.
Note - Reversal transactions relate to a transaction that has had its value decreased before it has been fully transacted (completed). A refunded transaction occurs after a fully completed transaction.
When a transaction is represented as being complete
, it has entered a state that represents a successful debit. A completed transaction can be associated with a previously pending transaction via the sequenceId
if the completed transaction was a partial debit.
When a transaction is represented as a refund
, it means that a previously transacted record (state is complete
) has been refunded. This can be either for a partial amount or the full amount. If a transaction is refunded, it will not remove the complete
transaction record.
When a transaction is represented as a decline
, it means that an error has occurred while attempting to process a transaction. For more information on decline reasons, see here.
Transaction Details
Transactions can contain supplementary details in the form of the detail
property. Pending, complete, and refund transactions will always contain at least 1 detail. The information contained in details is recorded below:
Each interaction (authorization, charge, refund) with the funding source will result in a separate detail entry and should be able to be correlated with an entry on the user's account statement.
For pending
and complete
transactions, if there is no detail entry with state Cleared
, then the transaction will continue to be counted against transaction velocity limits irrespective of the velocity limits' periods.
Decline Reasons
A transaction can be declined for a number of reasons. The table below shows a list of reasons and what they mean:
Retrieving Transactions
Transactions can be accessed in two ways: via its identifier (Single Transaction by Id), or via a list method (Multiple Transactions).
A fetch of single or multiple transactions can be performed remotely or locally by specifying the appropriate CachePolicy as part of the input.
Single Transaction by Id
To retrieve a single virtual card given its unique id
, use the getTransaction
method. This method will return the record if it exists.
Multiple Transactions
The ability to retrieve multiple transactions available to the user is supported. These results can be paginated and can contain transactions in various states.
A call to a list API will return a ListTransactionsResult
with a status
and depending on the status, a list of matching items
and a nextToken
to support pagination. If no results matching the input are found, the result will contain empty items. There can be three possible statuses returned:
A transaction may fail to be unencrypted if the version of the client is not up-to-date or if the required cryptographic key is missing from the client device.
All Transactions for a Virtual Card
To retrieve multiple transactions that are associated with a certain virtual card, call the listTransactionsByCardId
method by passing in the id
of the virtual card to query. An optional sortOrder
and dateRange
can also be supplied to organise results.
All Transactions for a User
To retrieve multiple transactions that are associated across all of a user's virtual cards, call the listTransactions
method. An optional sortOrder
and dateRange
can also be supplied to organise results.
Subscribing to Transactions
Typescript Libraries currently do not support subscribing to transactions.
You can subscribe to receive updates as transactions are created, updated and deleted. The subscribeToTransactions
, unsubscribeFromTransactions
and unsubscribeAll
APIs allow you to start and stop receiving updates.
You may receive multiple updates for a single transaction over time. Each time the transaction changes you will receive a new update. You should receive an update when the transaction is first created, the type
field of the transaction will be PENDING
. Some time later you will receive another update with the type
set to COMPLETE
, REFUND
or DECLINE
.
Last updated