Skip to main content

API Reference

You can perform different types of initial payments using our server-to-server REST API.

  • Preauthorization
  • Capture
  • Payment
  • Reversal
  • Refund
  • Inquiry

Common Parameters

Authentication Parameters

The entityId and entityType, Each merchant and institution will have its own entityId, which are included in the request message body (entityId and merchant ID can be the same).

RequiredFormatDescription
entityIdRequiredAN8[A-Z0-9]8The entity required to authorize the request. This should be the channel entity identifier. In case channel dispatching is activated then it should be the merchant entity identifier.
entityTypeRequiredAN32Entity type of the channel, possible value:MERCHANT POS PARTICIPATOR PARTICIPATOR

Payment Request Parameters

RequiredFormatDescription
card.holderOptionalA128128Holder of the credit card account
card.numberOptionalN19[0-9]19The PAN or account number of the card. If the request contains the card.token field, the card.number and other related information are not required.
card.expiryMonthConditionalN2(0[1-9]|1[0-2])The expiry month of the card.
card.expiryYearConditionalN4(19|20)([0-9]2)The expiry year of the card.
card.cvvConditionalN4[0-9]4The card security code or CVV
card.tokenConditionalAN64Globally unique identifier for the Token (TUR)
amountConditionalN10.N2[0-9]10(.[0-9]2)Indicates the amount of the payment request. The dot is used as decimal separator. The amount is the only amount value which is processing relevant. All other amount declarations like taxAmount or shipping.cost are already included. The amount field can be skipped for paymentType=CV
currencyConditionalA3[A-Z]3The currency code of the payment request's amount (ISO 4217).
paymentBrandConditionalAN32[a-zA-Z0-9_]32The brand specifies the method of payment for the request. This is optional if you want to use brand detection for credit cards, if not then it is mandatory.
paymentTypeRequiredA2The payment type for the request. You can send payment requests with one of the following types: PA Preauthorization: A stand-alone authorisation that will also trigger optional risk management and validation. A Capture (CP) with reference to the Preauthorisation (PA) will confirm the payment. DB Debit: Debits the account of the end customer and credits the merchant account. CD Credit: Credits the account of the end customer and debits the merchant account. CP Capture: Captures a preauthorized (PA) amount. CV Verification: Card verification RV Reversal: Reverses an already processed Preauthorization (PA), Debit (DB) or Credit (CD) transaction. As a consequence, the end customer will never see any booking on his statement. A Reversal is only possible until a connector specific cut-off time. Some connectors don't support Reversals. RF E-commerce Refund: Credits the account of the end customer with a reference to a prior Debit (DB) or Credit (CD) transaction. The end customer will always see two bookings on his statement. PR POS Refund: Credits the cardholder account with a reference to a prior POS Purchase transaction.
taxAmountConditionalN10.N2[0-9]10(.[0-9]2)Indicates the tax amount of the payment request. The dot is used as decimal separator.
descriptorOptionalAN127[\s\S]127Can be used to populate all or part of the Merchant Name descriptor, which often appears on the first line of the shopper's statement. The full use of this field depends on the Merchant Account configuration. NOTE: merchant.name can override any data sent in this field.
transactionSourceConditionalAN32[a-zA-Z0-9_]32Transaction Source is optional in payment request and it is mandatory in Reversal Transactions. The possible value maybe: CARDHOLDER, TOKEN,...etc.
merchantInvoiceIdOptionalAN255[\s\S]255Merchant-provided invoice number, should be unique for your transactions. This identifier is not sent onwards.
merchantMemoOptionalAN255[\s\S]255Merchant-provided additional information. The information provided is not transaction processing relevant. It will appear in reporting only.
transactionCategoryOptionalAN32[a-zA-Z0-9]32The category of the transaction, possible values are: EC - eCommerce MO - Mail order TO - Telephone order RC - Recurring IN - Installment PO - POS PM - mPOS
merchant.idMandatoryN15[0-9]15Acquirer-assigned Merchant identifier.
pos.terminalIdOptionalAN8[a-zA-Z0-9_]8Terminal Id assigned by the acquirer.
merchantTransactionIdRequiredAN32[a-zA-Z0-9]32Merchant-provided reference number, should be unique for your transactions. Some receivers require this ID. This identifier is often used for reconciliation. Each transaction requires a unique merchant transaction ID. The reversal and refund have their own merchant transaction ID, which is different from the original transaction.
validityPeriodOptionalN8Transaction will be closed automatically after the period. (Unit: millisecond)
checkoutTypeOptionalAN10[a-zA-Z0-9_]10Transaction type of checkout page transaction. possible values are: AUTHORIZE Preauthorization: A stand-alone authorisation that will also trigger optional risk management and validation. A Capture (CP) with reference to the Preauthorisation (PA) will confirm the payment. PURCHASE Debits the account of the end customer and credits the merchant account.
threeDSecure. indicatorConditionalforce/true- The indicator will be ignored if the merchant 3DS authentication is not optional. force: The transaction need go through Risk System (such as DM), although it go through Risk System successfully, but it still go through 3DS System. true: need go through 3DS System.

Payment Response Parameters

RequiredFormatDescription
id(/payments)RequiredAN32[a-zA-Z0-9]32The identifier of the payment request that can be used to reference the payment later. You get this as the field id of a payment's response.
registrationIdRequiredAN32[a-zA-Z0-9]32The identifier of the registration request that can be used to reference the registration later. You get this either as the field id of a registration's response or as the field registrationId of a payment's response (if the request contained createRegistration=true).
paymentBrandConditionalAN32[a-zA-Z0-9_] 32The payment brand of the request.
amountConditionalN10.N2[0-9]10.[0-9]2The amount of the request.
currencyConditionalA3[a-zA-Z]3The currency of the request.
descriptorConditionalAN127[\s\S]127The descriptor of the request.
result.codeRequiredAN11[0-9.]11- The unique code that indicates the result status of the request. See the result codes for more detailed information.
result.descriptionOptionalAN255[\s\S]255A textual description explaining the result.code's meaning.
result.avsResponseConditionalA1[A-Z]1Contains the AVS response returned by the acquirer. It may include one the following result: A = Address does match, zip code does not match Z = Address does not match, zip code does match N = Address and zip code do not match U = Technical or logical error. AVS cannot be applied on card or address (not UK or US issuer), issuer is not available, etc. F = Address and Postal Code Matches
result.cvvResponseConditionalA1[A-Z]1Contains the CVV response returned by the acquirer. It may include one the following result: M - CVV2 Match Indicates that the issuer was able to verify the CVV2 value provided by the merchant. N - CVV2, CVC2, Discover CID or AMEX CID do not match Indicates that the issuer was not able to verify the CVV2 value provided by the merchant. P - Not Processed Indicates that the issuer was unable to verify the CVV2 value provided by the merchant because either their verification system was not functioning, or not all of the information needed to verify the CVV2 value (such as the expiration date) was included in the request. S - CVV2, CVC2, Discover CID or AMEX CID data is not present on the card, but the issuer indicated it should be present Indicates that the issuer was unable to perform CVV2 verification, and notifies the merchant that the card should contain a CVV2 value. U - Unsupported by issuer or issuer is unable to process request Indicates that the issuer is not participating in the CVV2 service, or that the issue has not provided the card Brand with the required encryption keys needed to perform verification, or that STIP has responded with unavailable response.
result.macResponseOptionalAN02Merchant advice code from the acquirer. It may include one the following result: 01=New account information available 02=Cannot approve at this time, try again later 03=Do not try again 04=Token requirements not fulfilled for this token type 21=Payment Cancellation (Mastercard use only) 22=Merchant does not qualify for product code
resultDetailsOptionalAN2048[\s\S]2048A container for name value pair used for enriching the response with bank-specific response details. I.e. the actual parameters used within resultDetails are bank-specific. Example: resultDetails.AuthCode=123456
resultDetails. AcquirerResponseConditionalAN2048[\s\S]2048Represents the acquirer original response code retrieved from the acquirer directly.
card.binOptionalN6[\d]6The first six digits of the card.number
card.holderOptionalN6[\d]6Holder of the credit card account
card.expiryMonthOptionalN6[\d]2The expiry month of the card
card.expiryYearOptionalN4[\d]4The expiry year of the card
merchant. bankAccount.holderRequiredAN128128Holder of the merchant's bank account
merchant. bankAccount.numberConditionalAN64[a-zA-Z0-9]64The account number of the merchant's bank account. (IBAN for SEPA accounts)
merchant. bankAccount.bicConditionalAN11[a-zA-Z0-9]8[a-zA-Z0-9]11
merchant. bankAccount.countryConditionalAN2[a-zA-Z]2The country code of the merchant's bank account (ISO 3166-1).

Other The response can also contain each of the data structures listed above, such as customer and billingAddress. n/a Conditional

RequiredFormatDescription
buildNumberRequiredAN255[\s\S]255Useful for support purposes.
timestampRequireddate yyyy-MM-dd hh:mm:ssZThe timestamp the response has generated.
ndcRequiredAN69[a-zA-Z0-9-]69An internal unique identifier for the request.
additionalDataConditionalAN255[\s\S]255Additional Data from the bank acquiring system / card schemes: traceAuditNo :STAN, entryMode POS Entry Mode (01 for MOTO and 81 for E-commerce. For CP transaction, the field is same as request) conditionCode: POS condition code (00 for card present transaction, 08 means MOTO and 59 means E-commerce transaction) retrievalRefNo: Retrieval Reference number acquirerRefno: Acquirer Reference Number of the Transaction(23 digits) requestId: Unique Transaction Reference ID from CYBS

Payment

If you are fully PCI compliant, synchronous payment follow is recommended and asynchronous is also supported. In a synchronous workflow the payment data is sent directly in the server-to-server initial payment request and the payment is processed straight away.

If a customer pays with a card, a POST request is created over HTTPS to the baseUrl + resourcePath. The request should include all required information such as your authentication credentials, the type of transaction, the amount and the payment information such as card details. A payment request effectively combines a PA and capture request, automatically requesting that the funds are cleared if the authorization was successful.

resourcePath= /eastpay/v3/payments

curl http://host:port/eastpay/v3/payments \
-d "entityId=tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "amount=92.00" \
-d "currency=CNY" \
-d "paymentBrand=VISA" \
-d "paymentType=DB" \
-d "card.number=4200000000000000" \
-d "card.holder=Jane Jones" \
-d "card.expiryMonth=06" \
-d "card.expiryYear=2020" \
-d "merchantTransactionId=2020020asd30050044" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="
curl http://host:port/eastpay/v3/payments \
-d "entityId=tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "amount=50.00" \
-d "currency=CNY" \
-d "paymentBrand=VISA" \
-d "paymentType=DB" \
-d "card.token=23fg542983darr32fhsfs411isfgsr34q" \
-d "merchantTransactionId=20220201asd254211" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5Mj2345234sfg5ewgff145ad="

Once a payment is done, you will get a response from Eastpay payment Gateway.

{
"id":"8ac7a4a27706b4b401770a6d346c0ff0",
"paymentType":"DB",
"paymentBrand":"VISA",
"amount":"92.00",
"currency":"EUR",
"result":{
"code":"000.000.000",
"description":"Transaction successfully proceeded"
},
"resultDetails":{
"clearingInstituteName":"EastPay"
},
"card":{
"bin":"420000",
"last4Digits":"0000",
"holder":"Jane Jones",
"expiryMonth":"05",
"expiryYear":"2034"
},
"buildNumber":"5a76591c8e1d872b883720a8d9d82d2bc1ff8199@2020-01-15 07:59:05 +0000",
"timestamp":"2020-01-16 09:01:05.208+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_71665329ea9642e19b409bb793a9b80f"
}

Preauthorization

A Preauthorization is created by sending a POST request over HTTPS to baseUrl + resourcePath. The request should include all required information such as your authentication credentials, the type of transaction, the amount and the payment information such as card details. A capture may be sent against a successful PA to request that the funds are sent for clearing. 

resourcePath= /eastpay/v3/payments

curl http://host:port/eastpay/v3/payments \
-d "entityId= Entity1" \
-d "entityType=PARTICIPATOR" \
-d "amount=92.00" \
-d "currency=CNY" \
-d "paymentBrand=MASTER" \
-d "paymentType=PA" \
-d "card.number=5454545454545454" \
-d "card.holder=Jane Jones" \
-d "card.expiryMonth=06" \
-d "card.expiryYear=2020" \
-d "card.cvv=123" \
-d "merchantTransactionId=2020020asd30051122" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

The sample response is the following

{
"id":"8ac7a4a07706b4b301770a1ac39444bc",
"paymentType":"PA",
"paymentBrand":"",
"amount":"92.00",
"currency":"EUR",
"descriptor":"1910.4169.5658 OPP_Channel ",
"result":{
"code":"000.000.000",
"description":"Transaction successfully proceeded"
},
"resultDetails":{
"clearingInstituteName":"EastPay"
},
"card":{
"bin":"545454",
"last4Digits":"5454",
"holder":"Jane Jones",
"expiryMonth":"05",
"expiryYear":"2034"
},
"buildNumber":"5a76591c8e1d872b883720a8d9d82d2bc1ff8199@2020-01-15 07:59:05 +0000",
"timestamp":"2020-01-16 07:31:02.325+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_9e961b25b9f64108ac0e7fb3bf690e48"
}

Capture

A capture is used to request clearing for previously authorized funds. A capture request is performed against a previous preauthorization (PA) payment by referencing its payment.id. Captures can be for full or partial amounts and multiple capture requests against the same PA are allowed.

resourcePath= /eastpay/v3/payments/

curl http://host:port/eastpay/v3/payments /{id}\
-d "entityId= tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "paymentType=CP" \
-d "amount=92.00" \
-d "currency=CNY" \
-d "originalTransactionId=123123123" \
-d "merchantTransactionId= 202001160848001120000" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Response Sample:

{
"id":"8ac7a4a07706b4b301770a61d9af08bc",
"referencedId":"8ac7a4a07706b4b301770a61818707f5",
"paymentType":"CP",
"result":{
"code":"700.400.100",
"description":"cannot capture (PA value exceeded)"
},
"buildNumber":"5a76591c8e1d872b883720a8d9d82d2bc1ff8199@2020-01-15 07:59:05 +0000",
"timestamp":"2020-01-16 08:48:40.879+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_a4feddf631c74928b5d9c68d38916862"
}

Reversal

A reversal is performed against a previous payment, referencing its payment.id. A reversal can be sent against debit (DB) or preauthorization (PA) payment types.

Parameters

RequiredFormatDescription
transactionSourceOptionalAN32[a-zA-Z0-9_]32Used to indicate the type of reversal. CARDHOLDER: The reversal is initiated by cardholder. Usually it is a VOID transaction.ERROR: If the original transaction encounters a failure, this reason is used to initiate a reversal. PARTIAL: For partial reversal , please use this source type and send the reversal amount in referral request. SUSPECT: The reversal is caused by the suspected fraud TIMEOUT: The response received late of the original transaction.

resourcePath= /eastpay/v21/payments

curl http://host:port/eastpay/v3/payments \
-d "entityId= tEntity1" \
-d"entityType=PARTICIPATOR" \
-d "paymentType=RV" \
-d "originalTransactionId=123123123" \
-d "merchantTransactionId=2020020asd30051234" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Request Response

{
"id":"8ac7a4a27706b4b401770a70528d1225",
"referencedId":"8ac7a4a27706b4b401770a6d346c0ff0",
"paymentType":"RV",
"result":{
"code":"700.400.300",
"description":"cannot reverse (already refunded|reversed, invalid workflow or amount exceeded)"
},
"buildNumber":"5a76591c8e1d872b883720a8d9d82d2bc1ff8199@2020-01-15 07:59:05 +0000",
"timestamp":"2020-01-16 09:04:29.325+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_1eb84f93b76741518e2ac16d3d047983"
}

Inquiry

Transaction inquiry using merchantTransaction ID

curl -G https://host:port/eastpay/v3/query/{transaction.id} \
-d "entityId= tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "merchantTransactionId=test123" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

The Sample response is

{
"result":{
"code":"000.000.100",
"description":"successful request"
},
"buildNumber":"891f0b23df90eace0edc0f2010d685f7d60133dc@2021-01-28 11:06:16 +0000",
"timestamp":"2021-01-29 10:52:45+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_bfdfa7ca8d4049bda46d01bad02e69b0",
"id":"8ac7a4a0673bd9e40167415ff34c7c9a",
"referencedId":"8ac7a4a1673bc79501674152b57b3d11",
"paymentType":"RC",
"paymentBrand":"MC",
"amount":"100.12",
"currency":"EUR",
"merchantMemo":"",
"merchantTransactionId":"test123",
"result":{
"code":"000.000.000",
"description":"Request successfully processed"
},
"customer":{
"givenName":"Test",
"surname":"User",
"email":"nomad._1184002955_per@gmail.com"
},
"billing":{
"street1":"1 Main St 1 Main St 2",
"city":"San Jose",
"state":"CA",
"postcode":"95131",
"country":"US"
},
"customParameters":{
"INFO_matchingAlgorithm":"MANUAL_MATCH"
},
"timestamp":"2020-11-23 16:21:06.558+0000",
"virtualAccount":{
"accountId":"nomad._1184002955_per@gmail.com",
"holder":"Test User"
}
}

Refund

A refund is performed against a previous payment, referencing its payment.id by sending a POST request. A refund can be performed against Payment (DB) or captured preauthorization (PA->CP) payment types. Where supported, the amount field can be used to process a partial or full amount.

resourcePath= /eastpay/v3/payments

curl http://host:port/eastpay/v3/payments/{id}\
-d "entityId=8a8294174b7ecb28014b9699220015ca" \
-d "amount=10.00" \
-d "currency=EUR" \
-d "paymentType=RF" \
-d "originalTransactionId=123123123" \
-d "merchantTransactionId=2020020asd30050044" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Response Sample:

{
"id":"8ac7a4a07706b4b301770a782eb924c1",
"referencedId":"8ac7a49f7706aa4d01770a77b65058c8",
"paymentType":"RF",
"result":{
"code":"700.400.520",
"description":"refund needs at least one successful transaction of type (CP or DB)"
},
"buildNumber":"5a76591c8e1d872b883720a8d9d82d2bc1ff8199@2020-01-15 07:59:05 +0000",
"timestamp":"2020-01-16 09:13:04.442+0000",
"ndc":"8a8294174b7ecb28014b9699220015ca_0c8eeebd4f6940e8a246116d6bfbc1c7"
}

3D-Secure Transaction

3DS2 Information

For users who are integrating via server to server will need to prepare your front-end and back-end and send the following additional information along with the payment information :

Parameters

Field API Field name DescriptionLength/Format/Values
Accept header customer.browser. acceptHeader HTTP accept header sent from the cardholder's browser.Length: Variable, maximum 2048 characters JSON Data Type: String Value accepted: If the total length of the accept header sent by the browser exceeds 2048 characters, the 3DS Server truncates
Language customer.browser. language The cardholder's browser language.Length: Variable, 1–8 characters JSON Data Type: String
Screen height customer.browser. screenHeight This field contains the total height of the cardholder's screen in pixels.Length: Variable, 1–6 characters JSON Data Type: String
Screen width customer.browser. screenWidth This field contains the total width of the cardholder's screen in pixels.Length: Variable, 1–6 characters JSON Data Type: String
Browser timezone customer.browser. timezone This field contains the cardholder's browser local timezone.Length: 1–5 characters JSON Data Type: String Value accepted: Value is returned from the getTimezoneOffset() method.
User agent customer.browser. userAgent This field contains the exact content of the HTTP User-Agent header.Length: Variable, maximum 2048 characters JSON Data Type: String Value accepted: Note: If the total length of the User-Agent sent by the browser exceeds 2048 characters, the 3DS Server truncates the excess portion.
IP address customer.ip IP address of the cardholder's browser.Length: Variable, maximum 45 characters JSON Data Type: String Value accepted: IPv4 address is represented in the dotted decimal format of 4 sets of decimal numbers separated by dots. The decimal number in each and every set is in the range 0 to 255. Example IPv4 address: 1.12.123.255 IPv6 address is represented as eight groups of four hexadecimal digits, each group representing 16 bits (two octets. The groups are separated by colons (:). Example IPv6 address:2011:0db8:85 a3:0101:0101:8a2e:03 70:7334
Java enabled customer.browser. javaEnabled true/false - Ability of the cardholder's browser to execute Java.JSON Data Type: Boolean Values accepted: • true • false
Javascript enabled customer.browser. javascriptEnabled true/false - Ability of the cardholder's browser to execute JavaScriptJSON Data Type: Boolean Values accepted: • true • false
Screen color depth customer.browser. screenColorDepth This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images.Length: 1–2 characters JSON Data Type: String Values accepted: 1 = 1 bit • 4 = 4 bits • 8 = 8 bits • 15 = 15 bits • 16 = 16 bits • 24 = 24 bits • 32 = 32 bits • 48 = 48 bits
Authentication window size customer.browser. challengeWindow Size of the authentication iframe which will render the ACS authentication front-end to the shopper for interaction.Please send an Integer between 1-5. The integer corresponds to one the following resolutions:

Reqeust and Response

  • Send the request with 3DS information
  • Handle Method Data and Method URL if issuer returned in an immediate response (optional step) ; If the issuer
  • Receive the final response

After you sent the request with 3DS information , you will get an immediate response with Method Data and Method URL which returned by issuer. It is an optional step, but if it's returned it's important to handle it properly.

  • Request Sample:

    authentication.entityId=8ac7a49f6e4a18ae016e4b8b4c4b2146
    amount=12.00
    currency=EUR
    paymentBrand=VISA
    paymentType=PA
    merchantTransactionId=order99234
    transactionCategory=EC
    card.number=4000000000000010
    card.expiryMonth=12
    card.expiryYear=2025
    card.cvv=123
    card.holder=John Smith
    merchant.name=MerchantCo
    merchant.city=Munich
    merchant.country=DE
    merchant.mcc=5399
    customer.ip=192.168.0.1
    customer.browser.acceptHeader=text/html
    customer.browser.screenColorDepth=48
    customer.browser.javaEnabled=false
    customer.browser.language=de
    customer.browser.screenHeight=1200
    customer.browser.screenWidth=1600
    customer.browser.timezone=60
    customer.browser.challengeWindow=4
    customer.browser.userAgent=Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)
    shopperResultUrl="https://host:port/xxx"
  • Get Optional Response with Method Data and Method URL:

    {
    "id": "8ac7a4a0686138d701687eebfbc74747",
    "paymentType": "DB",
    "paymentBrand": "VISA",
    "result": {
    "code": "000.200.000",
    "description": "transaction pending"
    },
    "resultDetails": {
    "clearingInstituteName": "CI_Test"
    },
    "card": {
    "bin": "411111",
    "last4Digits": "1111",
    "holder": "Jane Jones",
    "expiryMonth": "05",
    "expiryYear": "2020"
    },
    "redirect": {
    "url": "https://host:port/v3/threeDSecure/execute",
    "parameters": [{
    "name": "name",
    "value": "value"
    }],
    },
    "buildNumber": "deebd8c9af7d84ddee98c38b7f4afcc814012b5b@2019-01-22 13:58:00 +0000",
    "timestamp": "2019-01-24 08:13:41+0000",
    "ndc": "8a8294174b7ecb28014b9699220015ca_0557df43f75643d19479440642979e00"
    }

In immediate response , Method Data and Method URL are not always returned by the issuer. If your get Method Data and Method URL, you shouldRedirect the shopper within and iframe to the redirect URL if onload event received from 1.

<form name='' action='redirect.URL' method='POST'>
<INPUT type='hidden' name='redirect.parameters[n].name' value='redirect.parameters[].value'>
</form>
<script>
window.onload = submitForm;
function submitForm() { downloadForm.submit(); }
</script>

Parameters:

RequiredFormatDescription
redirect.urlConditionalAN2048[\s\S]2048URL the shopper must be redirected to in order to proceed.
redirect. parameters[n].nameConditionalAN255[\s\S]255List of parameter names for the redirect.url. The corresponding parameter value is the same parameter number ending with .value like described in the line below.
redirect. parameters[n].valueConditionalAN255[\s\S]255The parameter values corresponding to the names as described above.
  • Get final response:

    shopperResultUrl in request will receive the final response.

    {
    "id":"8ac7a49f6e4a18ae016e4b8b4c4b2146",
    "paymentType":"PA",
    "paymentBrand":"VISA",
    "amount":"12.00",
    "currency":"EUR",
    "result":{
    "code":"000.100.112",
    "description":"Request successfully processed in 'Merchant in Connector Test Mode'"
    },
    "resultDetails":{
    "ExtendedDescription":"Approved",
    "AcquirerResponse":"00",
    },
    "card":{
    "bin":"400000",
    "last4Digits":"0044",
    "expiryMonth":"12",
    "expiryYear":"2025"
    },
    "threeDSecure":{
    "eci":"05",
    "verificationId":"MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
    "version":"2.1.0",
    "dsTransactionId":"91caca63-5c4e-4aa2-a3f1-b4d418972de8",
    "acsTransactionId":"7055d78e-eb35-46e7-8c4e-56e15092b5f5",
    },
    "buildNumber":"7810ceecdd913cd9c4807becb99b89ce68454900@2019-11-08 12:20:52 +0000",
    "timestamp":"2019-11-08 15:05:42+0000",
    "ndc":"8ac7a4c76dd857ea016dda2ea6970684_3ba4c7691f854354906b2f6c402840e7"
    }

Optional 3DS Information

Please note that in order to have a better rate of successful risk-checks during the risk based authentication, it is recommended to send as many fields as possible. This will positively affect the number of frictionless flows.

Parameters

Field name Mandatory/OptionalSource when integrating via Server-to-Server APIFormat, Length
billing.city Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: Variable, 2–45 characters Format: String with values accepted indicated below
billing.country Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: 2 characters Format: [A-Z]2
billing.street1 Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: Variable, maximum 50 characters Format: String
billing.postcode Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: Variable, maximum 50 characters Format: String
customer.email Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: Variable, maximum 128 characters Format: String
card.holder Required unless market or regional mandate restricts sending this information.Cardholder (via API)Length: Variable, maximum 128 characters Format: String
amount MandatoryPayment (via API)Length: Variable, maximum 12 characters Format: Numeric with 2 minor units after the decimal point Example: 123.00
currency MandatoryPayment (via API)Length: 3 characters Format: ISO 4217 A3 currency code
shipping.city OptionalCardholder (via API)Length: Variable, maximum 50 characters Format: String
shipping.country OptionalCardholder (via API)Length: 3 characters Format: ISO 3166-1 A2 country code
shipping.street1 OptionalCardholder (via API)Length: Variable, maximum 50 characters Format: String
shipping.street2 OptionalCardholder (via API)Length: Variable, maximum 50 characters Format: String
shipping.postcode OptionalCardholder (via API)Length: Variable, maximum 16 characters Format: String
shipping.state OptionalCardholder (via API)Length: Variable: maximum 3 characters Format: Should be the country subdivision code defined in ISO 3166-2
billing.street2 OptionalCardholder (via API)Length: Variable, maximum 50 characters Format: String
billing.state OptionalCardholder (via API)Length: Variable: maximum 3 characters Format: Should be the country subdivision code defined in ISO 3166-2
customer.phone OptionalCardholder (via API)Length: Variable: maximum 20 characters Format: +ccc-nnnnnnnn Where: + sign is optional cc - country code, maximum 3 characters "-" - mandatory character nnnnnnnnnn - phone number without the country code, maximum 15 characters
customer.workPhone OptionalCardholder (via API)Length: Variable: maximum 20 characters Format: +ccc-nnnnnnnn Where: + sign is optional cc - country code, maximum 3 characters "-" - mandatory character nnnnnnnnnn - phone number without the country code, maximum 15 characters
customer.mobile OptionalCardholder (via API)Length: Variable: maximum 20 characters Format: +ccc-nnnnnnnn Where: + sign is optional cc - country code, maximum 3 characters "-" - mandatory character nnnnnnnnnn - phone number without the country code, maximum 15 characters
customer.browser. acceptHeader MandatoryMerchant should collect and send via APILength: Variable, maximum 2048 characters Format: String
customer.browser. language MandatoryMerchant should collect and send via APILength: Variable, 1–8 characters Format: String Returned from navigator.language property.
customer.browser. screenHeight Mandatory when customer.browser. javascriptEnabled = true; otherwise OptionalMerchant should collect and send via APILength: Variable, 1–6 Format: Numeric Value is returned from the screen.height property
customer.browser. screenWidth Mandatory when customer.browser. javascriptEnabled = true; otherwise OptionalMerchant should collect and send via APILength: Variable, 1–6 Format: Numeric Value is returned from the screen.width property
customer.browser. timezone Mandatory when customer.browser. javascriptEnabled = true; otherwise OptionalMerchant should collect and send via APILength: Variable, 1–5 characters Format: Numeric Value is returned from the getTimezoneOffset() method.
customer.browser. userAgent MandatoryMerchant should collect and send via APILength: Variable, maximum 2048 characters Format: String
customer.ip OptionalMerchant should collect and send via APILength: Variable, maximum 45 characters Format: IPv4 address Example: 1.12.123.255
customer.browser. javaEnabled 3DS 2.1 : Mandatory 3DS 2.2: Mandatory when customer.browser. javascriptEnabled = true; otherwise OptionalMerchant should collect and send via APIValues accepted: • true • false Value is returned from the navigator.javaEnabled property.
customer.browser. javascriptEnabled MandatoryMerchant should collect and send via APIValues accepted: • true • false
customer.browser. screenColorDepth 3DS 2.1 : Mandatory 3DS 2.2: Mandatory when customer.browser. javascriptEnabled = true; otherwise OptionalMerchant should collect and send via APILength: 1–2 characters Format: String Values accepted: • 1 = 1 bit • 4 = 4 bits • 8 = 8 bits • 15 = 15 bits • 16 = 16 bits • 24 = 24 bits • 32 = 32 bits • 48 = 48 bits
customer.browser. challengeWindow OptionalMerchant should collect and send via APILength: 2 characters Values accepted: • 01 = 250 x 400 • 02 = 390 x 400 • 03 = 500 x 600 • 04 = 600 x 400 • 05 = Full screen
threeDSecure.amount OptionalSent via the APILength: Variable, maximum 12 characters Format: Numeric with 2 minor units after the decimal point Example: 123.00
threeDSecure.currency OptionalSent via the APILength: 3 characters Format: ISO 4217 A3 currency code

Authentication Amount and Currency

In some cases the amount and/or currency that is used in the authentication can be different from the one that will be used in the payment later. For example the payment amount might not be known at the time of the authentication, or the merchant would like to authenticate the shopper for the full amount when the payment will be done in multiple installments.

If the authentication amount and the payment amount are different, then the authentication amount and currency can be sent in a separate fields:

feilddesc
threeDSecure.amountAmount for which the shopper will be authenticated for.
threeDSecure.currencyCurrency for which the shopper will be authenticated for.

Please note that payment amount and currency are still mandatory fields for any payment request. If there are no authentication amount and currency defined then the shopper will be authenticated with the payment amount and currency.

Optional Setting

Challenge Indicator

Merchants have the possibility to set the preference of a transaction being challenged or not. This really is only a preference, and won't guarantee that the issuer will or will not request a challenge from the cardholder. It is up to the issuer if they consider the merchant's preference, and if they include it when they assess the risk of the transaction.

For example when a card is being stored for later use (e.g. for One click checkout), a challenge may be requested by the merchant. In another example, there might be some regional mandates that certain transactions have to be challenged and the merchant should ask for a mandated challenge.

Send the field threeDSecure.challengeIndicator with one of the following values:

Value Challenge Preference Description

ValueChallenge PreferenceDescription
01 No preferenceThe merchant has no preference, and fully trust the issuer to ask a challenge from the cardholder.
02 No challenge requestedThe merchant prefers that the cardholder is not authenticated by the issuer, and only the frictionless flow applies
03 Challenge requested: 3D Secure Requestor PreferenceThe merchant prefers that the cardholder is authenticated by the issuer.
04 Challenge requested: MandateThe cardholder authentication is mandated (e.g. by regional mandates)

The field threeDSecure.challengeIndicator is optional. If not sent, the value "01 - No preference" applies by default.

Cardholder history with merchant

The following fields are not mandatory, but it is strongly recommended to send them. They are affecting the accuracy of the issuer's risk check, and will result in more frictionless flows.

Parameters

customParameters[ReqAuthMethod]

  • Method used by the Cardholder to authenticate to the 3D Secure Requestor. Contains optional information about how the cardholder authenticated during login to their 3D Secure Requestor account. Possible values are:
    • 01 No authentication occurred (i.e. cardholder "logged in" as guest)
    • 02 Login to the cardholder account at the merchant system using cardholder's own credentials
    • 03 Login to the cardholder account at the merchant system using federated ID
    • 04 Login to the cardholder account at the merchant system using issuer credentials
    • 05 Login to the cardholder account at the merchant system using third-party authentication
    • 06 Login to the cardholder account at the merchant system using FIDO Authenticator

customParameters[ReqAuthTimestamp]

  • Date and time in UTC of the cardholder authentication. Accepted date format is YYYYMMDDHHMM. Part of the 3D Secure Requestor Authentication Information which contains optional information about how the cardholder authenticated during login to their account.

customParameters[PriorAuthMethod]

  • Mechanism used by the Cardholder to previously authenticate to the 3D Secure Requestor. Contains information about a 3D Secure cardholder authentication that occurred prior to the current transaction. Possible values are:
    • 01 Frictionless authentication occurred by ACS
    • 02 Cardholder challenge occurred by ACS
    • 03 ACS verified
    • 04 Other issuer methods

customParameters[PriorAuthTimestamp]

  • Date and time in UTC of the prior cardholder authentication. Accepted date format is YYYYMMDDHHMM. Contains information about a 3D Secure cardholder authentication that occurred prior to the current transaction.

customParameters[PriorReference]

  • This data element provides additional information to the ACS to determine the best approach for handling a request. It contains an ACS Transaction ID for a prior authenticated transaction (for example, the first recurring transaction that was authenticated with the cardholder).
  • Contains information about a 3D Secure cardholder authentication that occurred prior to the current transaction.

customParameters[AccountId]

  • Additional information about the account optionally provided by the 3D Secure Requestor in AReq messages.

customParameters[AccountAgeIndicator]

  • Length of time that the cardholder has had the account with the 3D Secure Requestor. Possible values are:
    • 01 No account (guest check-out)
    • 02 Created during this transaction
    • 03 Less than 30 days
    • 04 30-60 days
    • 05 More than 60 days

customParameters[AccountChangeDate]

  • Date that the cardholder's account with the 3D Secure Requestor was last changed. Accepted date format is YYYYMMDD.

customParameters[AccountChangeIndicator]

  • Length of time since the cardholder's account information with the 3D Secure Requestor was last changed. Possible values are:
    • 01 Created during this transaction
    • 02 Less than 30 days
    • 03 30-60 days
    • 04 More than 60 days

customParameters[AccountDate]

  • Date that the cardholder opened the account with the 3D Secure Requestor. Accepted date format is YYYYMMDD.

customParameters[AccountPasswordChangeDate]

  • Date that cardholder's account with the 3D Secure Requestor had a password change or account reset. Accepted date format is YYYYMMDD.

customParameters[AccountPasswordChangeIndicator]

  • Indicates the length of time since the cardholder's account with the 3D Secure Requestor had a password change or account reset. Possible values are:
    • 01 No account (guest check-out)
    • 02 Created during this transaction
    • 03 Less than 30 days
    • 04 30-60 days
    • 05 More than 60 days

customParameters[AccountPurchaseCount]

  • Number of purchases with this cardholder account during the previous six months.

customParameters[AccountProvisioningAttempts]

  • Number of Add Card attempts for the account in the last 24 hours.

customParameters[AccountDayTransactions]

  • Number of transactions (successful and abandoned) for this cardholder account with the 3D Secure Requestor across all ayment accounts in the previous 24 hours.

customParameters[AccountYearTransactions]

  • Number of transactions (successful and abandoned) for this cardholder account with the 3D Secure Requestor across all payment accounts in the previous year.

customParameters[PaymentAccountAge]

  • Date that the payment account was enrolled in the cardholder's account with the 3D Secure Requestor. Accepted date format is YYYYMMDD.

customParameters[PaymentAccountAgeIndicator]

  • Indicates the length of time that the payment account was enrolled in the cardholder's account with the 3D Secure Requestor. Possible values are:
    • 01 No account (guest check-out)
    • 02 Created during this transaction
    • 03 Less than 30 days
    • 04 30-60 days
    • 05 More than 60 days

customParameters[ShipAddressUsageDate]

  • Date when the shipping address used for this transaction was first used with the 3D Secure Requestor. Accepted date format is YYYYMMDD.

customParameters[ShipAddressUsageIndicator]

  • Indicates the length of time since the shipping address used for this transaction was first used with the 3D Secure Requestor. Possible values are:
    • 01 No account (guest check-out)
    • 02 Created during this transaction
    • 03 Less than 30 days
    • 04 30-60 days
    • 05 More than 60 days

customParameters[ShipIndicator]

  • Indicates shipping method chosen for the transaction. Merchants must choose the Shipping Indicator code that most accurately describes the cardholder's specific transaction, not their general business. If one or more items are included in the sale, the Shipping Indicator code for the physical goods is used, or if all digital goods, the Shipping Indicator code that describes the most expensive item. Possible values are:
    • 01 Ship to cardholder's billing address
    • 02 Ship to another verified address on file with merchant
    • 03 Ship to address that is different than the cardholder's billing address
    • 04 "Ship to Store" / Pick-up at local store (Store address shall be populated in shipping address fields)
    • 05 Digital goods (includes online services, electronic gift cards and redemption codes)
    • 06 Travel and Event tickets, not shipped
    • 07 Other (for example, Gaming, digital services not shipped, emedia subscriptions, etc.)

customParameters[ShipNameIndicator]

  • Indicates if the Cardholder Name on the account is identical to the shipping Name used for this transaction. Possible values are:
    • 01 Account Name identical to shipping Name
    • 02 Account Name different than shipping Name

customParameters[SuspiciousAccountActivity]

  • Indicates whether the 3D Secure Requestor has experienced suspicious activity (including previous fraud) on the cardholder account. Possible values are:
    • 01 No suspicious activity has been observed
    • 02 Suspicious activity has been observed

customParameters[TransactionType]

  • Identifies the type of transaction being authenticated. Possible values are:
    • 01 Goods / Service Purchase
    • 03 Check Acceptance
    • 10 Account Funding
    • 11 Quasi-Cash Transaction
    • 28 Prepaid Activation and Load

customParameters[DeliveryTimeframe]

  • Indicates the merchandise delivery timeframe. Possible values are:
    • 01 Electronic Delivery
    • 02 Same Day Shipping
    • 03 Overnight Shipping
    • 04 Two-day or more shipping

customParameters[DeliveryEmailAddress]

  • For Electronic delivery, the email address to which the merchandise was delivered.

customParameters[ReorderItemsIndicator]

  • Indicates whether the cardholder is reordering previously purchased merchandise. Possible values are:
    • 01 First time ordered
    • 02 Reordered

customParameters[PreOrderPurchaseIndicator]

  • Indicates whether Cardholder is placing an order for merchandise with a future availability or release date. Possible values are:
    • 01 Merchandise available
    • 02 Future availability

customParameters[PreOrderDate]

  • For a pre-ordered purchase, the expected date that the merchandise will be available.
  • Date format = YYYYMMDD

customParameters[GiftCardAmount]

  • For prepaid or gift card purchase, the purchase amount total of prepaid or gift card(s) in major units (for example, USD 123.45 is 123).

customParameters[GiftCardCurrency]

  • For prepaid or gift card purchase, ISO 4217 three-digit currency code of the gift card.

customParameters[GiftCardCount]

  • For prepaid or gift card purchase, total count of individual prepaid or gift cards/codes purchased.

Submit a Pre-Authenticated Payment Request

If you have used an external 3DS MPI to authenticate the payer, then you must pass information about the authentication in payment request. Please set threeDSeucre.indicator=third. And if 3DS authentication fails, below information is not available. It is recommended not to send this group of information with failed authentication.

Parameters

RequiredFormatDescription
threeDSecure. indicatorAN2048The indicator will be ignored if the merchant 3DS authentication is not optional. force: The transaction need go through Risk System (such as DM), although it go through Risk System successfully, but it still go through 3DS System. true: need go through 3DS System. third: If you will provide pre-authenticated information Mandatory
threeDSecure. authenticationStatusMandatoryAN(1)Indicates the result of payer authentication with the issuer.
threeDSecure.eciMandatoryN2The Electronic Commerce Indicator that is returned to you in the authentication response message.
threeDSecure. verificationIdMandatoryThe base64 encoded value generated by the card issuer that is returned to you in the authentication response message
threeDSecure. dsTransactionIdMandatoryA unique transaction identifier generated for the 3DS authentication. This field corresponds to the identifier assigned by the scheme directory server.

Optional Information

Risk Screening Indicator

Request parameters

RequiredFormatDescription
risk.indOptionalAN1Risk Indicator
risk.systemIDConditionalAN32[\s\S] 32- Risk System ID : CYBSDMACIRSINTERNAL

Response parameters

RequiredFormatDescription
risk.scoreOptionalAN32Risk Score from Risk system
risk.decisionConditionalAN32[\s\S] 32Decision from Risk system: DECLINEACCEPTCHALLENGE

Customer Information

The customer data structure holds information about the customer/shopper such as their name, identification documents and contact details. The customer fields serve mixed purposes: On the one hand they are just for you to store information on your customers, but on the other hand they are also used and sometimes required for risk management and payment providers that require ID/mandate information.

Parameters

RequiredFormatDescription
customer. merchantCustomerIdConditionalAN100[\s\S]100An identifier for this customer. Typically this is the ID that identifies the shopper in the shop's system.
customer.givenNameConditionalAN48[\s\S]48The first name or given name of the customer. Required if you send in any other customer parameters, also required for some risk checks and payment providers. Will be truncated after 48 characters
customer.middleNameOptionalAN48[\s\S]48The middle name of the customer.
customer.surnameConditionalAN[\s\S]48The last name or surname of the customer. Required if you send in any other customer parameters, also required for some risk checks and payment providers. Will be truncated after 48 characters
customer.sexOptionalM|FSex of the shopper, 'M' for male or 'F' for female A1
customer.birthDateConditionalAN10 {19|20)([0-9]2)-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]}The birth day of the customer in the format yyyy-MM-dd, e.g. 1970-02-17
customer.phoneOptionalAN15[+0-9][0-9 .()/-]25The customer's phone number. Required for some risk checks.
customer.mobileOptionalAN25[+0-9][0-9 .()/-]25The customer's mobile number. Required for some risk checks.
customer.workPhoneOptionalAN25[\s\S]25The customer's phone number. Required for some risk checks.
customer.emailOptionalAN128[\s\S]128The customer's email address. Required for some risk checks and transmission of direct debit mandates.
customer.companyNameOptionalAN60[\s\S]60The customer's company name.
customer. identificationDocTypeConditionalA12[\s\S]The type of identification document for the customer. Can be one of these three values: IDCARD, PASSPORT, TAXSTATEMENT. If this parameter is sent then customer.identificationDocId must be also sent. It is also mandatory for certain payment types (e.g. Boleto).
customer. identificationDocIdConditionalAN64[\s\S]64The identifier of the identification document for the customer. If this parameter is sent then customer.identificationDocType must also be sent. It is also mandatory for certain payment types (e.g. Boleto).
customer.ipOptionalAN255[\s\S]255The customer's IP address.
customer. browserFingerprint.idOptional[\s\S]255The reference to the fingerprint of the shopper's browser, in most cases provided by some JavaScript library.
customer. browserFingerprint.valueOptional[\s\S]4096The actual fingerprint value of the shopper's browser
customer.browser. acceptHeaderConditional[\s\S]2048Exact content of the HTTP accept headers as sent to the 3DS Requestor from the Cardholder’s browser. Mandatory for 3DS v2.
customer.browser. languageConditional[\s\S]8Value representing the browser language as defined in IETF BCP47. Returned from navigator.language property. Mandatory for 3DS v2.
customer.browser. screenHeightConditional[\s\S]6Total height of the Cardholder’s screen in pixels. Value is returned from the screen.height property. Mandatory for 3DS v2.
customer.browser. screenWidthConditional[\s\S]6Total width of the Cardholder’s screen in pixels. Value is returned from the screen.width property. Mandatory for 3DS v2.
customer.browser. timezoneConditional[\s\S]5Time-zone offset in minutes between UTC and the Cardholder browser local time. Note that the offset is positive if the local time zone is behind UTC and negative if it is ahead Mandatory for 3DS v2.
customer.browser. userAgentConditional[\s\S]2048Exact content of the HTTP user-agent header. Mandatory for 3DS v2.
customer.browser. javaEnabledConditionaltrue/falseBoolean that represents the ability of the cardholder browser to execute Java. Value is returned from the navigator.javaEnabled property. Mandatory for 3DS v2.
customer.browser. screenColorDepthOptionalN2[0-9]2Value representing the bit depth of the colour palette for displaying images, in bits per pixel. Obtained from Cardholder browser using the screen.colorDepth property.
customer.browser. challengeWindowOptionalN2Dimensions of the challenge window that has been displayed to the Cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the Cardholder browser window.
customer.browser. deviceIdOptionalAN32[\s\S]32Value representing the customer browser device id.
customer.statusOptionalA9[\s\S]255A status of the customer. Currently two options- NEW, EXISTING.

Shipping Customer

The shipping customer has the same fields than the billing customer, just as part of the shipping entity. That way you can ship to an entirely different customer.

Parameters

RequiredFormatDescription
shipping.customer.*OptionalAll the fields that are available under customer except shipping.customer.browserFingerprint.* and shipping.customer.browser.deviceId Same as for customer fields

Billing Address

The billing address holds the address of the customer. Information sent in the billing address data structure can optionally be used for risk checks such as AVS for card processing.

It is recommended to send ASCII characters for address information.

EastPay accepts and stores non-ASCII characters correctly and displays them correctly in reports, but non-ASCII may affect address verification results.

Parameters

RequiredFormatDescription
billing.street1ConditionalAN100[\s\S]100The door number, floor, building number, building name, and/or street name of the billing address Mandatory for 3D Secure v2.
billing.street2ConditionalAN100[\s\S]100The adjoining road or locality (if required) of the billing address The combination of billing.street1 and billing.street2 can't contain numbers only, it should also include characters.
billing. houseNumber1OptionalAN100[\s\S]100Primary house number (door number or building number) of the billing address. If present, then billing.street1 is assumed to contain only the name of the street. Also, billing.street2 will be ignored.
billing. houseNumber2OptionalAN100[\s\S]100Secondary house number (floor, building name) of the billing address. Used when more addresses are bundled to a same primary house number. If present, billing.houseNumber1 is also mandatory.
billing.cityConditionalAN48[\s\S]48The town, district or city of the billing address Mandatory for 3D Secure v2.
billing.stateConditionalAN10[a-zA-Z0-9.]10The county, state or region of the billing address
billing.postcodeConditionalAN10[A-Za-z0-9]10The postal code or zip code of the billing address Mandatory for 3D Secure v2.
billing.countryConditionalA2[A-Z]2The country of the billing address (ISO 3166-1) Mandatory for 3D Secure v2.
billing.normalizedOptionalAN255[\s\S]255The normalized shipping address.
billing. validationStatusOptionalAN255[\s\S]255Indicates whether a address got validated and normalized address got confirmed by the consumer

Shipping Address

The shipping address holds the location and recipient of ordered goods. This can be used for risk processing or logistics.

Parameters

RequiredFormatDescription
shipping.street1ConditionalAN100[\s\S]100The door number, floor, building number, building name, and/or street name of the shipping address
shipping.street2ConditionalAN100[\s\S]100The adjoining road or locality (if required) of the shipping address
shipping. houseNumber1OptionalAN100[\s\S]100Primary house number (door number or building number) of the shipping address. If present, then shipping.street1 is assumed to contain only the name of the street. Also, shipping.street2 will be ignored.
shipping. houseNumber2OptionalAN100[\s\S]100Secondary house number of the shipping address (floor, building name). Used when more addresses are bundled to a same primary house number. If present, shipping.houseNumber1 is also mandatory.
shipping.cityConditionalAN50[a-zA-Z]50The town, district or city of the shipping address
shipping.stateConditionalAN10[a-zA-Z0-9.]10The county, state or region of the shipping address
shipping.postcodeConditionalAN10[A-Za-z0-9]10The postal code or zip code of the shipping address
shipping.countryConditionalA2[A-Z]2The country of the shipping address (ISO 3166-1)
shipping. destinationTypeOptionalAN20[A-Za-z0-9]20Shipping destination of item. Example: Commercial, Residential, Store
shipping. destinationCodeIndicates destination chosen for the transaction. Possible values: 01- Ship to cardholder billing address 02- Ship to another verified address on file with merchant 03- Ship to address that is different than billing address 04- Ship to store (store address should be populated on request) 05- Digital goods 06- Travel and event tickets, not shipped 07- Other AN2 Optional
shipping.methodConditionalAN30[a-z_]30
shipping.costConditionalN13[0-9]10.[0-9]2Total hipping cost
shipping.commentConditionalAN160[\s\S]160A comment for the shipping
shipping. expectedDateOptionalAN10{19|20)([0-9]2)-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]}The expected delivery date
shipping. logisticsProviderOptionalAN255[\s\S]255The logistics provider of the shipping
shipping. trackingNumberOptionalAN255[\s\S]255The tracking number of the shipping
shipping. returnTrackingNumberOptionalAN255[\s\S]255The tracking number issued for returns
shipping. normalizedOptionalAN255[\s\S]255The normalized shipping address.
shipping. validationStatusOptionalAN255[\s\S]255Indicates whether a address got validated and normalized address got confirmed by the consumer
shipping. warehouseOptionalAN100[\s\S]100The warehouse that fulfilled the order
shipping. preferenceOptionalAN21 GET_FROM_FILE NO_SHIPPING SET_PROVIDED_ADDRESSIndicates the shipping preference. Possible values: GET_FROM_FILE | use the shipping address provided by customer at acquirer hosted pages. NO_SHIPPING | no shipping is expected for the purchase. Preferred option for digital goods. SET_PROVIDED_ADDRESS use the merchant provided address. The customer can't change this address on the acquirer hosted pages. Default value: GET_FROM_FILE

Merchant

The merchant data structure can be used to override the information that is shown on the cardholder statement. It can also be used for payment facilitators.

Parameters

RequiredFormatDescription
merchant.nameMandatoryAN100[\s\S]100The registration name of the merchant.
merchant.businessMandatoryAN22[\s\S]22The name of the merchant. It will normally make up the first line of the card holder statement.
merchant.websiteOptionalAN100[\s\S]100This normally makes up the second line of the card holder statement.
merchant.streetMandatoryAN100[\s\S]100The door number, floor, building number, building name, and/or street name of the merchant
merchant.postcodeMandatoryAN10[A-Za-z0-9-]10The postal code or zip code of the merchant
merchant.cityMandatoryAN50[a-zA-Z0-9]50The city of the merchant
merchant.stateMandatoryAN50[a-zA-Z0-9]50The county, state or region of the merchant
merchant.countryMandatoryA2[A-Za-z]2The country of the merchant
merchant.phoneOptionalAN25[a-zA-Z0-9+-.]25The merchant's phone number.
merchant.mmccMandatoryAN4[0-9]4The merchant's category code (Mastercard).
merchant.vmccMandatoryAN4[0-9]4The merchant's category code (Visa).
merchant.pfIdOptionalAN11[\s\S]11The Payment Facilitators if of the merchant
merchant.isoIdOptionalAN8[\s\S]11The Independent Sales Organization of the merchant
merchant.submerchantIdOptionalAN15[\s\S]100The id of the sub-merchant of the payment facilitator.

Card on File

Following are all the parameters needed for sending card on file transactions.

Parameters

RequiredFormatDescription
standingInstruction. typeOptionalUNSCHEDULED , INSTALLMENT,RECURRING
standingInstruction. modeOptionalINITIAL ,REPEATEDIndicating the mode of subsequent payment transaction. INITIAL: The payment is the first of a series of payments. This first payment must contain additional data like the CVV code or 3D parameters to enable an initial authentication of the request. REPEATED: The payment is a subsequent payment. It may not contain shopper authentication data like the CVV code or 3D parameters - the shopper is not present anymore.
standingInstruction. sourceConditionalANIndicating the type of subsequent payment transaction. CIT: Cardholder initiated transaction. MIT: Merchant initiated transaction.
standingInstruction. initialTransactionIdOptional(No specific format-Depends on acquirer)The value/ID is received as part of the acquirer response of a CIT flagged transaction. The ID is received in OPP response field: standingInstruction.initialTransactionId. The ID must be included in all following MIT flagged transaction. AN or N
standingInstruction. industryPracticeOptionalINCREMENTAL_AUTH, RESUBMISSION, REAUTHORIZATION, DELAYED_CHARGES ,NO_SHOWThe MIT types defined under this category are performed to fulfill a business practice as a follow-up to an original cardholder-merchant interaction that could not be completed with one single transaction. INCREMENTAL_AUTH: Incremental authorizations can be used to increase the total amount authorized. Incremental authorizations do not replace the original authorization — they are additional to previously authorized amounts — the sum of all linked estimated and incremental authorizations represent the total amount on hold in the cardholder’s account for a given transaction. RESUBMISSION: When a merchant attempts to authorize a transaction after the service has been used but the issuer declines it for insufficient funds, they may attempt to re-authorize to recover the debt. These authorization requests are considered resubmission authorizations and must carry the new "re submission" indicator. REAUTHORIZATION: Re-authorization occurs when a merchant has a need to submit an authorization request after the cardholder has left the point of interaction and there is no possibility of re-authenticating the card or the cardholder. A merchant may need to do this if they intend to split the shipment into multiple deliveries and will only authorize as goods come into stock. If the need to re-authorize occurs, the subsequent authorization requests carry the new "re-authorization" marker and the scheme reference data from the initial interaction. DELAYED_CHARGES and NO_SHOW: Such transactions occur largely in the rental and hospitality sectors. These transactions also carry the scheme reference data provided in the initial authorization at the start of the rental or stay agreement as well as in the settlement record.
standingInstruction. expiryConditional / Mandatory when processing 3D Secure on recurring /installment.yyyy-MM-ddRecurring Expiry: Date after which no further authorizations shall be performed. Recurring transaction. Installment transaction.
standingInstruction. frequencyConditional / Mandatory when processing 3D Secure on recurring /installment.N4Recurring Frequency: Indicates the minimum number of days between authorisations. Recurring transaction. Installment transaction. Integer value indicating the minimum number of days between recurring authorizations. A frequencyof monthly is indicated by the value 28. Multiple of 28 days will be used to indicate months. Example: 6 months = 168, Example values accepted (31 days): 31, 031, 0031. Note This field is required for recurring transactions
standingInstruction. numberOfInstallmentsConditinoalN3Installment Payment Data: Indicates the maximum number of authorisations permitted for installment payments.

Order Information

Contains detailed order-level information.

Parameters

RequiredFormatDescription
order.totalAmountConditionalN10.N2[0-9]10(.[0-9]2)?Grand total for the order. You can include a decimal point (.), but no other special characters.
order.currencyConditionalAN3[\s\S]3Currency used for the order
order.preOrderOptionalAN30[\s\S]30Indicates whether cardholder is placing an order with a future availability or release date. This field can contain one of these values:MERCHANDISE_AVAILABLE: Merchandise available FUTURE_AVAILABILITY: Future availability
order.preOrderDateAN8[\s\S]8OptionalExpected date that a pre-ordered purchase will be available. Format: YYYYMMDD
order.reorderedOptionaltrue/falseIndicates whether the cardholder is reordering previously purchased merchandise. This field can contain one of these values: false: First time ordered true: Reordered
order.giftWrapOptionaltrue/falseBoolean that indicates whether the customer requested gift wrapping for this purchase. This field can contain one of the following values: true: The customer requested gift wrapping. false: The customer did not request gift wrapping.
order.returnAcceptedOptionaltrue/falseBoolean that indicates whether returns are accepted for this order. This field can contain one of the following values: true: Returns are accepted for this order.- false: Returns are not accepted for this order.
order.totalOffersCountOptionalAN3[\s\S]8Total number of articles/items in the order as a numeric decimal count. Possible values: 00 - 99

Airline

The airline data structure holds passenger and trip leg airline information.

The airline passenger and leg items are counted up by changing the index-number [n], starting with 0.

Parameters

RequiredFormatDescription
airline. actualFinalDesitinationOptionalAN10[\s\S]10IATA Code for the actual final destination that the customer intends to travel to. It should be a destination on the completeRoute.
airline. completeRouteOptionalAN255[\s\S]255Concatenation of individual travel legs in the format ORIG1-DEST1[:ORIG2-DEST2...:ORIGn-DESTn], for example, SFO-JFK:JFK-LHR:LHR-CDG. For airport codes, see the IATA Airline and Airport Code Search. Note In your request, send either the complete route or the individual legs (_leg#_orig and _leg#_dest). If you send all the fields, the value of _complete_route takes precedence over that of the _leg# fields.
airline.depatureTimeOptional[\s\S]30Departure date and time of the first leg of the trip. Use one of the following formats: yyyy-MM-dd HH:mm z, yyyy-MM-dd hh:mm a z, yyyy-MM-dd hh:mma z, HH = hour in 24-hour format, hh = hour in 12-hour format, a = am or pm (case insensitive), z = time zone of the departing flight, for example: If the airline is based in city A, but the flight departs from city B, z is the time zone of city B at the time of departure. Important For travel information, use GMT instead of UTC, or use the local time zone. Examples: 2011-03-20 11:30 PM PDT, 2011-03-20 11:30pm GMT, 2011-03-20 11:30pm GMT-05:00 AN30
airline.journeyTypeOptionalAN30[\s\S]30Type of travel, for example one way or round trip.
airline.totalTaxAmountConditionalN10.N2[0-9]10.[0-9]2The total amount of tax
airline.totalFeesAmountConditionalN10.N2[0-9]10.[0-9]2The total fees
airline.totalFareAmountConditionalN10.N2[0-9]10.[0-9]2The total fare
airline.ticketIssueDateConditionalAN10{19|20)([0-9]2)-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]}The date the booking/ticket was made
airline. ticketIssueAddressConditionalAN255[\s\S]255The address that issued the ticket
airline. thirdPartyBookingConditionalAN255[\s\S]255Indicates if the ticket was booked via a third party
airline. bookingTypeConditionalAN255[\s\S]255The type of booking
airline. ticketDeliveryMethodConditionalAN255[\s\S]255The delivery method of the ticket
airline. bookingRefNumConditionalAN255[\s\S]255The booking reference number
airline.agentNameConditionalAN255[\s\S]255The agent name
airline.agentCodeConditionalAN255[\s\S]255The agent code
airline.passengers[n]. typeConditionalAN3[\s\S]3The passenger type ADT: Adult,CNN: Child, INF: Infant, YTH: Youth, STU: Student,SCR: Senior Citizen, MIL: Military
airline.passengers[n]. givenNameConditionalAN48[\s\S]48The given name of the passenger
airline.passengers[n]. surnameConditionalAN48[\s\S]48The given name of the passenger
airline.passengers[n]. nationalityConditionalAN2Passenger's nationality country(Country code).
airline.passengers[n]. ticketRestrictedConditionalAN255[\s\S]255Indicates if the passenger has a restricted ticket
airline.passengers[n]. ticketNumberConditionalAN255[\s\S]255The passenger's ticket number
airline.passengers[n]. statusConditionalAN25[\s\S]25Your company's passenger classification, such as with a frequent flyer program. Standard, GoldPlatinum
airline.passengers[n]. phoneConditionalAN255[\s\S]255The passenger's phone
airline.passengers[n]. frequentFlyerNumberConditionalAN255[\s\S]255The passenger's frequent flyer number
airline.passengers[n]. emailConditionalAN255[\s\S]255The passenger's email
airline.passengers[n]. dobConditionalAN255[\s\S]255The passenger's date of birth
airline.passengers[n]. checkDigitConditionalAN255[\s\S]255The check digit for the passenger
airline.passengers[n]. legs[n].ticketNumberConditionalAN255[\s\S]255The ticket number for the leg
airline.passengers[n]. legs[n].taxAmountConditionalN10.N2[0-9]10.[0-9]2The tax amount for the leg
airline.passengers[n]. legs[n].stopOverAllowedConditionalAN255[\s\S]255Indicates if a stop over is allowed
airline.passengers[n]. legs[n].restrictionsConditionalAN255[\s\S]255Indicates if there is restrictions for the leg
airline.passengers[n]. legs[n].flightNumberConditionalAN255[\s\S]255The flight number for the leg
airline.passengers[n]. legs[n].feesAmountConditionalN10.N2[0-9]10.[0-9]2The fees for the leg
airline.passengers[n]. legs[n].fareBasisConditionalAN255[\s\S]255The fare basis for the leg
airline.passengers[n]. legs[n].fareAmountConditionalN10.N2[0-9]10.[0-9]2The fare amount for the leg
airline.passengers[n]. legs[n].exchangeTicketNumConditionalAN255[\s\S]255The exchange ticket number for the leg
airline.passengers[n]. legs[n].departureTaxAmountConditionalN10.N2[0-9]10.[0-9]2The departure tax amount for the leg
airline.passengers[n]. legs[n].departureCountryConditionalAN255[\s\S]255The departure country for the passenger
airline.passengers[n]. legs[n].departureAirportConditionalAN255[\s\S]255The departure airport for the passenger
airline.passengers[n]. legs[n].airlineNameConditionalAN255[\s\S]255The name of the airline for the leg
airline.passengers[n]. legs[n].airlineCodeConditionalAN255[\s\S]255The code of the airline for the leg
airline.passengers[n]. legs[n].departureTimeConditionalAN255[\s\S]255The departure time for the leg
airline.passengers[n]. legs[n].departureDateConditionalAN10{19|20)([0-9]2)-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]}The departure date for the leg
airline.passengers[n]. legs[n].arrivalCountryConditionalAN255[\s\S]255The destination country for the leg
airline.passengers[n]. legs[n].arrivalAirportConditionalAN255[\s\S]255The destination airport for the leg
airline.passengers[n]. legs[n].arrivalTime TheConditionalAN255[\s\S]255arrival time for the leg
airline.passengers[n]. legs[n].arrivalDateConditionalAN10{19|20)([0-9]2)-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]}The arrival date for the leg
airline.passengers[n]. legs[n].couponNumberConditionalAN255[\s\S]255The coupon number for the leg
airline.passengers[n]. legs[n].classOfServiceConditionalAN255[\s\S]255The class of service for the leg
airline.passengers[n]. legs[n].carrierCodeConditionalAN255[\s\S]255The carrier code for the leg
airline.passengers[n]. legs[n].timeToDepartureConditionalAN10[\s\S]10The airline time to departure, in days, for the leg

Cart

The cart data structure holds product information about the shopping cart such as the product's ID, name, quantity and price.

The cart items are counted up by changing the index-number [n], starting with 0, and maximum 1000. Example: cart.items[0].name=First Cart Item

Parameters

RequiredFormatDescription
cart.items[n]. nameConditionalAN255[\s\S]255The name of the item in the shopping cart. Example:cart.items[0].name=First Cart Item
cart.items[n]. merchantItemIdConditionalAN255[\s\S]255The unique identifier of the item in the shopping cart.
cart.items[n]. quantityConditionalN5[0-9]12(\.[0-9]3)The number of items in the shopping cart.
cart.items[n]. typeConditionalAN255[\s\S]255The type of the purchased item in the shopping cart. Values can be: PHYSICAL, DIGITAL, MIXED, ANONYMOUS_DONATION, AUTHORITIES_PAYMENT, GIFT_CARD,HANDLING, SERVICE,SHIPPING,DEFAULT
cart.items[n]. skuOptionalAN255[\s\S]255The sku cart item.
cart.items[n]. currencyConditionalcurrency codeThe currency of the price of the shopping cart.
cart.items[n]. descriptionConditionalAN2048[\s\S]2048The description of the item in the shopping cart.
cart.items[n]. priceConditionalN13[0-9]10.[0-9]2The price of the item in the shopping cart. (including tax and discount). The item's price is independent
of the quantity.
cart.items[n]. totalAmountConditionalN13[0-9]10.[0-9]2The total amount of the cart item including quantity.
cart.items[n]. taxAmountConditionalN13[0-9]10.[0-9]2The tax amount of the cart item. The item's tax amount is independent of the quantity.
cart.items[n]. totalTaxAmountConditionalN13[0-9]10.[0-9]2The total tax amount of the cart item.
cart.items[n]. taxConditionalAN6^(100(.00?)?)|([0-9]2(.[0-9]2)?)$The tax percentage applied to the price of the item in the shopping cart.
cart.items[n]. shippingConditionalN10.N2[0-9]10.[0-9]2The shipping amount applied to the item in the shopping cart.
cart.items[n]. discountConditionalN13[0-9]10.[0-9]2The discount percentage applied to the price of the item in the shopping cart.
cart.items[n]. giftMessageOptionalAN255[\s\S]255Gift Message for the specific cart item
cart.items[n]. shippingMethodOptionalAN255[\s\S]255Shipping method for the cart item.
cart.items[n]. shippingInstructionsOptionalAN255[\s\S]255Shipping instructions for the cart item.
cart.items[n]. shippingTrackingNumberOptionalAN255[\s\S]255Shipping tracking number for the cart item
cart.items[n]. originalPriceOptionalAN255[\s\S]255The cart item's price before discounts. The item's price is independent of the quantity.
cart.items[n]. quantityUnitOptionalM, CM, KG, G, COUNT (default)The cart item's unit of quanity.
cart.items[n]. productUrlOptionalValid URLThe cart item's URL.
cart.items[n]. imageUrlOptionalValid URLThe cart item's image URL.
cart.items[n]. totalDiscountAmountOptionalN10.N2[0-9]10.[0-9]2The cart item's total discount amount. The total discount amount is related to the discount percentage

Custom Parameters

Custom parameters are unspecified fields that can be used to send custom data. The data sent in these fields are echoed back in the response.

Parameters

RequiredFormatDescription
customParameters[name]ConditionalName: AN64[a-zA-Z0-9._]64 Value: AN2048[\s\S]2048A name value pair used for sending custom information. NOTE: customParameters that are sent from the client-side (e.g. for COPYandPAY) should be prepended with SHOPPER_*, for example customParameters[SHOPPER_customerId]

Risk Parameters

The following parameters are additional parameters available for risk checks e.g. using the ACI RedShield or Cybersource DM

Parameters

RequiredFormatDescription
risk.parameters[name]OptionalName: AN32[a-zA-Z0-9._]32 Value: AN255[\s\S]255A name value pair used for sending custom information related to the risk request.

Recurring Payment

You can perform recurring payments by just adding one additional parameter standingInstruction to the payment request. A recurring workflow consists of two phases:

  • The initial payment request
  • Subsequent payment requests

Sending the Initial Payment

During the initial payment, marked by the parameter standingInstruction.mode with the value INITIAL, standingInstruction.type with the value UNSCHEDULED and standingInstruction.source with the value CIT, the customer is present. Therefore this initial request should contain additional parameters that authenticate the customer like card.cvv for card payments, and also additional checks like 3D secure can be executed.

In checkout API you get this behavior out of the box, so all you have to add to the /checkouts request in step 1 this parameter:

Use Case 1 :

standingInstruction.mode=INITIAL  
standingInstruction.type=UNSCHEDULED
standingInstruction.source=CIT

Use Case 2 :

standingInstruction.mode=INITIAL  
standingInstruction.type=RECURRING
standingInstruction.source=CIT

Using the server-to-server integration, you either have the option to append the parameter standingInstruction to the initial /payments request that also stores the token like in this example:

curl https://ip:port/eastpay/v3/payments \
-d "entityId=8a8294174b7ecb28014b9699220015ca" \
-d "amount=2.00" \
-d "currency=EUR" \
-d "paymentBrand=VISA" \
-d "paymentType=DB" \
-d "card.number=4200000000000000" \
-d "card.holder=Jane Jones" \
-d "card.expiryMonth=05" \
-d "card.expiryYear=2034" \
-d "card.cvv=123" \
-d "standingInstruction.mode=INITIAL" \
-d "standingInstruction.type=UNSCHEDULED" \
-d "standingInstruction.source=CIT" \
-d "createRegistration=true" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

For some cases you might want to use an alternative approach: If the shopper just registered his data without sending a payment at the same time you would have sent his payment directly to the /registrations endpoint as described here. In the same way as described above, the standingInstruction.mode=INITIAL, standingInstruction.type=UNSCHEDULED and standingInstruction.source=CIT parameters can be added to the request to indicate that this is the first in a series of recurring payments.

Sending a Repeated Payment

Any payment request following the initial one has to have the parameter standingInstruction.mode with the value REPEATED, standingInstruction.type with the value UNSCHEDULED , standingInstruction.source with the value MIT and standingInstruction.initialTransactionId with a value as ID received in the response of the initial CIT transaction. This flag not only indicates that the request is part of a series of payments on this account, but also tells the payment system that no user is present and therefore parameters like card.cvv or the 3D authentication shouldn't be present. This fact in combination with the stored payment data of the registration greatly reduces the number of parameters of such a request:

Use Case 1 :

standingInstruction.mode=REPEATED 
standingInstruction.type=UNSCHEDULED
standingInstruction.source=MIT

Use Case 2 :

standingInstruction.mode=REPEATED 
standingInstruction.type=RECURRING
standingInstruction.initialTransactionId=123456780 Note: This value is received in original CIT transaction response
standingInstruction.source=MIT

Follow the section Card On File for possible standingInstruction parameters.

curl https://ip:port/eastpay/v3/registrations/{id}/payments \
-d "entityId=8a8294174b7ecb28014b9699220015ca" \
-d "amount=92.00" \
-d "currency=EUR" \
-d "paymentType=PA" \
-d "standingInstruction.mode=REPEATED" \
-d "standingInstruction.type=UNSCHEDULED" \
-d "standingInstruction.source=MIT" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Tokenization

Tokenization (Scheme Token) allows you to store the payment data for later use. This can be useful for recurring payment scenarios.

EastPay provides two options for storing the payment data:

Store the data during a payment: When a shopper is checking out for the first time, he has to fill in his complete payment and address data. Use this option to automatically store his data during the payment for reuse in later transactions.

createRegistration=true

Store the data as stand-alone: If your site provides shoppers with an administrative area where they can register their payment details independent of a checkout-process, this option is for you.

Create Token

Used to digitize a card to create a server-based Token.

Request Parameters

RequiredFormatDescription
card.holderOptionalA128128Holder of the credit card account
card.numberRequiredN19[0-9]19The PAN or account number of the card.
card.expiryMonthRequiredN2(0[1-9]|1[0-2])The expiry month of the card.
card.expiryYearRequiredN4(1920)([0-9]2)
card.cvvConditionalN4[0-9]4The card security code or CVV
token.BrandConditionalAN32[a-zA-Z0-9_]32The brand specifies the method of token for the request. This is optional if you want to use brand detection for credit cards, if not then it is mandatory.
token.TypeRequiredA2You can send payment requests with one of the following types: CT: create token DT: delete a token GT: get token information GA: get assets
merchant.idMandatoryN15[0-9]15Acquirer-assigned Merchant identifier.

Sample:

curl http://host:port/eastpay/v3/tokenize\
-d "entityId= tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "merchant.Id=123456789012"\
-d "paymentBrand=MASTER" \
-d "paymentType=CT" \
-d "card.number=5454545454545454" \
-d "card.expiryMonth=06" \
-d "card.expiryYear=2020" \
-d "card.cvv=123" \
-d "merchantTransactionId=202110103134154562355234" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Response Parameters

RequiredFormatDescription
decisionMandatoryA6464The tokenization decision for this digitization request. APPROVED (Digitization request was approved) DECLINED (Digitization request was declined) REQUIRE_ADDITIONAL_AUTHENTICATION Digitization request was approved but optionally requires additional authentication.
token.UniqueReferenceMandatoryAN64The unique reference allocated to the new Token. Serves as a unique identifier for all subsequent queries or management functions relating to this Token. Provided if the decision was APPROVED or REQUIRE_ADDITIONAL_AUTHENTICATION.
Below information is in addtionalData
RequiredFormatDescription
brandLogoAssetIdMandatoryAN64The Mastercard or Maestro brand logo associated with this card. Use the Get Asset API to retrieve the actual asset. example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
issuerLogoAssetIdMandatoryAN64The logo of the issuing bank. example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
iconAssetIdMandatoryAN64The icon representing the primary brand(s) associated with this product.
cardBackgroundCombinedAssetIdConditionalAN64The card image used to represent the digital card in the wallet.
cardBackgroundAssetIdConditionalAN64The card image used to represent the digital card in the wallet. Conditional: either CardBackgroundCombined or CardBackground will be provided
foregroundColorMandatoryAN6Foreground color, used to overlay text on top of the card image
issuerNameMandatoryAN64Name of the issuing bank.

Sample:

{
"decision": "APPROVED",
"tokenUniqueReference": "DWSPMC000000000132d72d4fcb2f4136a0532d3093ff1a45",
"addtionalData" {
"brandLogoAssetId": "800200c9-629d-11e3-949a-0739d27e5a66",
"issuerLogoAssetId": "dbc55444-986a-4896-b41c-5d5e2dd431e2",
"cardBackgroundAssetId": "456d27e5-629d-11e3-949a-0800200c9a66",
"iconAssetId": "739d87e5-629d-11e3-949a-0800200c9a66",
"foregroundColor": 0,
"issuerName": "Issuing Bank",
"shortDescription": "Bank Rewards MasterCard",
},
}

Delete Token

Request Parameters
RequiredFormatDescription
tokenUniqueReferencesMandatoryAN64The specific Token to be deleted.
causedByMandatoryAN32'CARDHOLDER' (operation requested by the Cardholder) or 'TOKEN_REQUESTOR'(operation requested by the merchant)
reasonCodeMandatoryAN32The reason for the action to be deleted. Must be one of 'SUSPECTED_FRAUD' (suspected fraudulent token transactions), 'OTHER' (Other - default used if value not provided).
curl http://host:port/eastpay/v3/tokenize\
-d "entityId= tEntity1" \
-d "entityType=PARTICIPATOR" \
-d "merchant.Id=123456789012"\
-d "paymentType=DT" \
-d "tokenUniqueReferences": "DWSPMC000000000132d72d4fcb2f4136a0532d3093ff1a45",
-d "causedBy": "CARDHOLDER",
-d "reasonCode": "SUSPECTED_FRAUD"
-d "merchantTransactionId=202110103134154562355234" \
-H "Authorization: Bearer OGE4Mjk0MTc0YjdlY2IyODAxNGI5Njk5MjIwMDE1Y2N8c3k2S0pzVDg="

Response Parameters

RequiredFormatDescription
tokenUniqueReferencesMandatoryAN64The specific Token to be deleted.
statusMandatoryAN32The current status of Token. Must be either: INACTIVE (Token has not yet been activated) ACTIVE (Token is active and ready to transact) SUSPENDED (Token is suspended and unable to transact) DEACTIVATED (Token has been permanently deactivated).
suspendedByMandatoryAN32(CONDITIONAL only supplied if status is SUSPENDED) Who or what caused the Token to be suspended One or more values of: ISSUER - Suspended by the Issuer. TOKEN_REQUESTOR - Suspended by the Token Requestor MOBILE_PIN_LOCKED - Suspended due to the Mobile PIN being locked CARDHOLDER - Suspended by the Cardholder
statusTimestampThe date and time the token status was last updated. YYYY-MM-DDThh:mm\:ss[.sss]Z YYYY-MM-DDThh:mm\:ss[.sss]±hh:mm Where [.sss] is optional and can be 1 to 3 digits.

Sample:

{
"tokens": [
{
"tokenUniqueReference": "DWSPMC000000000132d72d4fcb2f4136a0532d3093ff1a45",
"status": "SUSPENDED",
"suspendedBy": [
"CARDHOLDER"
]
}
]
}

Get Token

Request Parameters

RequiredFormatDescription
tokenUniqueReferencesMandatoryAN64The specific Information of the Token.

Response Parameters

RequiredFormatDescription
tokenUniqueReferencesMandatoryAN64The specific Token to be deleted.
statusMandatoryAN32The current status of Token. Must be either: INACTIVE (Token has not yet been activated) ACTIVE (Token is active and ready to transact) SUSPENDED (Token is suspended and unable to transact) DEACTIVATED (Token has been permanently deactivated).
suspendedByMandatoryAN32(CONDITIONAL only supplied if status is SUSPENDED) Who or what caused the Token to be suspended One or more values of: ISSUER - Suspended by the Issuer. TOKEN_REQUESTOR - Suspended by the Token Requestor MOBILE_PIN_LOCKED - Suspended due to the Mobile PIN being locked CARDHOLDER - Suspended by the Cardholder
statusTimestampThe date and time the token status was last updated. YYYY-MM-DDThh:mm\:ss[.sss]Z YYYY-MM-DDThh:mm\:ss[.sss]±hh:mm Where [.sss] is optional and can be 1 to 3 digits.
Below information in addtionalData
RequiredFormatDescription
brandLogoAssetIdMandatoryAN64The MasterCard or Maestro brand logo associated with this card. Use the Get Asset API to retrieve the actual asset example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
issuerLogoAssetIdMandatoryAN64The logo of the issuing bank. example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
iconAssetIdMandatoryAN64The icon representing the primary brand(s) associated with this product.
cardBackgroundCombinedAssetIdConditionalAN64The card image used to represent the digital card in the wallet.
cardBackgroundAssetIdConditionalAN64The card image used to represent the digital card in the wallet. Conditional: either CardBackgroundCombined or CardBackground will be provided
foregroundColorMandatoryAN6Foreground color, used to overlay text on top of the card image
issuerNameMandatoryAN64Name of the issuing bank.

Sample:

{
"tokenUniqueReference": "DWSPMC000000000132d72d4fcb2f4136a0532d3093ff1a45",
"status": "SUSPENDED",
"suspendedBy": [
"CARDHOLDER"
],
"addtionalData": {
"brandLogoAssetId": "800200c9-629d-11e3-949a-0739d27e5a66",
"issuerLogoAssetId": "dbc55444-986a-4896-b41c-5d5e2dd431e2",
"cardBackgroundCombinedAssetId": "739d27e5-629d-11e3-949a-0800200c9a66",
"iconAssetId": "739d87e5-629d-11e3-949a-0800200c9a66",
"foregroundColor": 0,
"issuerName": "Issuing Bank"
}
}

Get Card Art

Get card information and image

Request Parameters

RequiredFormatDescription
assetId(Path)MandatoryAN64An Asset ID corresponds to an individual Digital Asset. Digital Assets are returned as part of the addtionalData from the Tokenize Response.
curl http://host:port/eastpay/v3/asset/{assetId}\

Response Parameters

mediaContents array[mediaContent]

RequiredFormatDescription
typeMandatoryAN32What type of media this is. Specified as a MIME type, which will be one of the following supported types: applicatoin/pdf (for images must be a vector PDF image) image/png (includes alpha channel) text/plain text/html
dataMandatoryBase64-encoded dataThe data for this item of media.
heightMandatoryAN6For image assets, the height of this image
widthMandatoryAN6For image assets, the width of this image
{
"mediaContents": [
{
"type": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAF3CAIAAADRopypAAAABGdBTUEAANbY1E9YMgAAAAlwSFlzAAAASAAAAEgARslrPgAAGtNJREFUeNrt3W9oW",
"height": "375",
"width": "375"
}
]
}

Notifications

Please provide us a notification URL

Outbound API used by us to notify the Token Requestor of significant Token updates, such as when the Token is activated, suspended, unsuspended, or deleted; or when information about the Token or its product configuration has changed.

Request Parameters

We will put your entityID's "Authorization Bearer access-token" in the header and your system may verifiy it.

RequiredFormatDescription
tokenUniqueReferencesMandatoryAN64The specific Token to be deleted.
statusMandatoryAN32The current status of Token. Must be either: INACTIVE (Token has not yet been activated),ACTIVE (Token is active and ready to transact), SUSPENDED (Token is suspended and unable to transact),DEACTIVATED (Token has been permanently deactivated).
suspendedByMandatoryAN32(CONDITIONAL only supplied if status is SUSPENDED) Who or what caused the Token to be suspended One or more values of: ISSUER - Suspended by the Issuer. TOKEN_REQUESTOR - Suspended by the Token Requestor,MOBILE_PIN_LOCKED - Suspended due to the Mobile PIN being locked, CARDHOLDER - Suspended by the Cardholder
statusTimestampThe date and time the token status was last updated. YYYY-MM-DDThh:mm\:ss[.sss]Z,YYYY-MM-DDThh:mm\:ss[.sss]±hh:mm, Where [.sss] is optional and can be 1 to 3 digits.
Below information in addtionalData
RequiredFormatDescription
brandLogoAssetIdMandatoryAN64The MasterCard or Maestro brand logo associated with this card. Use the Get Asset API to retrieve the actual asset. example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
issuerLogoAssetIdMandatoryAN64The logo of the issuing bank. example: "dbc55444-986a-4896-b41c-5d5e2dd431e2"
iconAssetIdMandatoryAN64The icon representing the primary brand(s) associated with this product.
cardBackgroundCombinedAssetIdConditionalAN64The card image used to represent the digital card in the wallet.
cardBackgroundAssetIdConditional: either CardBackgroundCombined or CardBackground will be provided AN64 ConditionalThe card image used to represent the digital card in the wallet.
foregroundColorMandatoryAN6Foreground color, used to overlay text on top of the card image
issuerNameMandatoryAN64Name of the issuing bank.
{
"tokenUniqueReference": "DWSPMC000000000132d72d4fcb2f4136a0532d3093ff1a45",
"status": "SUSPENDED",
"eventReasonCode": "SUSPECTED_FRAUD",
"suspendedBy": [
"CARDHOLDER"
],
"addtionalData": {
"brandLogoAssetId": "800200c9-629d-11e3-949a-0739d27e5a66",
"issuerLogoAssetId": "dbc55444-986a-4896-b41c-5d5e2dd431e2",
"cardBackgroundCombinedAssetId": "739d27e5-629d-11e3-949a-0800200c9a66",
"cardBackgroundAssetId": "456d27e5-629d-11e3-949a-0800200c9a66",
"iconAssetId": "739d87e5-629d-11e3-949a-0800200c9a66",
"foregroundColor": 0,
"issuerName": "Issuing Bank",
"shortDescription": "Bank Rewards MasterCard",
},
}

Response Parameters

You should acknowledge it with a 200 OK response.