Recurring Transactions

acquirer-specific functionality

The processing of recurring transactions is only currently supported when using DNA Payments as the Acquirer.

Types of Recurring Transactions

Checkout allows for the processing of two different types of recurring transactions; Those initiated by the consumer (when selecting their stored card when purchasing goods online), and those requested by the merchant (scheduled payment of an invoice etc.).

Consumer Initiated Transaction (CIT)

The CIT is supported via the Token Wallet functionality in Checkout - this is covered in detail in Stored Cards– “Token Wallet”. The consumer chooses their card from those displayed in the payment form and once selected the token is used in the authorisation in place of the card details. Checkout will set the relevant flags to the acquirer/issuer to inform them that this was initiated by the consumer and if applicable by the merchant’s configuration 3D Secure v2 will be performed to ensure SCA compliance.

Merchant Initiated Transaction (MIT)

MIT processing is supported for scenarios when the merchant needs to charge for goods or services without the interaction of the consumer. One such example of this could be where the consumer has placed their card details ‘on file’ with the merchant to allow monthly invoices to be automatically settled. Merchant initiated transactions are processed via the “recurring” endpoint and are detailed below. The recurring transaction is initiated by supplying the ID of the original transaction. This is used to retrieve the card information and associated data.

Recurring Transaction Request

MethodPOST
Recurring Transaction Request
Field NameStateData TypeDescription
parentTransactionIdMandatoryStringID of the original transaction made using this card via 3DS v2.
transactionTypeOptionalStringTransaction type being requested. If this field is not supplied the value configured on the platform is used.
AUTHAuthorisation Only.
SALEAuthorisation and Settlement.
amountMandatoryDecimalTotal amount of the order including decimal places where applicable. ‘Whole’ amounts (e.g. “1”) on a GBP account will be processed as £1.00.
This value must match the value provided during authorisation or the request will be rejected.
sequenceTypeMandatoryStringTransaction sequence.
recurringMerchant Initiated Transaction (MIT)
periodicTypeMandatoryStringType of recurring payment.
ucofUnscheduled Credential on File
invoiceIdMandatoryStringOrder/invoice/transaction/basket number generated by the host website. This ID must be unique for this transaction.
This value must match the value provided during authorisation or the request will be rejected.
merchantCustomDataOptional

String

Max 1024 bytes
Free text field for integrated system to pass custom data that will be stored against the transaction.

This data will be available via the Transaction Management functions

Recurring Transaction Response

Recurring Transaction Response
Field NameData TypeDescription
accountIdStringUnique reference for the store processing the transaction.
amountDecimalTotal amount of the original order/authorisation including decimal places where applicable.
currencyStringCurrency of the transaction.
GBPPound Sterling
idStringUnique transaction ID.
invoiceIdStringOrder/invoice/transaction/basket number generated by the host website, as passed in the request.
messageStringMessage confirming the processing result of the transaction request.
successBooleanConfirmation of the reversal result.
trueTransaction completed successfully.
falseTransaction not completed successfully.
authCodeStringAuthorisation code issued for the transaction.
authDateTimeUTCStringDate and time of when the transaction was authorised with the acquirer.
errorCodeIntegerProvides additional detail should an error have occurred with the transaction.
0No error occurred.
A full list of Error Codes can be found here.
parentTransactionIdStringTransaction Id of the original Sale transaction which is linked to this subsequent transaction.
responseCodeStringReturned by the acquirer detailing the result of the transaction. A full list of Response Codes can be found here.
rrnStringUnique reference allocated by Optomany to the authorisation.
successBooleanConfirms whether the transaction has been successful.
trueTransaction approved.
falseTransaction not approved.
payerAuthenticationResultStringWill not be populated as the consumer is not present to complete authentication.

Examples

Recurring Transaction Request
{
"parentTransactionId": "6fce7714-6109-40d8-b408-0c6700509b6a",
"transactionType": "AUTH",
"amount": 10,
"sequenceType": "recurring",
"periodicType": "ucof",
"invoiceId": "1589804887471"
}