advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/payment-method
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)
card {
ConditionaladvancedPayments/full-card-payment-detailsUse if you want to provide your Customer's card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer's default card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
ConditionaladvancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
ConditionaladvancedPayments/pay-pal-payment-detailsInclude if the payment is being made with PayPal.
returnUrl
stringMandatoryThe location where the Customer will be redirected after he finishes the PayPal session.
cancelUrl
stringMandatoryThe location where the Customer will be redirected if the cancels the PayPal session.
accessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. When not provided, this will be calculated as described in the Stored Credentials Framework. This field may not be provided unless a value for customerInitiated is also provided. When that value is "false", then the only valid value for this field is "EXISTING".
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. When not provided, this will be calculated as described in the Stored Credentials Framework. When credentials may be stored for multiple purposes, use the broadest value possible, i.e. "ADHOC". This field must be provided whenever a value of "NEW" or "EXISTING" is supplied for storage. It may not be provided when storage is "NONE".
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. If a value other than "EXISTING" is provided for storage, then this field may not be provided.
ConditionaladvancedPayments/google-pay-payment-detailsAll of the data in this section is returned in the Google Pay payment method data response.
apiVersion
stringConditional
savedAccountToken
stringThe unique payment method token from a previously successful Google Pay transaction. The token can represent either a Google Pay non-tokenized card (FPAN) or an Android device token (DPAN) payment method.
string (1–2147483647 chars)MandatoryThe card details as provided by the Google Pay API. This is the last 4 digits of the card.
cardHolderName
string (1–2147483647 chars)MandatoryThe cardholder name for the Google Pay payment method.
}
}
openbanking {
advancedPayments/open-banking-payment-details
returnUrl
stringThe URL that the user will be returned to after the payment has been completed.
mode
stringPossible values: REDIRECT, POPUPThe Pay by Bank integration mode.
}
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
browserInfo {
advancedPayments/browser-info-details
deviceCategory
string
acceptHeader
string (≤ 255 chars)
userAgentHeader
string (≤ 2048 chars)The Customer's user agent.
}
verification {
advancedPayments/verificationDetails about the verification.
acquirerPaymentMethod
booleanIndicates if the verification type is acquirer payment method.
adviceMode
boolean
}
sessionId
stringYour reference for the Customer's session.
locale
stringThe ISO-639-1 code for your Customer's locale.
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (36 chars)ACS transaction ID (returned in threeDSecure.acsTransactionId) for the previous authentication.
method
stringPossible values: FRICTIONLESS_AUTH, CHALLENGE_AUTH, AVS, OTHER_ISSUERMethod used in prior authentication.
time
string (date-time)Date/time (in UTC) of prior authentication.
}
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/payment-method
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)
card {
ConditionaladvancedPayments/full-card-payment-detailsUse if you want to provide your Customer's card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer's default card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
ConditionaladvancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
ConditionaladvancedPayments/pay-pal-payment-detailsInclude if the payment is being made with PayPal.
returnUrl
stringMandatoryThe location where the Customer will be redirected after he finishes the PayPal session.
cancelUrl
stringMandatoryThe location where the Customer will be redirected if the cancels the PayPal session.
accessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. When not provided, this will be calculated as described in the Stored Credentials Framework. This field may not be provided unless a value for customerInitiated is also provided. When that value is "false", then the only valid value for this field is "EXISTING".
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. When not provided, this will be calculated as described in the Stored Credentials Framework. When credentials may be stored for multiple purposes, use the broadest value possible, i.e. "ADHOC". This field must be provided whenever a value of "NEW" or "EXISTING" is supplied for storage. It may not be provided when storage is "NONE".
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. If a value other than "EXISTING" is provided for storage, then this field may not be provided.
ConditionaladvancedPayments/google-pay-payment-detailsAll of the data in this section is returned in the Google Pay payment method data response.
apiVersion
stringConditional
savedAccountToken
stringThe unique payment method token from a previously successful Google Pay transaction. The token can represent either a Google Pay non-tokenized card (FPAN) or an Android device token (DPAN) payment method.
string (1–2147483647 chars)MandatoryThe card details as provided by the Google Pay API. This is the last 4 digits of the card.
cardHolderName
string (1–2147483647 chars)MandatoryThe cardholder name for the Google Pay payment method.
}
}
openbanking {
advancedPayments/open-banking-payment-details
returnUrl
stringThe URL that the user will be returned to after the payment has been completed.
mode
stringPossible values: REDIRECT, POPUPThe Pay by Bank integration mode.
}
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
browserInfo {
advancedPayments/browser-info-details
deviceCategory
string
acceptHeader
string (≤ 255 chars)
userAgentHeader
string (≤ 2048 chars)The Customer's user agent.
}
verification {
advancedPayments/verificationDetails about the verification.
acquirerPaymentMethod
booleanIndicates if the verification type is acquirer payment method.
adviceMode
boolean
}
sessionId
stringYour reference for the Customer's session.
locale
stringThe ISO-639-1 code for your Customer's locale.
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (36 chars)ACS transaction ID (returned in threeDSecure.acsTransactionId) for the previous authentication.
method
stringPossible values: FRICTIONLESS_AUTH, CHALLENGE_AUTH, AVS, OTHER_ISSUERMethod used in prior authentication.
time
string (date-time)Date/time (in UTC) of prior authentication.
}
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/payment-method
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)
card {
ConditionaladvancedPayments/full-card-payment-detailsUse if you want to provide your Customer's card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer's default card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
ConditionaladvancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
ConditionaladvancedPayments/pay-pal-payment-detailsInclude if the payment is being made with PayPal.
returnUrl
stringMandatoryThe location where the Customer will be redirected after he finishes the PayPal session.
cancelUrl
stringMandatoryThe location where the Customer will be redirected if the cancels the PayPal session.
accessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. When not provided, this will be calculated as described in the Stored Credentials Framework. This field may not be provided unless a value for customerInitiated is also provided. When that value is "false", then the only valid value for this field is "EXISTING".
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. When not provided, this will be calculated as described in the Stored Credentials Framework. When credentials may be stored for multiple purposes, use the broadest value possible, i.e. "ADHOC". This field must be provided whenever a value of "NEW" or "EXISTING" is supplied for storage. It may not be provided when storage is "NONE".
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. If a value other than "EXISTING" is provided for storage, then this field may not be provided.
ConditionaladvancedPayments/google-pay-payment-detailsAll of the data in this section is returned in the Google Pay payment method data response.
apiVersion
stringConditional
savedAccountToken
stringThe unique payment method token from a previously successful Google Pay transaction. The token can represent either a Google Pay non-tokenized card (FPAN) or an Android device token (DPAN) payment method.
string (1–2147483647 chars)MandatoryThe card details as provided by the Google Pay API. This is the last 4 digits of the card.
cardHolderName
string (1–2147483647 chars)MandatoryThe cardholder name for the Google Pay payment method.
}
}
openbanking {
advancedPayments/open-banking-payment-details
returnUrl
stringThe URL that the user will be returned to after the payment has been completed.
mode
stringPossible values: REDIRECT, POPUPThe Pay by Bank integration mode.
}
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
browserInfo {
advancedPayments/browser-info-details
deviceCategory
string
acceptHeader
string (≤ 255 chars)
userAgentHeader
string (≤ 2048 chars)The Customer's user agent.
}
verification {
advancedPayments/verificationDetails about the verification.
acquirerPaymentMethod
booleanIndicates if the verification type is acquirer payment method.
adviceMode
boolean
}
sessionId
stringYour reference for the Customer's session.
locale
stringThe ISO-639-1 code for your Customer's locale.
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (36 chars)ACS transaction ID (returned in threeDSecure.acsTransactionId) for the previous authentication.
method
stringPossible values: FRICTIONLESS_AUTH, CHALLENGE_AUTH, AVS, OTHER_ISSUERMethod used in prior authentication.
time
string (date-time)Date/time (in UTC) of prior authentication.
}
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/secondary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)The currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel for the transaction. If not provided it will be inherited from the original transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanWhether to process this payment as a recurring payment. If not provided then it will be inherited from the original transaction.
instalment
booleanWhether to process this payment as an instalment. If not provided then it will be inherited from the original transaction.
billingDescriptor
string
}
transactionOptions {
advancedPayments/transaction-options
cardFraudManagement {
advancedPayments/card-fraud-management
cardDuplication
stringPossible values: IGNORE
cardRemoval
stringPossible values: IGNORE
}
motoIgnoreCustomerIP
boolean
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/secondary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)The currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel for the transaction. If not provided it will be inherited from the original transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanWhether to process this payment as a recurring payment. If not provided then it will be inherited from the original transaction.
instalment
booleanWhether to process this payment as an instalment. If not provided then it will be inherited from the original transaction.
billingDescriptor
string
}
transactionOptions {
advancedPayments/transaction-options
cardFraudManagement {
advancedPayments/card-fraud-management
cardDuplication
stringPossible values: IGNORE
cardRemoval
stringPossible values: IGNORE
}
motoIgnoreCustomerIP
boolean
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/secondary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)The currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel for the transaction. If not provided it will be inherited from the original transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanWhether to process this payment as a recurring payment. If not provided then it will be inherited from the original transaction.
instalment
booleanWhether to process this payment as an instalment. If not provided then it will be inherited from the original transaction.
billingDescriptor
string
}
transactionOptions {
advancedPayments/transaction-options
cardFraudManagement {
advancedPayments/card-fraud-management
cardDuplication
stringPossible values: IGNORE
cardRemoval
stringPossible values: IGNORE
}
motoIgnoreCustomerIP
boolean
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/secondary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)The currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel for the transaction. If not provided it will be inherited from the original transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanWhether to process this payment as a recurring payment. If not provided then it will be inherited from the original transaction.
instalment
booleanWhether to process this payment as an instalment. If not provided then it will be inherited from the original transaction.
billingDescriptor
string
}
transactionOptions {
advancedPayments/transaction-options
cardFraudManagement {
advancedPayments/card-fraud-management
cardDuplication
stringPossible values: IGNORE
cardRemoval
stringPossible values: IGNORE
}
motoIgnoreCustomerIP
boolean
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/secondary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)The currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel for the transaction. If not provided it will be inherited from the original transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanWhether to process this payment as a recurring payment. If not provided then it will be inherited from the original transaction.
instalment
booleanWhether to process this payment as an instalment. If not provided then it will be inherited from the original transaction.
billingDescriptor
string
}
transactionOptions {
advancedPayments/transaction-options
cardFraudManagement {
advancedPayments/card-fraud-management
cardDuplication
stringPossible values: IGNORE
cardRemoval
stringPossible values: IGNORE
}
motoIgnoreCustomerIP
boolean
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
paymentMethod {
advancedPayments/payment-method-response-detailThe payment method a transaction was taken from, as returned on a response. Carries the details of whichever method was used, named by paymentClass, together with the billing address and whether the method was stored for reuse.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/transaction-customer-details
merchantRef
string (≤ 255 chars)Your reference for the Customer.
id
string (≤ 255 chars)The ID given to the Customer by the processing engine.
displayName
string (≤ 255 chars)The Customer's name.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the Customer.
booleanReturnedIndicates if the customer was registered.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities, as submitted with the transaction.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers, as submitted with the transaction.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
customer {
MandatoryadvancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
financialServices {
ConditionaladvancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
ConditionaladvancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
MandatoryadvancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details.
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
ConditionaladvancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details.
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details.
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
}
verification {
advancedPayments/verificationDetails about the verification.
acquirerPaymentMethod
booleanIndicates if the verification type is acquirer payment method.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
financialServices {
ConditionaladvancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
stringReturnedPossible values: INITIALISED, STARTED, SUSPENDED, TERMINATED, EXPIREDsession status, possible values:
transactionState {
ReturnedadvancedPayments/hosted-transaction
id
stringid of the transaction produced by the session, could change if processing retry is available, such as after PayPal cancel.
transactionState
stringReturnedPossible values: NOT_SUBMITTED, PROCESSING, PENDING, SUCCESS, FAILED, EXPIRED, CANCELLED, VOIDEDstatus of the transactions, possible values:
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
paymentMethod {
advancedPayments/payment-method-response-detailThe payment method a transaction was taken from, as returned on a response. Carries the details of whichever method was used, named by paymentClass, together with the billing address and whether the method was stored for reuse.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/transaction-customer-details
merchantRef
string (≤ 255 chars)Your reference for the Customer.
id
string (≤ 255 chars)The ID given to the Customer by the processing engine.
displayName
string (≤ 255 chars)The Customer's name.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the Customer.
booleanReturnedIndicates if the customer was registered.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities, as submitted with the transaction.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers, as submitted with the transaction.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
paymentMethod {
advancedPayments/payment-method-response-detailThe payment method a transaction was taken from, as returned on a response. Carries the details of whichever method was used, named by paymentClass, together with the billing address and whether the method was stored for reuse.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/transaction-customer-details
merchantRef
string (≤ 255 chars)Your reference for the Customer.
id
string (≤ 255 chars)The ID given to the Customer by the processing engine.
displayName
string (≤ 255 chars)The Customer's name.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the Customer.
booleanReturnedIndicates if the customer was registered.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities, as submitted with the transaction.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers, as submitted with the transaction.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
400Invalid installation, customer, or payment method token
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
POST/acceptor/rest/customers/{instId}/{customerId}/paymentMethod/{token}/removeRemove a payment method#
description:
Removes the specified saved payment method for the customer and installation
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
stringMandatoryInstallation identifier
customerId
stringMandatoryPlatform customer identifier
token
stringMandatorySaved payment method token
}
request body:
{} — This call takes no request body — send an empty JSON object.
Responses
200Payment method removed
400Invalid installation, customer, or payment method token
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
} ]
400Invalid installation identifier or customer identifier
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
} ]
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
GET/acceptor/rest/customers/{instId}/{customerId}/paymentMethods/{token}Get a payment method#
description:
Retrieves a saved payment method for the specified customer, token, and installation
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
400Invalid installation, customer, or payment method token
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
POST/acceptor/rest/customers/{instId}/{customerId}/paymentMethods/{token}/updateUpdate a payment method#
description:
Updates the saved payment method details for the specified customer, token, and installation
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
400Invalid installation, customer, token, or update request
advancedPayments/card-response-detailPopulated if the payment method is card.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
bankAccount {
advancedPayments/bank-account-response-detail
accountHolderName
string
savedAccountToken
string
iban
string
bic
string
bankAccountToken
string
}
phone {
advancedPayments/phone-account-response-detail
accountHolderName
string
savedAccountToken
string
mobileNumber
string
}
applepay {
advancedPayments/apple-pay-response-detail
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
GET/acceptor/rest/customers/{instId}/byRefFind a customer by merchant reference#
description:
Retrieves a customer for the given installation using the supplied merchant reference
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
stringMandatoryInstallation identifier
}
query parameters:
{
merchantRef
stringMandatoryMerchant reference used to identify the customer
}
Responses
200Customer retrieved
response body:
shared schema advancedPayments/customer-resource
{
merchantRef
string (≤ 255 chars)Your reference for the Customer.
id
string (≤ 255 chars)Our ID for the Customer that is registered with us.
displayName
string (≤ 255 chars)The Customer's name.
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the Customer.
Run a report over your transaction data, returning the requested fields for the transactions that match your filters.
authorization:HTTP Basic, using your Reporting API user and password
content-type:application/json
request body:
{
limit
integerThe number of maximum results returned
startFrom
floatThe start from record number, defaults to the first record number
includeFieldNames
booleanSpecify whether or not to include in the response the returned field names Default value is false If set to "true" in case of search response contains a list named "fieldNames" If set to "true" in case of export column names are present in the downloaded file
timezone
stringPossibility to translate all dates specified on the request and response to a specific timezone offset from the UTC one, for example (+01:00, -01:45) - minimum value: -12:00, maximum value: +14:00 - when timezone set on request: - all values in response are transformed in this timezone - if datetime filter value present 1. when no timezone specified on filter value (which is in ISO format) apply timezone from request on filter value when searching in database E.g.: when "timezone" set to "+02:00" and filter value "2016-07-21T14:19:19" filter value is converted to "2016-07-21T14:19:19+02:00" and results are returned in "+02:00" timezone 2. when timezone present on filter value apply E.g.: when "timezone" set to "+02:00" and filter value "2016-07-21T14:19:19+03:00" filter value is not changed "2016-07-21T14:19:19+03:00" and results are returned in "+02:00" timezone 3. when relative datetime, relative date or relative time, timezone is not applied relative datetime is relative to the moment of the request in UTC E.g.: when "timezone" set to "+02:00" filter value is "[-2d][-5h]" current datetime in UTC is "2016-08-18T14:30:00" filter value is converted to "2016-08-16T09:30:00" and results are returned in "+02:00" timezone - when no timezone set: - values in response are returned in UTC E.g.: when no "timezone" specified on request and filter value "2016-07-21T14:19:19" filter value is converted to "2016-07-21T14:19:19+00:00" and results are returned in UTC(+00:00) timezone E.g.: when no "timezone" specified on request and filter value "2016-07-21T14:19:19-02:00" filter value is not changed "2016-07-21T14:19:19-02:00" and results are returned in UTC(+00:00) timezone
outputFormat
stringPossible values: CSV, XLS, XLSXSpecify export type If not present data is retrieved as JSON
outputFileName
stringPossibility to specify the name of the export file In case of export request and file name not specified it defaults to: "TransactionReport_" + date and UTC time + specific file extension for request output format (.csv, .xls, or .xlsx) When specified the file returned will have "outputFileName" + specific file extension (.csv, .xls, or .xlsx)
fields [ {
List of fields to be retrieved The order of the retrieved fields will be set based on the order of the fields from this array
field
stringName of field
display
booleanPossibility to specify if the field will be present in the results, or is only used for filtering or sorting
stringPossible values: ASC, DESCPossibility to sort by the specified field If not specified, it will be set to "ASC" If "sortOrder" is not specified, the sorting order will be prioritized based on setting this field or not. All items from array with "sort" field set, will have higher priority then the ones with the "sort" field not set Example: if array contains "sort" fields like this one [1:not_set,2:'DESC',3:'ASC',4:not_set] the order result will be [2:'DESC',3:'ASC',1:'ASC',4:'ASC']
sortOrder
floatPossibility to specify the sort order of the field, can also be a negative number. If not set, the sorting order will be inherit from the "sort" field rule All items from array with "sortOrder" field set, will have higher priority the the ones with the "sortOrder" field not set Example: if the request contains fields with "sortOrder" like this [1:not_set,2:'10',3:'-7',4:not_set] the response will contain the fields in the following order [3:'-7',2:'10',1:not_set,4:not_set]
filter {
to be added
operation
stringMandatoryPossible values: EQUALS, NOT_EQUALS, BETWEEN, LT, LTE, GT, GTE, IN, NOT_IN, IS_NULL, IS_NOT_NULLThe name of the operation
value
arrayList of strings where required - for ISO_DATE column type value can be one of the following: - relative format: "[-2y][+12m][-3d]" - relative to the current day - all or some of the above - order must be the same as in the example - date in ISO format: 2016-07-21, 20160721 2016-W29-4, 2016-203 - for ISO_TIME column type value can be one of the following: - relative format: "[-2h][+12mim][-3s]" - relative to the current time - all or some of the above - order must be the same as in the example - date in ISO format: 23:59:59 (HH-mm-ss) or 23:59 (HH-mm) - for ISO_DATETIME column type value can be one of the following: - relative format: "[-2y][+12m][-3d][-2h][+12mim][-3s]" - relative to the current datetime - all or some of the above - order must be the same as in the example - date in ISO format: 2016-07-21T14:19:19, 2016-07-21T14:19:19Z, 2016-07-21T14:19:19+02:00
}
} ]
}
Responses
200OK
response body:
{
status
stringStatus of the request
reasonCode
stringError code in case of failier
reasonMessage
stringError message in case of failier
resultsReturned
floatNumber of result returned
resultsAvailable
floatNumber of total result available
startFrom
floatResults starting point
fieldNames
array (string items)List of fields to be displayed
data
array (array items)List of list of data equivalent of the fieldNames from the above
}
Pay by Link (EmailPay)
Endpoints for creating and managing Pay by Link URLs
POST/smartlink/links/{instId}/batch/paymentCreate batch of payment links#
description:
Creates a batch of payment smart links for the supplied installation.
string (date-time)The date and time this link will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL to redirect the customer to upon attempting to access an expired or otherwise inactive link. Where possible, the customer is redirected to this URL with a query string of ?l={linkId}&s={status} where {status} is one of DEACTIVATED , CANCELLED , USED , EXPIRED , ERROR , PENDING or NOT_FOUND . When not set, or where link details cannot be retrieved, a generic error page will be used instead.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringMandatory
recipientName
string
}
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
session {
advancedPayments/hosted-session-configuration
preAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
}
locale
stringThe ISO-639 code for your Customer's locale.
batchSize
integer (int32)MandatoryNumber of links to create; between 1 and 500, inclusive
ReturnedadvancedPayments/smart-link-batch-response-detailThe details of the created links.
expires
string (date-time)The date and time these links will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLEEach link can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
links [ {
advancedPayments/smart-link-urlAn array containing the issued links
linkId
stringA unique ID that can be used to identify the link created.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
} ]
}
status
stringReturnedStatus of the request
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
reasonMessage
stringReturnedA description of the reason code.
}
POST/smartlink/links/{instId}/batch/payoutCreate batch of payout links#
description:
Creates a batch of payout smart links for the supplied installation.
string (date-time)The date and time this link will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL to redirect the customer to upon attempting to access an expired or otherwise inactive link. Where possible, the customer is redirected to this URL with a query string of ?l={linkId}&s={status} where {status} is one of DEACTIVATED , CANCELLED , USED , EXPIRED , ERROR , PENDING or NOT_FOUND . When not set, or where link details cannot be retrieved, a generic error page will be used instead.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringMandatory
recipientName
string
}
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
session {
advancedPayments/hosted-session-configuration
preAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
}
locale
stringThe ISO-639 code for your Customer's locale.
batchSize
integer (int32)MandatoryNumber of links to create; between 1 and 500, inclusive
ReturnedadvancedPayments/smart-link-batch-response-detailThe details of the created links.
expires
string (date-time)The date and time these links will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLEEach link can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
links [ {
advancedPayments/smart-link-urlAn array containing the issued links
linkId
stringA unique ID that can be used to identify the link created.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
} ]
}
status
stringReturnedStatus of the request
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
string (date-time)The date and time this link will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL to redirect the customer to upon attempting to access an expired or otherwise inactive link. Where possible, the customer is redirected to this URL with a query string of ?l={linkId}&s={status} where {status} is one of DEACTIVATED , CANCELLED , USED , EXPIRED , ERROR , PENDING or NOT_FOUND . When not set, or where link details cannot be retrieved, a generic error page will be used instead.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringMandatory
recipientName
string
}
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
session {
advancedPayments/hosted-session-configuration
preAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
}
locale
stringThe ISO-639 code for your Customer's locale.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
string (date-time)The date and time this link will expire, in ISO-8601 format.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL to redirect the customer to upon attempting to access an expired or otherwise inactive link. Where possible, the customer is redirected to this URL with a query string of ?l={linkId}&s={status} where {status} is one of DEACTIVATED , CANCELLED , USED , EXPIRED , ERROR , PENDING or NOT_FOUND . When not set, or where link details cannot be retrieved, a generic error page will be used instead.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringMandatory
recipientName
string
}
}
transaction {
MandatoryadvancedPayments/transaction-templateDetails of the transaction you want to create.
merchantReference
string (≤ 255 chars)Your reference for the transaction.
money {
MandatoryadvancedPayments/money-specification
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount {
MandatoryadvancedPayments/amount-specificationChoose one of fixed, choice, range or suggested amount specifications.
fixed
floatConditionalUse if you want your customer to only make a payment for a fixed amount. The customer can not change the amount.
choice {
ConditionaladvancedPayments/amount-choiceUse if you want your customer to select from a predefined set of amounts.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
ConditionaladvancedPayments/amount-rangeUse if you want your customer to choose an amount between a minimum and maximum value or within a part-bounded range. You can also provide a default amount.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
suggested {
ConditionaladvancedPayments/suggestedUse if you want to your customer to choose an amount between a minimum and maximum value or from a predefined set of amounts.
choice {
MandatoryadvancedPayments/amount-choiceMandatory if Suggested included in the request.
option
array (min 1 items, number items)MandatoryMandatory if Amount Choice included in the request.
}
range {
MandatoryadvancedPayments/amount-rangeMandatory if Suggested included in the request.
min
floatMandatory if Amount Range included in the request and max value not present.
max
floatMandatory if Amount Range included in the request and min value not present.
default
float
}
}
}
}
description
string (≤ 255 chars)The description of the transaction.
commerceType
stringPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction. If no channel is provided we'll automatically classify the channel as WEB
deferred
boolean (default false)Indicates if you want the Payment to be Authorised and Captured separately.
recurring
boolean (default false)Set this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
boolean (default false)Set this field if you want to start an instalment Continuous Authority relationship from this transaction.
do3DSecure
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
billingDescriptor
string
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customer {
advancedPayments/customer
create
boolean (default true)Deprecated. Use 'registered' instead, as this will be removed in the future.
registered
boolean (default true)Indicates if you wish to create or use a registered customer. False if you do not wish to register your customer, otherwise set to true. Default value is true.
identity {
advancedPayments/customer-identityMandatory when registering a new customer, or using an already registered customer, optional otherwise.
platformCustomerId
string (≤ 255 chars)ConditionalOur ID for your customer.
merchantCustomerId
string (≤ 255 chars)ConditionalYour ID for the customer.
}
details {
ConditionaladvancedPayments/customer-detailsMandatory when registering a new customer, optional otherwise. NB - If details element is present when fetching an existing customer, the details stored for that customer will be updated with those present in the request.
name
string (≤ 255 chars)ConditionalThe Customer's name. Required when registering a new customer, optional otherwise.
address {
advancedPayments/postal-addressMandatory when registering a new customer, optional otherwise. This is used to pre-populate the customers billing address fields.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
emailAddress
string (≤ 255 chars)Email address for the Customer.
ipAddress
string (≤ 255 chars)The Customer's IP address.
defaultCurrency
string (≤ 255 chars)
dateOfBirth
string (date)
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
features {
advancedPayments/featuresHolder of features that can be enabled/disabled during a hosted session.
paymentMethodRegistration
stringPossible values: always, optionalAllow the customer to choose if they wish their payment method to be registered.
payPalAccessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
paymentMethods
array (string items)Possible values: APPLEPAY, CARD, GOOGLEPAY, MERCHANTDEFINED, PAYPAL, VISACHECKOUT, OPENBANKINGSpecify which payment methods are to be displayed, in the specified order. The array should contain strings for the names of payment methods. This is only available for a version 2 skin. Any payment methods not enabled on your account will not be displayed.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
showResultsPage
booleanConditionalIf true, after processing the transaction, a result page with a summary of key transaction details is shown prior to returning the customer. Default is false. If omitted, your account configuration will determine whether this is shown. Only available when using a version 2 skin.
newAccountPayoutEnabled
booleanConditionalIf true, the customer requesting the payout will be able to complete it by entering a new payment account; the usual restriction of forcing payouts to go to an existing saved account won't apply to this session. NOTE: This feature needs to be enabled on your processing account first; please contact our Implementations team if you wish to use this.
addNewPaymentMethodLink
booleanWorks in conjunction with the newAccountPayoutEnabled
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
customFields {
advancedPayments/custom-fields
dataFieldOrTextFieldOrLabelField [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
}
session {
advancedPayments/hosted-session-configuration
preAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made before the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
postAuthCallback {
advancedPayments/callback-descriptorDetails of the callback made after the transaction is sent for authorisation.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
transactionNotification {
advancedPayments/callback-descriptorDetails of the notification sent after transaction completion.
url
stringMandatoryThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
stringPossible values: REST_XML, REST_JSONThe format of the callback content.
}
returnUrl {
MandatoryadvancedPayments/redirect-descriptorThe URL that we will return your customer to after processing the transaction.
url
stringMandatory
}
cancelUrl {
advancedPayments/redirect-descriptorThe URL that we will return your customer to if they cancel the hosted session. If omitted the returnUrl is used if they cancel.
url
stringMandatory
}
restoreUrl {
ConditionaladvancedPayments/redirect-descriptorThe URL we will return your customer to after visiting an external payment service that required escaping any iframe, e.g. Pay By Bank. Use this if you iframe the PaySuite Payment Page. Visits to this will include the query parameter "hfSessionORTURL", use this as the URL for the iframe to resume the hosted session.
url
stringMandatory
}
skin
string (≤ 255 chars)The ID of the skin used to drive look and feel for this session. Refer to Customise hosted look and feel for more information
siteDomain
string (pattern ^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$)ConditionalThe domain of the site that the iframe will be on. Mandatory for Apple Pay payments when the hosted page will be used in an iframe.
}
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
paymentMethodData {
advancedPayments/payment-method-data
consumerRef
string (1–255 chars)
qiwi {
advancedPayments/qiwi-payment-method-data
siteId
string (≤ 255 chars)
}
paypal {
advancedPayments/paypal-payment-method-data
bnCode
string
}
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
}
}
customerNotice {
advancedPayments/customer-noticeAdditional information/instructional text to display to the customer while collecting payment details; see Customer Notice
content
stringMandatoryText to display to the cardholder, up to 1000 characters. Supports a limited subset of HTML.
locator
stringPossible values: FORM_TOP, FORM_BOTTOM, FORM_AFTERPosition of the notice on the page. Defaults to FORM_TOP if not set.
}
locale
stringThe ISO-639 code for your Customer's locale.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
ReturnedadvancedPayments/smart-link-response-detailThe details of the created link.
expires
string (date-time)The date and time this link will expire, in ISO-8601 format. Links may be cancelled early if needed.
usage
stringPossible values: SINGLE, MULTIPLELinks can be used to make a single successful transaction. They may be re-accessed after a decline or other failure in order to try again.
onDeadLink
stringURL the customer will be redirected to upon attempting to access an expired or otherwise inactive link.
linkDelivery {
advancedPayments/smart-link-delivery
recipientAddress
stringReturned
recipientName
string
}
status
stringPossible values: ACTIVATED, DEACTIVATED, CANCELLED, USED, EXPIREDLinks are created with a status of ACTIVATED.
link
stringThe link. A HTTP URL that will initialise a Hosted session so that a payment or payout may be taken.
linkId
stringA unique ID that can be used to identify the link created.
}
status
stringReturnedStatus of the request.
reasonCode
stringReturnedA code that indicates a response message, it can be looked up for trouble shooting.
reasonMessage
stringReturnedA description of the reason code.
}
Schedules
Endpoints for retrieving, updating, and managing recurring payment schedules for an installation
GET/acceptor/rest/schedules/{instId}/{scheduleId}Get a schedule#
description:
Retrieves a schedule and its transaction details for the given installation
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
POST/acceptor/rest/schedules/{instId}/{scheduleId}/cancelCancel a schedule#
description:
Cancels the specified schedule for the given installation
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
integer (int64)MandatoryInstallation identifier
scheduleId
stringMandatorySchedule identifier
}
request body:
{} — This call takes no request body — send an empty JSON object.
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
GET/acceptor/rest/schedules/{instId}/{scheduleId}/nextGet the next episode#
description:
Retrieves the next scheduled episode for the given installation and schedule
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
integer (int64)MandatoryInstallation identifier
scheduleId
stringMandatorySchedule identifier
}
Responses
200Next schedule episode retrieved
response body:
shared schema advancedPayments/schedule-episode
{
dueDate
string (date)The date the next episode will be processed
episodeIndex
integer (int32)
retryIndex
integer (int32)
amount
floatThe amount that will be processed in the next episode
}
204No next schedule episode available
response body:
shared schema advancedPayments/schedule-episode
{
dueDate
string (date)The date the next episode will be processed
episodeIndex
integer (int32)
retryIndex
integer (int32)
amount
floatThe amount that will be processed in the next episode
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
POST/acceptor/rest/schedules/{instId}/{scheduleId}/resumeResume a schedule#
description:
Resumes the specified schedule for the given installation and optionally catches up missed episodes
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
integer (int64)MandatoryInstallation identifier
scheduleId
stringMandatorySchedule identifier
}
query parameters:
{
catchUp
boolean (default false)Whether missed schedule episodes should be caught up when resuming
}
request body:
{} — This call takes no request body — send an empty JSON object.
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
GET/acceptor/rest/schedules/{instId}/{scheduleId}/scheduleDefinitionGet a schedule definition#
description:
Retrieves the schedule definition for the given installation and schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
PUT/acceptor/rest/schedules/{instId}/{scheduleId}/scheduleDefinitionUpdate a schedule#
description:
Updates the schedule definition for the given installation and schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
POST/acceptor/rest/schedules/{instId}/{scheduleId}/skipNextSkip the next episode#
description:
Skips the next scheduled episode for the given installation and schedule
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
integer (int64)MandatoryInstallation identifier
scheduleId
stringMandatorySchedule identifier
}
request body:
{} — This call takes no request body — send an empty JSON object.
Responses
200Next schedule episode skipped
response body:
shared schema advancedPayments/schedule-episode
{
dueDate
string (date)The date the next episode will be processed
episodeIndex
integer (int32)
retryIndex
integer (int32)
amount
floatThe amount that will be processed in the next episode
}
204No next schedule episode available to skip
response body:
shared schema advancedPayments/schedule-episode
{
dueDate
string (date)The date the next episode will be processed
episodeIndex
integer (int32)
retryIndex
integer (int32)
amount
floatThe amount that will be processed in the next episode
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
POST/acceptor/rest/schedules/{instId}/{scheduleId}/suspendSuspend a schedule#
description:
Suspends the specified schedule for the given installation
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
integer (int64)MandatoryInstallation identifier
scheduleId
stringMandatorySchedule identifier
}
request body:
{} — This call takes no request body — send an empty JSON object.
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)ConditionalOne and only one of Fixed, Frequency or Pattern will be present matching what was requested
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringReturnedPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
CardLock
Endpoint for exchanging card details for a single-use token
Exchange customer-entered card details for a single-use CardLock token, which can then be presented to the payments API in place of the card number. The request and response payloads are JSON encoded objects.
authorization:Your publishable ID, supplied in the request body
content-type:application/json
request body:
{
publishableId
stringMandatoryPublishable ID, as issued to you by Access PaySuite. This must be associated with the Access PaySuite account you intend to process the subsequent transaction on. For example, Ihudyi6xTomATGMa5bluhQ.
pan
stringMandatoryCard number: 13 through 19 digits (inclusive) (0 through 9, no spaces). For example, 9900000000005159.
cvv
stringCVV2/CVC2/CID: 3 or 4 digits (0 through 9, no spaces). For example, 456.
}
Responses
200OK
response body:
{
status
stringReturnedStatus code: letter, two digits. See Response Codes and Messages — CardLock . For example, S00.
message
stringReturnedStatus message: text message. For example, OK.
token
stringCardLock token: alphanumeric. For example, TT_2gBBl8mbS_WIbfHuFgcSAg.
}
400Bad request — PAN, CVV or publishable id rejected
response body:
{
status
stringReturnedThe failure code, for example V01 for a missing PAN or V03 for an invalid CVV. See Response Codes and Messages — CardLock.
message
stringReturnedText describing the failure.
}
500Internal Server Error
response body:
{
status
stringReturnedE00 when the service is unavailable, E01 for any other internal failure.
message
stringReturnedText describing the failure.
}
Hosted skin management
Endpoints for managing hosted-flow skins
POST/hosted/rest/skins/{instId}/createCreate skin for installation#
description:
Uploads a new skin and assigns it under the installation owner organisation.
authorization:HTTP Basic
content-type:application/zip
path parameters:
{
instId
integer (int64)MandatoryThe installation id
}
query parameters:
{
name
stringMandatoryThe name of the skin, max 255 characters
description
stringAn optional description for the skin, max 255 characters
reviewer
stringWho reviewed the skin
reviewReference
stringThe reference of the ticket the skin was reviewed in
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
callbacks {
advancedPayments/callback-request-details
expiryNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
preAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
postAuthCallback {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
transactionNotification {
advancedPayments/callback-detail
url
stringThe URL you want the callback or notification to be sent to. This will override any defaults set on your account. Where a default is set and a blank URL field is specified, no callback or notification will be sent.
format
string (≤ 255 chars)The format of the callback content.
}
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, including loan repayments and other credit-related activities.
UK- and Europe-based merchants with merchant category code (MCC) 6012, and some merchants coded MCC 6051 or MCC 7299, are required to provide this information about the primary recipient, who may be different from the customer making payment. Consult your acquirer if you are not sure whether you should submit this.
Cannot be submitted in conjunction with accountFunding.
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. If the name is longer than six characters, then provide the first six. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. If this is a PAN, then provide the first six and last four digits of the PAN. Otherwise, provide up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
clientInfoDetails {
advancedPayments/client-info-details
sdkVersion
stringMandatory
merchantAppName
stringMandatory
merchantAppVersion
stringMandatory
sdkInstallId
stringMandatory
osFamily
stringMandatory
osName
stringMandatory
modelName
stringMandatory
modelFamily
stringMandatory
manufacturer
stringMandatory
type
stringMandatory
screenRes
stringMandatory
screenDpi
integer (int32)Mandatory
}
schedule {
advancedPayments/schedule-definition
startDate
string (date)The date the schedule becomes active and, if relevant that epiode calculations start from
timeOfDay
string (time)The time of day that any episodes will be triggered, as HH:mm:ss
frequency {
ConditionaladvancedPayments/frequencyOne and only one of Fixed, Frequency or Pattern must be provided
unit
stringMandatoryPossible values: DAY, WEEK, MONTH, YEARunit must be provided for a frequency schedule
ConditionaladvancedPayments/patternOne and only one of Fixed, Frequency or Pattern must be provided
dayOfWeek
stringPossible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific day of the week to peform the transaction
daysOfWeek
array (string items)Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAYThe specific days of the week to peform the transaction
dayOfMonth
integer (int32)There specific day of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
daysOfMonth
array (int32 items)The specific days of the month to peform the transaction (up to 31, in shorter months this will run on the last day of the month)
weekOfMonth
integer (int32)The specific week of the month to peform the transaction (up to 4)
weeksOfMonth
array (int32 items)The specific weeks of the month to peform the transaction (up to 4)
monthOfYear
stringPossible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
monthsOfYear
array (string items)Possible values: JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
fixed
array (date items)Conditionalthe dates on which an episode will be triggered. One and only one of Fixed, Frequency or Pattern must be provided
terminator {
advancedPayments/terminator
episodeLimit
integer (int32)Conditionalthe number of episodes to run before the schedule is complete
endOn
string (date)Conditionalthe scheduler will not run after this date. If there is an episode due on this date, it will be run.
suspend {
advancedPayments/suspend
failureCount
integer (int32)The number episode failures before the Schedule suspends (this should be higher than the maximum retry count)
}
}
retry {
advancedPayments/retry
unit
stringMandatoryPossible values: HOUR, DAY, WEEK, MONTHcombined with quantity when and should a retry be attempted
quantity
integer (int32)combined with unit when and should a retry be attempted
maxRetries
integer (int32)How many retries shoudl be attewmpted before the episode fails.
processWhileRetrying
booleancontinue to process scheduled episodes while retrying a failed epsiode. default: false.
catchupAfterRetrying
booleanprocess any episodes missed while retrying a failed epsiode. default: false.
}
amounts
array (number items)specific amounts to process in order. If there are less amounts than episodes the final amount will repeat. If no amounts are specified the amount on the original transaction will be used.
merchantRef
stringA merchant defined reference to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
description
stringA merchant defined description to be added to the repeated repeats triggered by the schedule. If the place-holder {DATE} is included this will be replaced by the date the payment is actually processed in yyyy-MM-dd format. If the place-holder {EPISODE_INDEX} is used this will be replaced with the index of the episode which triggered the transaction.
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/payment-method
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)
card {
ConditionaladvancedPayments/full-card-payment-detailsUse if you want to provide your Customer's card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer's default card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
ConditionaladvancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
ConditionaladvancedPayments/pay-pal-payment-detailsInclude if the payment is being made with PayPal.
returnUrl
stringMandatoryThe location where the Customer will be redirected after he finishes the PayPal session.
cancelUrl
stringMandatoryThe location where the Customer will be redirected if the cancels the PayPal session.
accessToken
stringThe PayPal access token to be used in the PayPal session for "seamless checkout". If not provided or not valid at the time of use, the customer will be redirected to the PayPal login.
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. When not provided, this will be calculated as described in the Stored Credentials Framework. This field may not be provided unless a value for customerInitiated is also provided. When that value is "false", then the only valid value for this field is "EXISTING".
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. When not provided, this will be calculated as described in the Stored Credentials Framework. When credentials may be stored for multiple purposes, use the broadest value possible, i.e. "ADHOC". This field must be provided whenever a value of "NEW" or "EXISTING" is supplied for storage. It may not be provided when storage is "NONE".
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. If a value other than "EXISTING" is provided for storage, then this field may not be provided.
ConditionaladvancedPayments/google-pay-payment-detailsAll of the data in this section is returned in the Google Pay payment method data response.
apiVersion
stringConditional
savedAccountToken
stringThe unique payment method token from a previously successful Google Pay transaction. The token can represent either a Google Pay non-tokenized card (FPAN) or an Android device token (DPAN) payment method.
string (1–2147483647 chars)MandatoryThe card details as provided by the Google Pay API. This is the last 4 digits of the card.
cardHolderName
string (1–2147483647 chars)MandatoryThe cardholder name for the Google Pay payment method.
}
}
openbanking {
advancedPayments/open-banking-payment-details
returnUrl
stringThe URL that the user will be returned to after the payment has been completed.
mode
stringPossible values: REDIRECT, POPUPThe Pay by Bank integration mode.
}
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
booleanIndicates if the transaction should be processed with 3DS. This will override account configuration for 3DS.
sendEmailReceipt
booleanIf true, an email receipt will be sent for this transaction. If false, no receipt will be sent. If not present, your account configuration determines if an email is sent.
provider
stringPossible values: SAFETYPAY
provisionNetworkToken
booleanSet false to opt out of provisioning a token Omit or set true to provision according to account configuration.
}
browserInfo {
advancedPayments/browser-info-details
deviceCategory
string
acceptHeader
string (≤ 255 chars)
userAgentHeader
string (≤ 2048 chars)The Customer's user agent.
}
verification {
advancedPayments/verificationDetails about the verification.
acquirerPaymentMethod
booleanIndicates if the verification type is acquirer payment method.
adviceMode
boolean
}
sessionId
stringYour reference for the Customer's session.
locale
stringThe ISO-639-1 code for your Customer's locale.
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)MandatoryName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatMandatoryThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (36 chars)ACS transaction ID (returned in threeDSecure.acsTransactionId) for the previous authentication.
method
stringPossible values: FRICTIONLESS_AUTH, CHALLENGE_AUTH, AVS, OTHER_ISSUERMethod used in prior authentication.
time
string (date-time)Date/time (in UTC) of prior authentication.
}
}
recipient {
advancedPayments/recipient-detailsPayout recipient details, required by some acquirers.
givenName
string (≤ 255 chars)Recipient given name.
surname
string (≤ 255 chars)Recipient surname.
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), e.g. money transfers. You should provide this if advised by your acquirer.
Cannot be submitted in conjunction with financialServices.
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
Once your customer has completed the Visa Checkout journey on your payment page, this service retrieves some basic information about the card they selected, should you want to display it to them before they confirm the transaction. Pass the "Call ID" that Visa Checkout sent you via their JavaScript API. The response is the data from Visa Checkout verbatim, and as such it is subject to change without notification from us.
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
stringMandatoryInstallation identifier
callId
stringMandatoryVisa Checkout call identifier
}
Responses
200Payment data returnedData from Visa Checkout verbatim
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors.
fieldErrors [ {
advancedPayments/field-error
field
string
message
string
} ]
}
401Unauthorized
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
403Forbidden
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
404Visa Checkout configuration not found
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
Card Information
Endpoints for retrieving card information using a PAN or card lock token
POST/acceptor/rest/cardinfo/{instId}Find card information by PAN#
description:
Validates the submitted PAN and returns card information for the specified installation
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
stringMandatoryInstallation identifier for the merchant
}
request body:
shared schema advancedPayments/card-info-request
{
pan
stringMandatoryThe full PAN to check. Must be 13 to 19 digits.
}
Responses
200Card information retrieved
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors.
fieldErrors [ {
advancedPayments/field-error
field
string
message
string
} ]
}
401Unauthorized
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
403Forbidden
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
404Card information service is not available for the merchant
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
GET/acceptor/rest/cardinfo/{instId}/{cardLockToken}Find card information by card lock token#
description:
Validates the submitted card lock token and returns card information for the specified installation
authorization:HTTP Basic
content-type:application/json
path parameters:
{
instId
stringMandatoryInstallation identifier for the merchant
cardLockToken
stringMandatoryCard lock token used to look up the stored card information
}
Responses
200Card information retrieved
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors.
fieldErrors [ {
advancedPayments/field-error
field
string
message
string
} ]
}
401Unauthorized
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
403Forbidden
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
404Card information service is not available for the merchant
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
POST/cardinfo/getCardInfoget card information mobile request#
description:
Look up what is known about a card from its number or a prefix of it. Called directly from your app, using the client access token your server obtained.
authorization:Bearer, using the client access token
content-type:application/json
request body:
shared schema advancedPayments/card-info-request
{
pan
stringMandatory
}
Responses
200OK
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
400Bad request — PAN missing or not a valid prefix
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
401Unauthorized — client access token missing, expired or refused
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
500Internal Server Error
response body:
shared schema advancedPayments/card-info-response
{
cardType
stringIf known, the type (or 'brand') of card, e.g. 'VISA_DEBIT', 'MC_CREDIT'… If unknown, not present. See Reference Data Values .
cardUsageType
stringIf known, the usage type, 'DEBIT' or 'CREDIT'. If unknown, not present. See Reference Data Values .
cardScheme
stringIf known, the card scheme, e.g. 'VISA', 'MASTERCARD'… If unknown, not present. See Reference Data Values .
cardCategory
stringIf known, the category of card, e.g. 'CREDIT', 'DEBIT', 'CORPORATE', 'BUSINESS'… If unknown, not present. See Reference Data Values .
issuer
stringIf known, the name of issuing bank, e.g. 'DATACASH'. Note that these names are not normalized to any authoritative data source. If unknown, not present.
issuerCountry
stringIf known, the ISO_3166-1 Alpha country code of the issuing bank, e.g. 'GBR', 'DEU'… If unknown, not present.
moreData
booleanIndicates whether the service might return more data if supplied with more digits based on the submitted prefix. Only defined if valid is true.
valid
booleanIndicates whether the submitted digits are a valid prefix, that is, there are PANs that start with those digits.
status
stringPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
stringFurther information about the status. 'S00' means success.
reasonMessage
stringFurther information about the status. This is where we will provide detailed information about any errors.
}
Optimize Evaluate Direct
Endpoints for processing advice transactions that verify payment, payout, and repeat requests for an installation
POST/acceptor/rest/transactions/{instId}/verify/paymentVerify a payment#
description:
Processes an advice request to verify a payment transaction for the given installation
string (≤ 255 chars)The name of the acquirer. Maximum of 255 characters.
acquirer
string (write-only)
}
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/advice-payment-methodInformation about the Payment Method used in the request.
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)Merchant defined unique identifier for the payment method. This must be unique to allow accurate velocity and morphing conditions in rules. Maximum of 255 characters.
card {
advancedPayments/advice-card-payment-detailsPopulated if the payment method is card.
pan
string (≤ 255 chars)The card number. If supplied it may also be used to derive additional data about the card, for example the issuing Bank and country.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
cardType
string (≤ 255 chars)The type of the card.
cardHolderName
string (≤ 255 chars)The name printed on the card.
defaultCard
boolean (default false)Indicates if the card being used is the Customer's default card.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 3 chars)The country where the card was issued. This should be a 3 character ISO-3166-1 code.
cardUsageType
string (≤ 127 chars)The usage type of the card.
cardScheme
string (≤ 127 chars)The card scheme.
cardCategory
string (≤ 127 chars)The category of the card.
source
string (≤ 127 chars)The payment method source for a card transaction.
}
cardToken {
advancedPayments/card-token-payment-detailsUse if you want to use tokenised card details from a previous transaction.
token
stringMandatoryThe token of a previously used card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
advancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
objectadvancedPayments/advice-pay-pal-payment-detailsSpecify this empty block to indicate that the payment method is PayPal.
merchantDefined {
advancedPayments/merchant-defined-payment-detailsThis can be used when you have a payment method that does not fit into any of our other existing payment method categories. Note that the details supplied in this section will be returned verbatim in the response so sensitive data should not be supplied in these fields.
accountHolderName
string (≤ 255 chars)The name of the account holder.
paymentMethodName
string (≤ 127 chars)The name of the payment method.
}
googlepay {
advancedPayments/advice-google-pay-payment-detailsPopulated if the payment method is Google Pay.
pan
string (≤ 255 chars)The card number.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
details
string (≤ 127 chars)The card details as provided by the Google Pay API. This is the last 4 digits of the card.
network
string (≤ 127 chars)The card network.
cardHolderName
string (≤ 255 chars)The cardholder name for the Google Pay payment method.
eciIndicator
string (≤ 127 chars)The 3D Secure Electronic Commerce Indicator.
}
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
}
threeDSecure {
advancedPayments/advice-three-d-secure-request-detail3D Secure data can be supplied in the request to support 3D Secure transactions. Every field here can be used in Optimize fraud checks.
version
integer (int32, min 1, max 2)ConditionalThe major version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
protocolVersion
string (≤ 5 chars)ConditionalPossible values: 1.0.2, 2.1.0, 2.2.0The protocol version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
versionsAttempted [ {
advancedPayments/advice-three-d-secure-versions-attempted-detailsVersions of 3D Secure that were attempted for this transaction, in order of use, and why each was or was not available.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
eci
string (≤ 2 chars)The 3D Secure Electronic Commerce Indicator. Must be a valid ECI consisting of 2 digits.
scheme
stringPossible values: VERIFIED_BY_VISA, VISA_SECURE, MASTERCARD_SECURECODE, MASTERCARD_IDENTITY_CHECK, SAFEKEY, JSECUREThe scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
enrolmentStatus
stringPossible values: ENROLLED, NOT_ENROLLED, UNABLE_TO_AUTHENTICATEThe 3D Secure enrolment status. Legacy: the enrolment check is not part of 3D Secure 2, which reports its outcome in status.
authenticationStatus
stringPossible values: AUTHENTICATED, ATTEMPTED, FAILED, ERRORThe 3D Secure authentication status. Legacy: not used by 3D Secure 2, which reports its outcome in status.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was requested or not.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (≤ 255 chars)The name of the acquirer. Maximum of 255 characters.
acquirer
string (write-only)
}
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/advice-payment-methodInformation about the Payment Method used in the request.
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)Merchant defined unique identifier for the payment method. This must be unique to allow accurate velocity and morphing conditions in rules. Maximum of 255 characters.
card {
advancedPayments/advice-card-payment-detailsPopulated if the payment method is card.
pan
string (≤ 255 chars)The card number. If supplied it may also be used to derive additional data about the card, for example the issuing Bank and country.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
cardType
string (≤ 255 chars)The type of the card.
cardHolderName
string (≤ 255 chars)The name printed on the card.
defaultCard
boolean (default false)Indicates if the card being used is the Customer's default card.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 3 chars)The country where the card was issued. This should be a 3 character ISO-3166-1 code.
cardUsageType
string (≤ 127 chars)The usage type of the card.
cardScheme
string (≤ 127 chars)The card scheme.
cardCategory
string (≤ 127 chars)The category of the card.
source
string (≤ 127 chars)The payment method source for a card transaction.
}
cardToken {
advancedPayments/card-token-payment-detailsUse if you want to use tokenised card details from a previous transaction.
token
stringMandatoryThe token of a previously used card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
advancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
objectadvancedPayments/advice-pay-pal-payment-detailsSpecify this empty block to indicate that the payment method is PayPal.
merchantDefined {
advancedPayments/merchant-defined-payment-detailsThis can be used when you have a payment method that does not fit into any of our other existing payment method categories. Note that the details supplied in this section will be returned verbatim in the response so sensitive data should not be supplied in these fields.
accountHolderName
string (≤ 255 chars)The name of the account holder.
paymentMethodName
string (≤ 127 chars)The name of the payment method.
}
googlepay {
advancedPayments/advice-google-pay-payment-detailsPopulated if the payment method is Google Pay.
pan
string (≤ 255 chars)The card number.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
details
string (≤ 127 chars)The card details as provided by the Google Pay API. This is the last 4 digits of the card.
network
string (≤ 127 chars)The card network.
cardHolderName
string (≤ 255 chars)The cardholder name for the Google Pay payment method.
eciIndicator
string (≤ 127 chars)The 3D Secure Electronic Commerce Indicator.
}
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
}
threeDSecure {
advancedPayments/advice-three-d-secure-request-detail3D Secure data can be supplied in the request to support 3D Secure transactions. Every field here can be used in Optimize fraud checks.
version
integer (int32, min 1, max 2)ConditionalThe major version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
protocolVersion
string (≤ 5 chars)ConditionalPossible values: 1.0.2, 2.1.0, 2.2.0The protocol version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
versionsAttempted [ {
advancedPayments/advice-three-d-secure-versions-attempted-detailsVersions of 3D Secure that were attempted for this transaction, in order of use, and why each was or was not available.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
eci
string (≤ 2 chars)The 3D Secure Electronic Commerce Indicator. Must be a valid ECI consisting of 2 digits.
scheme
stringPossible values: VERIFIED_BY_VISA, VISA_SECURE, MASTERCARD_SECURECODE, MASTERCARD_IDENTITY_CHECK, SAFEKEY, JSECUREThe scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
enrolmentStatus
stringPossible values: ENROLLED, NOT_ENROLLED, UNABLE_TO_AUTHENTICATEThe 3D Secure enrolment status. Legacy: the enrolment check is not part of 3D Secure 2, which reports its outcome in status.
authenticationStatus
stringPossible values: AUTHENTICATED, ATTEMPTED, FAILED, ERRORThe 3D Secure authentication status. Legacy: not used by 3D Secure 2, which reports its outcome in status.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was requested or not.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
string (≤ 255 chars)The name of the acquirer. Maximum of 255 characters.
acquirer
string (write-only)
}
}
transaction {
MandatoryadvancedPayments/primary-transaction-detailsDetails of the transaction you want to create.
currency
string (≤ 255 chars)MandatoryThe currency of your Customer's transaction. Use the 3 character ISO-4217 code.
amount
floatMandatoryThe amount of your Customer's transaction.
description
string (≤ 255 chars)The description of the transaction. Maximum length: 255.
merchantRef
string (≤ 255 chars)Your reference for the transaction. Max length: 255. It's recommended that you keep this unique.
commerceType
stringMandatoryPossible values: ECOM, MOTO, CNPThe commerce type for your Customer's transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe sales channel for your Customer's transaction.
deferred
booleanIndicates if you want the Payment to be Authorised and Captured separately.
recurring
booleanSet this field if you want to start a recurring Continuous Authority relationship from this transaction.
instalment
booleanSet this field if you want to start an instalment Continuous Authority relationship from this transaction.
billingDescriptor
string
customerInitiated
boolean
continuousAuthorityAgreement {
ConditionaladvancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paymentMethod {
MandatoryadvancedPayments/advice-payment-methodInformation about the Payment Method used in the request.
registered
booleanIndicates if the supplied card payment method should be registered. If no value is supplied true is assumed. This field will not be accepted for non-card payment methods.
paymentAccountFingerprint
string (≤ 255 chars)Merchant defined unique identifier for the payment method. This must be unique to allow accurate velocity and morphing conditions in rules. Maximum of 255 characters.
card {
advancedPayments/advice-card-payment-detailsPopulated if the payment method is card.
pan
string (≤ 255 chars)The card number. If supplied it may also be used to derive additional data about the card, for example the issuing Bank and country.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
cardType
string (≤ 255 chars)The type of the card.
cardHolderName
string (≤ 255 chars)The name printed on the card.
defaultCard
boolean (default false)Indicates if the card being used is the Customer's default card.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 3 chars)The country where the card was issued. This should be a 3 character ISO-3166-1 code.
cardUsageType
string (≤ 127 chars)The usage type of the card.
cardScheme
string (≤ 127 chars)The card scheme.
cardCategory
string (≤ 127 chars)The category of the card.
source
string (≤ 127 chars)The payment method source for a card transaction.
}
cardToken {
advancedPayments/card-token-payment-detailsUse if you want to use tokenised card details from a previous transaction.
token
stringMandatoryThe token of a previously used card.
advancedPayments/card-updatesUse if you are updating card details with the transaction.
nickname
string (≤ 255 chars)The name the Customer provides for their card to allow easy selection where they register multiple cards. Maximum 20 characters.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
startDate
string (≤ 255 chars)The start date for the card. Provide as MMYY.
clearStartDate
boolean
issueNumber
integer (int32)The issue number for the card.
clearIssueNumber
boolean
defaultCard
boolean (default false)Indicates if the card being used should become the Customer's default card.
}
}
fromCustomer {
advancedPayments/from-customer-payment-detailsUse if you want to use your Customer's default card. This section is mandatory if you are not providing a token or full card details.
objectadvancedPayments/advice-pay-pal-payment-detailsSpecify this empty block to indicate that the payment method is PayPal.
merchantDefined {
advancedPayments/merchant-defined-payment-detailsThis can be used when you have a payment method that does not fit into any of our other existing payment method categories. Note that the details supplied in this section will be returned verbatim in the response so sensitive data should not be supplied in these fields.
accountHolderName
string (≤ 255 chars)The name of the account holder.
paymentMethodName
string (≤ 127 chars)The name of the payment method.
}
googlepay {
advancedPayments/advice-google-pay-payment-detailsPopulated if the payment method is Google Pay.
pan
string (≤ 255 chars)The card number.
maskedPan
string (≤ 255 chars)The masked card number.
expiryDate
string (≤ 255 chars)The expiry date for the card. Provide as MMYY.
details
string (≤ 127 chars)The card details as provided by the Google Pay API. This is the last 4 digits of the card.
network
string (≤ 127 chars)The card network.
cardHolderName
string (≤ 255 chars)The cardholder name for the Google Pay payment method.
eciIndicator
string (≤ 127 chars)The 3D Secure Electronic Commerce Indicator.
}
billingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
}
threeDSecure {
advancedPayments/advice-three-d-secure-request-detail3D Secure data can be supplied in the request to support 3D Secure transactions. Every field here can be used in Optimize fraud checks.
version
integer (int32, min 1, max 2)ConditionalThe major version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
protocolVersion
string (≤ 5 chars)ConditionalPossible values: 1.0.2, 2.1.0, 2.2.0The protocol version of 3DS used. Either version or protocolVersion must be specified to supply 3DS data.
versionsAttempted [ {
advancedPayments/advice-three-d-secure-versions-attempted-detailsVersions of 3D Secure that were attempted for this transaction, in order of use, and why each was or was not available.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
eci
string (≤ 2 chars)The 3D Secure Electronic Commerce Indicator. Must be a valid ECI consisting of 2 digits.
scheme
stringPossible values: VERIFIED_BY_VISA, VISA_SECURE, MASTERCARD_SECURECODE, MASTERCARD_IDENTITY_CHECK, SAFEKEY, JSECUREThe scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
enrolmentStatus
stringPossible values: ENROLLED, NOT_ENROLLED, UNABLE_TO_AUTHENTICATEThe 3D Secure enrolment status. Legacy: the enrolment check is not part of 3D Secure 2, which reports its outcome in status.
authenticationStatus
stringPossible values: AUTHENTICATED, ATTEMPTED, FAILED, ERRORThe 3D Secure authentication status. Legacy: not used by 3D Secure 2, which reports its outcome in status.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was requested or not.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
}
customer {
advancedPayments/request-customer-details
create
boolean (default true)
registered
booleanIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
update
boolean (default true)Indicates if you want to update the Customer's details with the transaction.
merchantRef
string (≤ 255 chars)ConditionalYour reference for the Customer. Not required if registered is set to false, mandatory otherwise.
id
string (≤ 255 chars)Our ID for the Customer where they are already registered with us.
displayName
string (≤ 255 chars)ConditionalThe Customer's name. Not required if registered is set to false, mandatory otherwise.
billingAddress {
advancedPayments/postal-addressThe address of the Customer.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
email
string (≤ 255 chars)Email address for the Customer.
dob
string (≤ 255 chars)Date of birth for the Customer.
dateOfBirth
string (date)
telephone
string (≤ 255 chars)Telephone number for the customer. For best results, use international format, e.g. "+441234567890".
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
clientRedirect {
advancedPayments/redirect-response-detailInformation about where to send your customer in the case of 3DS or a Callback.
type
string (≤ 255 chars)ReturnedThe type of client redirect.
url
stringReturnedThe URL the Customer should be redirected to.
frame
stringPossible values: CONTAINER, TOPThe redirect type when the transaction is set to suspend and redirect to a new URL.
pareq
stringReturned when the transaction is suspended for 3DS authorisation.
threeDSServerTransId
string
customerInstructions {
advancedPayments/customer-instructions
html
string
expirationDate
string
workingHoursUrl
string
}
}
paymentMethod {
advancedPayments/payment-method-response-detailInformation about the Payment Method used in the request.
registered
booleanIndicates that the customer choose to register this card payment method. This field will not be present for non-card payment methods.
isPrimary
booleanIndicates if this was Customer's primary registered payment method.
paymentAccountFingerprint
stringMerchant defined unique identifier for the payment method.
billingAddress {
advancedPayments/postal-addressThe billing address of the Customer. Will be used for AVS checks. We'll save the billing address when the customer makes their first payment. Providing a billing address for subsequent payments will update the address we've saved if you send new, empty or no values for each field.
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
reuse {
advancedPayments/payment-method-reuse-response
storage
stringPossible values: NEW, EXISTING, NONESpecifies whether the payment credentials for this transaction will be stored, are being reused, or will not be stored. This will reflect any override in the request.
agreement
stringPossible values: RECURRING, INSTALMENT, ADHOCSpecifies the agreement under which stored credentials will be used/are being reused. This will reflect any override in the request.
originalSchemeReference
stringScheme reference corresponding to the transaction that first stored a payment credential, if available. This will reflect any value given in the request. Where Access PaySuite has stored and reused a value on behalf of the merchant, it will be shown here.
receivedSchemeReference
stringScheme reference corresponding to the transaction that has been created, if one was received. For the initial storage of payment credentials, this will be the value that Access PaySuite will store and reuse on behalf of the merchant when necessary. For transactions which reuse a stored payment credential, this value may or may not differ from that of originalSchemeReference.
}
paymentClass
string (≤ 255 chars)ReturnedThe classification of payment method used.
card {
ConditionaladvancedPayments/card-response-detailPresent when the payment method was a card. Only one payment method object is returned, indicated by paymentClass.
cardToken
stringThe token for the card.
cardFingerprint
stringAn identifier for the card number. If multiple customers register cards with the same PAN they will get different card tokens, but the card fingerprint will be the same for them all. When a saved card is backed by a Network Token rather than the original PAN, the field is not populated.
cardType
string (≤ 255 chars)The type of card. Eg. MC_DEBIT, VISA_CREDIT, AMEX.
cardUsageType
stringPossible values: CREDIT, DEBITThe usage type of card. Eg. DEBIT, CREDIT.
string (≤ 255 chars)The masked card number. eg. 123456******1234. Where possible, this will include the first six and last four digits; in some cases, only the last four digits will be available.
expiryDate
string (≤ 255 chars)The expiry date of the card. Formatted as MMYY.
issuer
string (≤ 255 chars)The Issuer of the card.
issuerCountry
string (≤ 255 chars)The country of the card Issuer.
cardHolderName
string (≤ 255 chars)The Cardholder's name.
cardNickname
string (≤ 255 chars)The name the Customer provided for their Card to allow easy selection where they registered multiple cards.
issueNumber
string (≤ 255 chars)The issue number of the card used in the request.
validDate
string (≤ 255 chars)The valid from date of the card. Formatted as MMYY.
source
stringPossible values: VISA_CHECKOUT, GOOGLEPAYThis will always be GOOGLEPAY.
networkToken {
advancedPayments/network-tokenOnly present if a network token was provisioned or used during this transaction
status
stringPossible values: ACTIVE, SUSPENDED, DELETED, EXPIRED, UNPROVISIONEDStatus of the token at the time of this transaction: ACTIVE - active and usable SUSPENDED - temporarily suspended, may be re-activated in future DELETED - permanently deleted; need to re-engage cardholder EXPIRED - expired, should be refreshed in future UNPROVISIONED - no token
usage
stringPossible values: PROVISIONED, PROVISIONED_AND_USED, PROVISION_FAILED, USED, RENEWEDWhat happened to the token during this transaction: PROVISIONED - transaction created a network token PROVISION_FAILED - tried to create a network token but failed USED - transaction used an existing network token
tokenError
stringPossible values: CARD_TOKENISATION_NOT_ALLOWED, DECLINED, SERVICE_UNAVAILABLE, SYSTEM_ERRORReason for provisioning failure: CARD_TOKENISATION_NOT_ALLOWED - card not supported (or, not at this time) DECLINED - card scheme or issuer refused to provision a network token SERVICE_UNAVAILABLE - scheme token service not available SYSTEM_ERROR - unspecified error attempting to provision
expiryDate
stringToken expiry date. Formatted as MMYY.
}
new
boolean
}
paypal {
ConditionaladvancedPayments/pay-pal-response-detailPresent when the payment method was PayPal. Only one payment method object is returned, indicated by paymentClass.
payerID
string (≤ 255 chars)PayPal's identifier for the payer.
email
string (≤ 255 chars)The email associated with the PayPal account.
accountVerified
booleanIndicates whether PayPal has verified the account.
checkoutToken
stringThe PayPal checkout token for the session the payment was taken in.
source
stringPossible values: PAYPAL, PAYPAL_ONE_TOUCHWhich PayPal integration took the payment - PAYPAL for Express Checkout, or PAYPAL_ONE_TOUCH.
bnCode
stringThe PayPal partner attribution code the payment was made under.
payeeAccount
stringThe PayPal account the funds were paid to.
}
applepay {
ConditionaladvancedPayments/apple-pay-response-detailPresent when the payment method was Apple Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Apple Pay uses for this card (e.g. VISA 1234)
transactionIdentifier
string (≤ 255 chars)
cardType
string (≤ 255 chars)Information about the type of card used by the Apple Pay transaction.
cardUsageType
stringPossible values: CREDIT, DEBITThe card usage type (credit or debit)
ConditionaladvancedPayments/google-pay-response-detailPresent when the payment method was Google Pay. Only one payment method object is returned, indicated by paymentClass.
displayName
string (≤ 255 chars)The display name Google Pay uses for this card (e.g. Visa •••• 1111)
string (≤ 255 chars)The unique token for the payment method, returned when a card is registered. A savedAccountToken will be returned for both Google Pay non-tokenized cards (FPAN) and Android device token (DPAN) payment methods and can be used to make subsequent payments of that type.
cardDetails
stringDescrptive details of the card as provided by Google Pay. This will always be the last 4 digits of the card number
cardHolderName
stringThe cardholder name for the Google Pay payment method
}
merchantDefined {
ConditionaladvancedPayments/merchant-defined-response-detailPresent when the payment method was merchant defined. Only one payment method object is returned, indicated by paymentClass.
accountHolderName
string (≤ 255 chars)The account holder name that was supplied in the request.
paymentMethodName
string (≤ 127 chars)The payment method name that was supplied in the request.
}
openbanking {
ConditionaladvancedPayments/open-banking-response-detailPresent when the payment method was Pay by Bank. Only one payment method object is returned, indicated by paymentClass.
remittanceReference
stringThe reference the payer's bank shows against the payment.
userInterfaceDetails
object (map)Details the payer's bank supplied for display, as name and value pairs. The members vary by bank.
account {
advancedPayments/open-banking-accountThe bank account the payment came from.
sortCode
stringSort code of the payer's bank account.
accountNumber
stringNumber of the payer's bank account.
bankName
stringName of the payer's bank.
}
multiAuthorisation
stringPossible values: AUTHORISED, INCOMPLETEWhere the payer's bank requires more than one person to authorise a payment, whether every authorisation has been given yet.
mode
stringPossible values: REDIRECTHow the payer was taken to their bank to authorise the payment.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecure {
advancedPayments/three-d-secure-response-detailInformation about the 3D Secure status of your transaction.
version
integer (int32)Major version of 3D Secure applied to this transaction.
protocolVersion
string (≤ 255 chars)Full protocol version of 3D Secure applied to this transaction.
versionsAttempted [ {
advancedPayments/three-d-secure-version-attemptedVersions of 3D Secure that were attempted for this transaction, in order of use. This can be used to determine when 3DSv2 could not be used, and why. A version will only be included in this list if it was meaningfully attempted, which means that the transaction must have been eligible (e.g. type, channel, payment method etc.) and the merchant's account must have been capable (e.g. the corresponding 3D Secure version was enabled on the MID, etc.) This field may be populated even if no others in this section are, e.g. to indicate that the issuer didn't support any version of 3D Secure.
version
integer (int32, min 1, max 2)Major version of 3D Secure that was attempted.
availability
stringPossible values: INSUFFICIENT_DATA, ISSUER_NO_V2, ISSUER_NO_V1, ISSUER_NO_3DS, ERROR, AVAILABLEHigh-level indication of the actual availability of the given 3D Secure version and what happened during the attempt to use it.
} ]
scheme
string (≤ 255 chars)The scheme that processed the transaction for 3DS.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
eci
string (≤ 255 chars)Electronic Commerce Indicator (ECI) for this transaction; used by the card issuer/scheme/acquirer to describe the security (inc. authentication) that has been applied. This value reflects what was obtained from the 3D Secure process; it may be modified/transformed prior to submission to an acquirer. It is provided for informational purposes only; merchants do not need to use it as part of processing, and should rely on the status and other fields for a stable interpretation of the outcome.
Common values include:
01 - Attempted authentication (Mastercard)
02 - Authenticated (Mastercard)
05 - Authenticated (Visa, American Express)
06 - Attempted authentication (Visa, American Express)
07/00 - Not authenticated/no 3D Secure
Other values not listed here may be seen for some types of transaction, at the discretion of the card scheme and/or ACS operator.
string (≤ 255 chars)Directory Server 3DSv2 transaction ID.
acsTransactionId
string (≤ 255 chars)Access Control Server (ACS) 3DSv2 transaction ID.
challengeRequest
stringPossible values: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED, CHALLENGE_MANDATEDIndicates whether a challenge was ultimately requested or not; this reflects the final 3DSv2 request made by Access PaySuite Advanced Payments after taking into account any merchant preference and card scheme rules.
frictionless
booleanWhether the cardholder was authenticated without a challenge (frictionless flow).
cardHolderMessage
stringMessage returned by the issuer containing instructions for the cardholder.
}
customer {
advancedPayments/return-customer-detailInformation about the Customer.
id
string (≤ 255 chars)Our ID for the Customer.
merchantRef
string (≤ 255 chars)Your reference for the Customer.
}
financialServices {
advancedPayments/financial-servicesSupplementary data for Financial Services payments, echoed from the request
dateOfBirth
string (pattern ^[0-9]{8}$)Date of birth of the recipient, in YYYYMMDD format. For example, for Jan 2nd, 1980, this would be "19800102".
surname
string (pattern ^\p{L}{1,6}$)Surname/family name of the recipient; up to six characters, excluding numbers or special characters. For example, for "Smith", this would be "Smith"; for "Williams", this would be "Willia".
accountNumber
string (pattern ^[a-zA-Z0-9]{1,10}$)Account number used to identify the recipient or loan. For a PAN, the first six and last four digits of the PAN; otherwise up to ten characters of the account number.
postCode
string (pattern ^[a-zA-Z0-9]{1,6}$)First part of the postal code of the recipient; up to six characters. For example, if the postal code is "EC2A 1AE", this would be "EC2A".
}
accountFunding {
advancedPayments/account-fundingSupplementary data for Account Funding Transactions (AFT), echoed from the request
recipient {
advancedPayments/account-funding-recipient-detailsDetails about the funding recipient
givenName
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's given name
surname
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient's surname/family name
string (≤ 255 chars, pattern ^[a-zA-Z0-9][A-Za-z0-9 ]*$)Recipient city
state
string (2–3 chars, pattern ^[A-Za-z0-9]+$)ConditionalOnly for recipients based in the US or Canada Recipient state/province code (2-3 characters), e.g. "CA", "DE", "MD", "TN" et al. in the US; "AB", "ON", "QC", "SK" et al. in Canada
countryCode
string (≤ 3 chars, pattern ^[A-Z]+$)Recipient country code (ISO-3166-alpha-3), e.g. "CAN", "GBR", "USA" et al.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)ReturnedOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
paypalSellerProtection {
advancedPayments/paypal-seller-protection
sellerProtectionType
string (≤ 255 chars)Indicates the level of Seller Protection PayPal has assigned to this transaction. Please refer to PayPal's documentation for more information.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
any
array (object items)
trace
string
order {
advancedPayments/order
orderRef
string (≤ 255 chars)Your reference for the order. Maximum length: 255.
taxAmount
float
taxRate
float
shippingAddress {
advancedPayments/postal-address
name
string (≤ 255 chars)
line1
string (≤ 255 chars)Line 1 of the address.
line2
string (≤ 255 chars)Line 2 of the address.
line3
string (≤ 255 chars)Line 3 of the address.
line4
string (≤ 255 chars)Line 4 of the address.
district
string (≤ 255 chars)
city
string (≤ 255 chars)City of the address.
state
string (≤ 255 chars)
region
string (≤ 255 chars)Region of the address.
postcode
string (≤ 255 chars)Post Code of the address.
country
string (≤ 255 chars)Country name of the Customer's billing address.
countryCode
string (≤ 3 chars)The 3 character ISO-3166-1 code for the address country.
}
items [ {
advancedPayments/line-itemList of products/services in the order.
name
string (≤ 255 chars)ReturnedName of the item. Maximum length: 255.
description
string (≤ 255 chars)Description of the item. Maximum length: 255.
itemRef
string (≤ 255 chars)Your reference for the item. Maximum length: 255.
lineRef
string (≤ 255 chars)Your reference for the line item of the order. Maximum length: 255.
itemAmount
floatReturnedThe individual amount of the item.
quantity
integer (int32)The quantity of items in the order. Defaults to 1 if not provided.
totalAmount
floatThe total amount of the items. Defaults to itemAmount × quantity if not provided.
itemTaxAmount
float
taxRate
float
totalTaxAmount
float
customFields [ {
advancedPayments/custom-field
name
string (≤ 255 chars)ReturnedThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
} ]
} ]
}
strongCustomerAuthentication {
advancedPayments/strong-customer-authentication
transactionType
stringPossible values: GOODS_OR_SERVICES, CHECK_ACCEPTANCE, ACCOUNT_FUNDING, QUASI_CASH, PREPAID_ACTIVATIONDetailed classification of the transaction.
string (≤ 254 chars)For electronic delivery, the email address to which the merchandise was delivered.
deliveryTimeframe
stringPossible values: ELECTRONIC, SAME_DAY, OVERNIGHT, TWO_OR_MORE_DAYSTime frame for merchandise delivery.
giftCardPurchase {
advancedPayments/gift-card-purchase
totalAmount
integer (int32)Total value of gift cards being purchased (major units, e.g. for GBP 12.99, use 12).
currency
string (3 chars)Currency code of cards being purchased.
count
integer (int32, max 99)Total number of cards being purchased.
}
preorder
booleanWas this a pre-order of merchandise which will be available in the future?
preorderDate
string (date)For pre-orders, the date at which merchandise is expected to be available.
reorder
booleanWas the cardholder re-ordering merchandise previously purchased from this merchant?
shippingTo
stringPossible values: BILLING_ADDRESS, VERIFIED_ADDRESS, OTHER_ADDRESS, STORE, DIGITAL, TRAVEL_EVENT, OTHERIndicates the type of shipping address (or shipping method) for the merchandise.
}
accountInfo {
advancedPayments/account-information
accountOpened {
advancedPayments/account-opened
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was opened.
date
string (date)Date the account was opened.
}
accountLastChanged {
advancedPayments/account-last-changed
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the account was last changed.
date
string (date)Date the account was last changed.
}
passwordLastChanged {
advancedPayments/password-last-changed
period
stringPossible values: NO_CHANGE, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period when the password was last changed.
date
string (date)Date the password was last changed.
}
activity {
advancedPayments/activity
purchasesInLastSixMonths
integer (int32, max 9999)Number of purchases made with the account in the previous six months.
addCardAttemptsInLast24Hours
integer (int32, max 999)Number of attempts to add a payment card to the account in the previous 24 hours.
transactionAttemptsInLast24Hours
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous 24 hours.
transactionAttemptsInLastYear
integer (int32, max 999)Number of transactions (successful and abandoned) for the account in the previous year.
}
paymentAccountRegistered {
advancedPayments/payment-account-registered
period
stringPossible values: GUEST_CHECKOUT, THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the payment account registration.
date
string (date)Date the payment account was registered.
}
shippingAddressFirstUsed {
advancedPayments/shipping-address-first-used
period
stringPossible values: THIS_TRANSACTION, LESS_THAN_30_DAYS, BETWEEN_30_AND_60_DAYS, MORE_THAN_60_DAYSRelative time period for the first use of the shipping address.
date
string (date)Date the shipping address was first used.
}
shippingNameSameAsAccountName
booleanIs the name on the account identical to the recipient name in the shipping address?
suspiciousActivity
booleanHas suspicious activity (including fraud) previously occurred on this account?
stringMandatoryThe transaction id of an existing Optimize Direct transaction.
createTask
booleanIndicates if a task should be created on the Manage queue. If this field is omitted then our system will decide whether or not a task should be created based on the decision given by the rules engine.
}
notification {
advancedPayments/task-queue-notification
url
stringMandatoryThe URL that a notification will be sent to in the event of a task being actioned in the Manage queue.
stringReturnedThe transaction id of an existing Optimize Direct transaction.
createTask
booleanIndicates if a task should be created on the Manage queue. If this field is omitted then our system will decide whether or not a task should be created based on the decision given by the rules engine.
}
notification {
advancedPayments/task-queue-notification
url
stringReturnedThe URL that a notification will be sent to in the event of a task being actioned in the Manage queue.
}
outcome {
ReturnedadvancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
stringThe transaction id associated with the task.
status
stringReturnedThe new status of the task.
}
outcome {
advancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
stringThe transaction id associated with the task.
status
stringReturnedThe new status of the task.
}
outcome {
advancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
POST/acceptor/rest/fraudManagement/{installationId}/tasks/{transactionId}/completeComplete a queue task#
description:
Completes the fraud management queue task associated with the specified transaction
authorization:HTTP Basic
content-type:application/json
path parameters:
{
installationId
stringMandatoryInstallation identifier for the merchant
transactionId
stringMandatoryTransaction identifier linked to the queue task
stringThe transaction id associated with the task.
status
stringReturnedThe new status of the task.
}
outcome {
advancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
stringThe transaction id associated with the task.
status
stringReturnedThe new status of the task.
}
outcome {
advancedPayments/outcome-response-detailInformation about the overall outcome of the request.
status
stringReturnedPossible values: SUCCESS, FAILED, PROCESSINGThe overall outcome of the request.
reasonCode
string (≤ 255 chars)ReturnedA code indicating the overall outcome of the request. Refer to Errors for more information.
reasonMessage
string (≤ 255 chars)ReturnedA message indicating the overall outcome of the request. This is where we'll provide detailed reasons for any errors. In the case of a decline this message can be very general. There can be useful guidance to the cause of the decline in processing.authResponse.gatewayMessage.
}
link [ {
advancedPayments/link
href
stringDirect link to the resource.
rel
stringIdentifies the relationship to the requested resource.
} ]
}
500Internal Server Error
response body:
shared schema advancedPayments/error-response
{
status
string
error
string
message
string
path
string
timestamp
string (date-time)
}
Optimize Verify
Endpoints for identity and address verification, batches and data purging
Returns the service banner. Useful only to confirm that you are addressing the right host.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
Responses
200OK
response body:
{
}
GET/optimizeverify/addresslookup/uk/{postCode}Get a list of addresses for a given post code#
description:
Look up UK addresses for a post code, so a person's address can be selected rather than typed. Billed and authorised against the profile named in the query.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
path parameters:
{
postCode
stringMandatoryThe UK post code to look up.
}
query parameters:
{
profileShortCode
stringMandatoryWhich of your profiles the lookup is billed and authorised against.
}
Responses
200OK
response body:
{
}
400Bad Request — the post code was rejected
response body:
{
}
500Internal Server Error
response body:
{
}
GET/optimizeverify/applicantdetail/findukaddressFind a UK address for the applicant form#
description:
Looks up UK addresses for a post code while an applicant is completing the form, so they can pick their address rather than typing it.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
query parameters:
{
custData
stringMandatoryThe customer data, JSON encoded, identifying the client and the profile the lookup is billed against.
postcode
stringMandatoryThe UK post code to look up.
}
Responses
200OK
response body:
{
}
POST/optimizeverify/applicantdetail/getappliantformmodelGet the applicant form model#
description:
Returns the form to present to an applicant: which fields to collect for the profile named in the customer data, together with any customisation configured for it. Used when you host the applicant's data entry yourself.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:multipart/form-data
request body:
{
customerData
stringMandatoryThe customer data, JSON encoded, identifying the client and the profile the form is for.
}
Responses
200OK — the form model, or an object carrying Error, ErrorMessage and ErrorCode
response body:
{
}
POST/optimizeverify/applicantdetail/submitapplicationSubmit an application#
description:
Submits the details an applicant entered into the form, running the profile's checks against them.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:multipart/form-data
request body:
{
customerData
stringMandatoryThe customer data, JSON encoded, identifying the client and profile.
applicantData
stringMandatoryThe details the applicant entered, JSON encoded.
transactionReference
stringMandatoryYour reference for the transaction the submission belongs to.
}
Responses
200OK
response body:
{
}
POST/optimizeverify/batchesImports the provided batch file and starts the batch import#
description:
Import a batch file of applicants and, unless told otherwise, start running it. The batch is run against one profile, named in the form.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:multipart/form-data
request body:
{
Name
string (4 to 50 chars)MandatoryA name for the batch, used to identify it afterwards.
ProfileShortCode
stringMandatoryWhich of your profiles to run every row in the batch against.
RunImmediately
booleanWhether to start the batch as soon as it is imported. Defaults to true.
UserId
integerThe user the batch is attributed to.
}
Responses
200OK
response body:
{
batchId
integerThe id of the imported batch.
batchStatus
stringPossible values: Importing, ImportingAndToBeRunWhether the batch was only imported, or imported and queued to run, following RunImmediately.
}
400Bad Request — the form or the file failed validation
Confirms that the service is reachable and answering. Returns a fixed string and performs no check, so it costs nothing and is safe to poll.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
Responses
200OK
response body:
{
}
GET/optimizeverify/transactions/{transactionKey}Uses the transaction key to retrieve the transaction's status#
description:
Retrieve the status of a transaction from its key. Use this to follow an asynchronous check, or to re-read the outcome of a completed one.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
path parameters:
{
transactionKey
stringMandatoryThe key of the transaction whose status you want.
}
Responses
200OK
response body:
{
}
400Bad Request — the key is not valid for your licence and client
response body:
{
}
POST/optimizeverify/transactions/purgePurges the requested transactions identified by key#
description:
Purge the data held for the given transactions. There is a limit on how many can be purged in one call, and the response reports which keys were not found.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
request body:
{
TransactionKeys
arrayMandatoryThe transaction keys to purge. The controller refuses a request asking for more than its maximum in one call.
}
Responses
200OK
response body:
{
RequestTime
string (datetime)When the request was received.
ResponseTime
string (datetime)When the purge finished.
RequestedCount
integerHow many keys the request asked for.
PurgedCount
integerHow many of those were purged.
NotFoundCount
integerHow many were not found against your licence and client.
NotFoundTransactionKeys
arrayWhich keys were not found.
}
400Bad Request — too many transactions in one call
Returns the running version of the API. Note that a check is a POST to this same path; a GET only reports the version.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
Responses
200OK
response body:
{
}
POST/optimizeverify/verifyExecutes the given profile#
description:
Run a profile's checks against a person, a company, or both, and return the result. Use this for a profile whose checks are all synchronous; a profile containing an asynchronous check is refused with 400 and must go to /optimizeverify/verify-async.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
query parameters:
{
profileShortCode
stringMandatoryWhich of your profiles to run. Identifies the checks, the suppliers and the rules the request is evaluated against.
profileVersionId
integerA specific version of that profile. If omitted, the current version is used.
}
request body:
shared schema optimizeVerify/applicants-data
{
Person {
optimizeVerify/personSection reserved for personal information fields. The required and optional fields vary by profile.
Title
string
Initials
string
Forename
string
Secondname
string
Surname
string
OtherSurname
string
ISOLatin1Name
string
MothersMadienName
string
Date_Of_Birth
stringISO 8601 date.
Gender
stringMale, Female, Unspecified.
Nationality
stringISO Alpha-3 country code.
NationalId
string
Mobile
string
Email
string
HomeStandardCode
string
HomeTelNo
string
BankSortCode
stringExactly 6 digits seperated with ‘-‘.
BankAccountNumber
stringExactly 8 digits. Can be padded with 0 if less than 8.
BankOpenDate
string
DrivingLicenceNo
string16 character UK driving licence number.
DrivingLicenceIssuedState
string
DrivingLicenceExpiryDate
stringISO 8601 date.
PassportNo
string
PersonalNumber
string
PassportMRZLine1
string
PassportMRZLine2
string
PassportExpiryDate
stringISO 8601 date.
EuropeanIDCardNo
string
EuropeanIDMRZLine1
string
EuropeanIDMRZLine2
string
EuropeanIDMRZLine3
string
EuropeanIDCardExpiryDate
stringISO 8601 date.
CountryCode
stringISO Alpha-3 country code.
}
Address [ {
optimizeVerify/address-detailsZero or more addresses related to the Person.
HouseName
string
HouseNumber
string
BuildingName
string
BuildingNumber
string
UnitNumber
string
AddressLine1
string
AddressLine2
string
StreetType
string
District
string
PostTown
string
County
string
StateProvinceCode
string
PostCode
string
Country
string
CountryCode
stringISO Alpha-3 country code.
FuzzyAddressString
stringA full address with components separated by commas or spaces.
PTC_ABS_Code
stringUsed to uniquely identity an address within Equifax.
FirstYearAtAddress
string
LastYearAtAddress
string
AbodeNumber
string
ResidentFrom
string
ResidentTo
string
PostCodeOrPinCode
string
} ]
IdentityDocument [ {
optimizeVerify/identity-documentAn identity document supplied for the person.
Id
string
DocumentNumber
string
DocumentType
string
} ]
Company {
optimizeVerify/company-detailsThe company being verified, where the check is on a business.
CompanyName
string
CompanyNumber
string
CompanyType
string
LegalStatus
string
}
RequestDetail {
optimizeVerify/request-tagSection reserved for client information not used for processing.
ClientTag
stringUp to 255 characters freely chosen by the client for identification.
}
}
Responses
200OK
response body:
{
}
400Bad Request — the profile is asynchronous
response body:
{
}
500Internal Server Error
response body:
{
}
POST/optimizeverify/verify-asyncExecutes the given profile#
description:
Run a profile containing asynchronous checks. The call returns as soon as the transaction is created, and the result is sent later to the callbacks supplied in AsyncCallback.
authorization:HTTP Basic, using Verify specific licenceKey and clientKey
content-type:application/json
query parameters:
{
profileShortCode
stringMandatoryWhich of your profiles to run. Identifies the checks, the suppliers and the rules the request is evaluated against.
profileVersionId
integerA specific version of that profile. If omitted, the current version is used.
optimizeVerify/personSection reserved for personal information fields. The required and optional fields vary by profile.
Title
string
Initials
string
Forename
string
Secondname
string
Surname
string
OtherSurname
string
ISOLatin1Name
string
MothersMadienName
string
Date_Of_Birth
stringISO 8601 date.
Gender
stringMale, Female, Unspecified.
Nationality
stringISO Alpha-3 country code.
NationalId
string
Mobile
string
Email
string
HomeStandardCode
string
HomeTelNo
string
BankSortCode
stringExactly 6 digits seperated with ‘-‘.
BankAccountNumber
stringExactly 8 digits. Can be padded with 0 if less than 8.
BankOpenDate
string
DrivingLicenceNo
string16 character UK driving licence number.
DrivingLicenceIssuedState
string
DrivingLicenceExpiryDate
stringISO 8601 date.
PassportNo
string
PersonalNumber
string
PassportMRZLine1
string
PassportMRZLine2
string
PassportExpiryDate
stringISO 8601 date.
EuropeanIDCardNo
string
EuropeanIDMRZLine1
string
EuropeanIDMRZLine2
string
EuropeanIDMRZLine3
string
EuropeanIDCardExpiryDate
stringISO 8601 date.
CountryCode
stringISO Alpha-3 country code.
}
Address [ {
optimizeVerify/address-detailsZero or more addresses related to the Person.
HouseName
string
HouseNumber
string
BuildingName
string
BuildingNumber
string
UnitNumber
string
AddressLine1
string
AddressLine2
string
StreetType
string
District
string
PostTown
string
County
string
StateProvinceCode
string
PostCode
string
Country
string
CountryCode
stringISO Alpha-3 country code.
FuzzyAddressString
stringA full address with components separated by commas or spaces.
PTC_ABS_Code
stringUsed to uniquely identity an address within Equifax.
FirstYearAtAddress
string
LastYearAtAddress
string
AbodeNumber
string
ResidentFrom
string
ResidentTo
string
PostCodeOrPinCode
string
} ]
IdentityDocument [ {
optimizeVerify/identity-documentAn identity document supplied for the person.
Id
string
DocumentNumber
string
DocumentType
string
} ]
Company {
optimizeVerify/company-detailsThe company being verified, where the check is on a business.
CompanyName
string
CompanyNumber
string
CompanyType
string
LegalStatus
string
}
RequestDetail {
optimizeVerify/request-tagSection reserved for client information not used for processing.
ClientTag
stringUp to 255 characters freely chosen by the client for identification.
}
AsyncCallback {
optimizeVerify/client-callbackSection reserved for providing client's endpoint for sending two different response(i.e Final Result and Hosted Session URL by the async supplier)
ResultCallback
stringUp to 255 characters freely chosen by the client for returning final result.
CheckProcessingCallback
stringUp to 255 characters freely chosen by the client for returning the hosted session url
}
}
Responses
200OK
response body:
{
}
500Internal Server Error
response body:
{
}
Report Transactions
Endpoints for submitting report mode transactions for an installation
POST/acceptor/rest/transactions/{instId}/reportReport a transaction#
description:
Processes a report mode transaction request for the given installation
stringMandatoryThe ID assigned to the transaction by PayPal. In the event of a technical issue, PayPal will require this ID for investigation purposes.
} ]
recurringAdvice
stringPossible values: STOPOnly in the response when the Cardholder has advised their bank to stop this recurring or instalment payment.
}
authData {
advancedPayments/auth-data
acquirerName
string (≤ 255 chars)The name of the acquirer. Maximum of 255 characters.
acquirer
string (write-only)
}
decision {
advancedPayments/decision-detailInformation about the results of a Fraud check.
decisionResult
stringPossible values: DEFER, BLOCK, PROCEEDThe result of the Fraud check.
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe type of transaction that was submitted to Access PaySuite Advanced Payments.
decidedType
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYThe new transaction type for the transaction following the Fraud check. For example, a transaction submitted as a Payment may be updated to an Authorisation (PreAuth) to allow manual review before the transaction is approved for settlement.
rulesTriggered [ {
advancedPayments/rule-triggeredAn array containing information about the Optimize fraud rules triggered.
name
stringThe rule name.
action
stringThe action advised by the rule.
description
stringThe rule description.
deferParameter
string
} ]
decisionReason
stringPossible values: DERIVED_BY_TRIGGERED_RULE_ACTION, DECIDED_BY_RISK_CONTROLS, RULE_ENGINE_UNAVAILABLE, UNABLE_TO_DEFER_TRANSACTION, NO_RULES_TRIGGEREDThe reason for the decision.
}
route
string (≤ 255 chars)The name of the processing engine your transaction was submitted to.
routeData {
advancedPayments/route-data
funds
string (≤ 255 chars)
paymentDescriptor
string (≤ 255 chars)
}
voidSuccessful
booleanIndicates if the transaction was voided by a Post Authorisation callback.
}
paymentMethod {
advancedPayments/payment-method-detailInformation about the Payment Method used in the request.
card {
advancedPayments/full-card-payment-detailsUse if you want to provide your Customer's card details. This section is mandatory if you are not providing a token (merchant or CardLock) or details of the Customer's default card.
booleanMandatoryIndicates if we should register your customer; false if you do not wish to register your customer, otherwise set to true, default value is true.
booleanIndicates if the Payment capture is deferred.
deferralExpires
string (date-time)
recurring
booleanIndicates if the payment was a recurring payment.
instalment
booleanIndicates if the payment was an instalment.
merchantRef
string (≤ 255 chars)Your reference for the transaction.
merchantDescription
string (≤ 255 chars)The description of the transaction provided in the request.
status
stringPossible values: SUCCESS, FAILED, PENDING, EXPIRED, CANCELLED, VOIDEDThe current state of the transaction.
type
stringPossible values: PAYMENT, PREAUTH, PAYOUT, REFUND, CAPTURE, CANCEL, REPEAT, CASH_ISSUE, CASH_PAYMENT, CASH_EXPIRE, VERIFY, PAYMENT_INITIALIZE, PAYMENT_UPDATE, PAYMENT_COMPLETE, PAYOUT_INITIALIZE, PAYOUT_UPDATE, PAYOUT_COMPLETE, RETURN, IMPORTED_PAYMENT, IMPORTED_VERIFYIndicates the type of the transaction.
amount
floatIndicates the requested amount of the transaction.
consumerSpend
floatIndicates the actual amount of the transaction. This will be zero for any type of INITIALIZE transaction, deferred transactions, and rejected transactions.
currency
string (≤ 3 chars)Indicates the currency of the transaction. Use the 3 character ISO-4217 code.
transactionTime
string (date-time)The date and time we processed the transaction in ISO-8601 format.
receivedTime
string (date-time)The date and time we received the transaction in ISO-8601 format.
commerceType
stringPossible values: ECOM, MOTO, CNPThe Commerce Type of the transaction.
channel
stringPossible values: WEB, MOBILE, SMS, RETAIL, MOTO, IVR, VIRTUAL_TERMINAL, OTHERThe Sales Channel of the transaction.
relatedTransaction {
advancedPayments/related-transactionThis field is not applicable for Payments. In case of Refunds it indicates the transaction that was refunded.
transactionId
string (≤ 255 chars)MandatoryOur ID for the transaction that was original.
merchantRef
string (≤ 255 chars)Your reference for the transaction that was original.
}
billingDescriptor
string
customerInitiated
boolean
stage
stringPossible values: INITIALIZE, THREE_D_SECURE, FRAUD_RULES, AUTHORISATION, EXTERNAL_PROCESSING, COMPLETEThe logical stage the transaction has reached.
continuousAuthorityAgreement {
advancedPayments/continuous-authority-agreementThe continuous authority agreement established with the cardholder. Required if you want to process a transaction initiating a recurring or instalment series using 3DSv2.
minFrequency
integer (int32, min 1, max 9999)ConditionalMinimum number of days expected between payments in a recurring or instalment sequence. Must be >= 1.
expiry
string (date)ConditionalDate (YYYY-MM-DD) at which recurring/instalment agreement expires, or at which it will need to be re-authenticated in order to continue. Must be in the future.
numberOfInstalments
integer (int32, min 2, max 999)ConditionalTotal number of payments in an instalment sequence - including this one, if starting with a payment. Required only for instalments; must be >= 2.
}
}
customFields {
advancedPayments/custom-field-stateInformation about the custom fields you submitted in the request.
fieldState [ {
advancedPayments/field-state
name
string (≤ 255 chars)MandatoryThe name of the custom field.
value
string (≤ 255 chars)The value of the custom field.
transient
booleanIndicates if the custom field is transient and should not be stored as part of the transaction.
} ]
}
threeDSecureInformation {
advancedPayments/three-d-secure-informationInformation about the 3D Secure status of your transaction.
status
stringPossible values: AUTHENTICATED, BYPASSED, FAILED, NOT_ENROLLED, ATTEMPTED, ENROLMENT_CHECK_FAILURE, INCOMPLETE, NOT_AVAILABLE, NOT_IMPLEMENTEDThe overall 3DS result for the transaction.
array (min 1 items, string items)MandatoryPossible values: CARDINFO, MOBILE_GUEST_PAYMENT, MOBILE_CUSTOMER_PAYMENT, MOBILE_CUSTOMER_MANAGE, PAYPAL_ONE_TOUCHThe scopes the token is granted, at least on of: MOBILE_CUSTOMER_PAYMENT, MOBILE_GUEST_PAYMENT or MOBILE_CUSTOMER_MANAGE.
installation
stringThe installation for which the token is applicable, if different to the installation used in the endpoint.
customerReference
stringUnique reference for the customer. Null for guest payments.
stringThe value that your payment page will use to initialize the CardInfo SDK. Also, the value your mobile app will submit in the HTTP header when making a direct JSON request.
expires
string (date-time)When the token expires, in ISO 8601.