For any question, we are one click away

Contact us

OCT transactions

OCT overview

OCT (Original Credit Transaction) - a special type of transaction for crediting funds to the recipient in real time.

The following rules are applied to all OCT transactions:

OCT operation scenario

sequenceDiagram participant C as Client participant OS as Online store participant PG as Payment Gateway C ->> OS: 1. Forming an Order OS ->> PG: 2. Registering the Order PG -->> OS: 3. orderId, formUrl OS -->> C: 4. Redirecting to the card data collection form C ->> PG: 5. Sending the data in the filled in form PG ->> PG: 6. Transfer of funds PG -->> C: 7. Redirecting the client to the online store C ->> OS: 8. Getting the page with the result OS ->> PG: 9. Checking the status PG -->> OS: 10. Status of the Order OS -->> C: 11. Showing the result
  1. A cardholder (client) interacts with the online store to create an order.
  2. The online store system registers the order in the Payment Gateway via registerP2P.do. The registration parameters used include the amount of the transfer, the currency, the order number in the merchant's system, and the return URL for the client.
  3. In response to the registration request, the Payment Gateway returns a unique identifier of the order in the payment system and the URL to redirect the client to the form for card data collection.
  4. The online store system passes the redirect URL received on step 3 to the client’s Web browser.
  5. Client fills in the form and the data is sent to the Payment Gateway server.
  6. Payment Gateway makes the transfer of funds via performP2P.do.
  7. When the money is transferred, the Payment Gateway sends the return URL to the client’s Web browser (the URL was specified during the registration of the order by the online store on step 2).
  8. The client’s Web browser requests the results of the money transfer from the online store.
  9. The online store system requests the information about the order status from the payment gateway - getP2PStatus.do.
  10. Payment Gateway returns the status of the order.
  11. The online store system shows payment result to the client.

API calls

OCT integrations require API calls to be signed. Information about request signatures is available in our API Guide.

P2P order registration

To register an order for the card-to-card money transfer, use https://dev.processing.ae/payment/rest/api/p2p/registerP2P.do request.


When sending the request, you should use the header: Content-Type: application/json

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Mandatory

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Mandatory

amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
Mandatory

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Mandatory

returnUrl String [1..512] The address to which the user will be redirected if the payment is successful. The address must be specified in full including the protocol used (for example, https://mybestmerchantreturnurl.com instead of mybestmerchantreturnurl.com). Otherwise, the user will be redirected to the address of the following type https://dev.processing.ae/payment/<merchant_address>.
Optional

failUrl String [1..512] The address to which the user is to be redirected in case of a failed payment. The address must be specified in full including the protocol used (for example, https://mybestmerchantreturnurl.com instead of mybestmerchantreturnurl.com). Otherwise, the user will be redirected to the address of the following type https://dev.processing.ae/payment/<merchant_address>.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Optional

clientId String [0..255] Customer number (ID) in the merchant's system — up to 255 characters. Used to implement the functionality of stored-credential transactions. Can be returned in the response if the merchant is allowed to store credentials.
Specifying this parameter in stored-credential transactions is mandatory. Otherwise, a payment will be unsuccessful.
Optional

merchantLogin String [1..255] To register an order on behalf of another merchant, specify the merchant's API account login in this parameter.
Can be used only if you have the permission to see the transactions of other merchants or if the specified merchant is your child merchant.
Optional

dynamicCallbackUrl String [1..512] This parameter allows you to use the functionality of sending callback notifications dynamically. Here you can pass the address to which all "payment" callback notifications activated for the merchant will be sent. "Payment" notifications are callback notifications related to the following events: successful hold, payment declined by timeout, cardpresent payment is declined, successful debit, refund, cancellation. At the same time, callback notifications activated for the merchant that are not related to payments (enabling/disabling a stored credential, storing a credential) will be sent to a static address for callbacks. Whether the parameter is mandatory or not depends on the merchant configuration on Payment Gateway side.
Optional

sessionTimeoutSecs Integer [1..9] Order lifetime in seconds. If the parameter is not specified, the value specified in the merchant settings or the default value (1200 seconds = 20 minutes) will be used. If the request contains expirationDate, the value of sessionTimeoutSecs is not taken into account.
Optional

sessionExpiredDate String Data and time of the order expiry. Format used: yyyy-MM-ddTHH:mm:ss.
If this parameter is not passed in the request, sessionTimeoutSecs is used to define the expiry of the order.
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Optional

bindingId String [1..255] Identifier of an already existing stored credential. This is the card ID tokenized by the Gateway. Can be used only if the merchant has the permission to work with stored credentials. If this parameter is passed in this request, it means that:
  • This order can only be paid with a stored credential;
  • The payer will be redirected to a payment page where only CVC entry is required.
Optional

creditBindingId String [0..255] Identifier of the stored credential of the card to be credited. It is used in card-to-card transfers when the recipient's card is known in advance. This parameter should first be passed in the request for transfer register (registerP2P.do - clientId parameter should also be passed here), then in the request for transfer funds by binding (performP2PByBinding.do - the value of creditBindingId parameter passed in registerP2P.do should be passed in bindingId parameter in toCard block).
Mandatory

transactionTypeIndicator String Indicator of transaction type. It is used in one-direction types of transaction.
There are such possible values:
  • A - Account to Account (one person)
  • B - Business to business transfer
  • C - Transfer for the purpose of purchasing cryptocurrency
  • D - Funds Disbursement
  • F - Transfer for gambling betting
  • G - Online gambling payout
  • H - Cash Out (Withdrawal)
  • I - Government disbursment
  • J - Money transfer – bank-initiated
  • L - Non-Card Bill Payment
  • O - Credit card Bill Payment
  • P - Person to Person (different persons)
  • W - Transfer to own account of a staged digital wallet for payment.
Mandatory features Object Field for feature parameter, is mandatory for one-direction operations.
If OCT operation is performed (transfer from account to card) - WITHOUT_FROM_CARD should be passed in feature parameter.
Example: "features" : { "feature" : ["WITHOUT_FROM_CARD"] }
Optional params Object Fields for storing additional order information, must be passed as follows {"param":"value","param2":"value2"}.
These fields can be passed to the processing bank for further display in the bank registries.
Optional shippingPayerData Object Object containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
Optional preOrderPayerData Object Object containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
Optional orderPayerData Object Object containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
Optional

billingAndShippingAddressMatchIndicator String [1] Indicator for matching the cardholder's billing address and shipping address. This parameter is used for further 3DS authentication of the customer.
Possible values:
  • Y - the cardholder's billing address and shipping address match;
  • N - cardholder billing address and shipping address do not match.
Conditional billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services and other information like the payer's name, document number, etc. Mandatory if the feature is enabled for the merchant on Payment Gateway side. Should be included either in registerP2P.do request or performP2P.do request. See nested parameters.
Conditional billingRecipientData Object A block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. Should be included either in registerP2P.do request or performP2P.do request. See nested parameters.
Optional

debitMdOrder String [1..36] Unique number of the order for which AFT transfer in IPay was performed. This parameter is used for OCT operations for P2P transfers (AFT+OCT).
Conditional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is filled by the statusResponse.debitTransactionReference parameter from the corresponding AFT transaction. Mandatory if a Mastercard Money Funding Payment was made earlier and a Unique Transaction Reference was generated and sent.
Optional

transactionPurpose String Transaction purpose (used for OCT transactions using Mastercard). Possible values:
  • FAMILY_SUPPORT or 0
  • REGULAR_LABOR_TRA or 1
  • TRAVEL_AND_TOURISM or 2
  • EDUCATION or 3
  • HOSPITALIZATION or 4
  • EMERGENCY_NEED or 5
  • SAVING or 6
  • GIFTS or 7
  • OTHER or 8
  • SALARY or 9
  • CROWD_LENDING or 10
  • CRYPTO_CURRENCY or 11
  • REFUND_ORIGINAL or 12
  • REFUND_NEW_CARD or 13
  • TRANSFER_SAME_WAL or 14
  • BOLETO_PAYMENT or 15
  • HIGH_RISK_SECURITY or 16
  • RECYCLING_DEPOSIT_RETURN or 17
  • VALUE_ADDED_TAX or 18
Optional

serviceProcessingType String The type of processing service (used for OCT transactions using Visa). A service flag that tells Visa system how to process a transaction at their processing level. Possible values:
  • NORMAL or 00
  • ORIG_HOLD or 01
  • VISA_DEFERRED_DEFAULT or 02
  • VISA_DEFERRED_CUSTOM or 03
  • CANCEL_DEFERRED or 09
  • VISA_DIRECT_CUSTOM or 0I
  • DEFERRED_OCT_QUERY or 0Q
  • REC_PAYOUT or 0R
  • ALIAS_DIRECTORY or A0

Description of parameters in shippingPayerData object:

Required Name Type Description
Optional shippingCity String [1..50] The customer's city (from the delivery address)
Optional shippingCountry String [1..50] The customer's country
Optional shippingAddressLine1 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine2 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine3 String [1..50] The customer's primary address (from the shipping address)
Optional shippingPostalCode String [1..16] The customer's zip code for delivery
Optional shippingState String [1..50] Customer's state/region (from delivery address)
Optional shippingMethodIndicator Integer [2] Shipping Method Indicator.
Possible values:
  • 01 - delivery to the cardholder's billing address
  • 02 - delivery to another address verified by Merchant
  • 03 - delivery to an address other than the cardholder's primary (settlement) address
  • 04 - shipment to the store/self-collection (the store address should be specified in the relevant delivery parameters)
  • 05 - Digital distribution (includes online services and e-gift cards)
  • 06 - travel and event tickets that are not deliverable
  • 07 - Other (e.g. games, non-deliverable digital goods, digital subscriptions, etc.)
Optional deliveryTimeframe Integer [2] Product delivery timeframe.
Possible values:
  • 01 - digital distribution
  • 02 - same-day delivery
  • 03 - overnight delivery
  • 04 - delivery within 2 days after payment and later
Optional deliveryEmail String [1..254] Target email address for delivery of digital distribution. Note that it is preferrable to pass the email in a separate email parameter of the request. The deliveryEmail parameter specified in this block is only used to fill MerchantRiskIndicator during 3DS authorization.

Description of parameters in preOrderPayerData object:

Required Name Type Description
Optional preOrderDate String [10] Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
Optional preOrderPurchaseInd Integer [2] Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
Optional reorderItemsInd Integer [2] An indicator that the customer is rebooking a previously paid delivery as part of a new order.
Possible values:
  • 01 - order placed for the first time;
  • 02 - repeated order

Description of parameters in orderPayerData object:

Required Name Type Description
Optional homePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Optional workPhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Conditional mobilePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

For payment by VISA with 3DS authorization, it is necessary to specify either phone or email of the cardholder. If you have a setting to display phone number on the payment page and have specified an invalid number, the customer will have a possibility to correct it on the payment page.

Below are the parameters of the billingPayerData block (data about the client registration address).

Required Name Type Description
Optional billingCity String [0..50] The city registered on a specific card of the Issuing Bank.
Optional billingCountry String [0..50] The country registered on a specific card of the Issuing Bank. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional billingAddressLine1 String [0..50] The address registered on a specific card of the Issuing Bank (A payer’s address). Line 1. Mandatory to be passed in order AVS verification works.
Optional

billingAddressLine2 String [0..50] The address registered on a specific card of the Issuing Bank. Line 2.
Optional

billingAddressLine3 String [0..50] The address registered on a specific card of the Issuing Bank. Line 3.
Optional

billingPostalCode String [0..9] Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
Optional

billingState String [0..50] The state registered on a specific card of the Issuing Bank. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Mandatory

payerAccount String [1..32] Payer's account number.
Optional payerLastName String [1..64] Payer's last name.
Optional payerFirstName String [1..35] Payer's first name.
Optional

payerMiddleName String [1..35] Payer's middle name.
Optional

payerCombinedName String [1..99] Payer's full name.
Optional

payerIdType String [1..8] Type of the payer's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

payerIdNumber String [1..100] Number of the payer's identifying document (e.g. passport) provided.
Optional payerBirthday String [1..20] Payer's birth date in the YYYYMMDD format.
Conditional

payerAccountNumberType String [1..20] Payer's account number type. Mandatory for OCT transactions using Mastercard. Possible values:
  • RTN or 1 – RTN + Bank Account
  • IBAN or 2 – IBAN
  • CARD_ACCOUNT or 3 – Card Account
  • EMAIL or 4– Email
  • PHONE_NUMBER or 5 – Phone Number
  • BAN_AND_BIC or 6 – Bank account number (BAN) + Bank Identification Code (BIC)
  • WALLET_ID or 7 – Wallet Id
  • SOCIAL_NETWORK_ID or 8 – Social Network Id
  • OTHER or 100 – Other

Below are the parameters of the billingRecipientData block (data about the recipient).

Required Name Type Description
Optional

recipientCity String [0..40] The recipient city code in the ISO 3166-1 alpha-3 format.
Optional recipientCountry String [0..50] The recipient country code. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional

recipientAddressLine1 String [0..50] The recipient address. Can contain Latin characters only.
Optional

recipientPostalCode String [0..9] Postal code of the recipient.
Optional

recipientState String [0..50] The recipient state code. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Optional recipientAccount String [0..32] Recipient's account number.
Optional recipientAccountNumberType Integer [1..2] Type of recipient account. Available values:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Mandatory

recipientLastName String [0..35] Recipient's last name.
Mandatory

recipientFirstName String [0..35] Recipient's first name.
Optional

recipientMiddleName String [0..35] Recipient's middle name.
Optional

recipientCombinedName String [0..99] Recipient's full name.
Optional

recipientIdType String [1..8] Type of the recipient's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

recipientIdNumber String [1..99] Number of the recipient's identifying document provided.
Optional

recipientBirthday String [1..20] Recipient's birth date in the format YYYYMMDD.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

formUrl String [1..512] URL of the payment form, to which a customer will be redirected The URL is not returned if the registration of the order fails due to an error specified in errorCode.
Optional

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.

Examples

Request example of OCT operation

curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/registerP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "amount" : 50000,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "orderNumber": "12",
  "clientId": "122313",
  "transactionTypeIndicator": "A",
  "features":{
      "feature":["WITHOUT_FROM_CARD"]
   }
}'

Response example

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "formUrl": "https://dev.processing.ae/payment/merchants/ecom/payment.html?mdOrder=0a4eaae8-653a-71a9-8259-46fc00a8ea58&language=en",
  "orderNumber": "2009"
}

Fee amount

To obtain the fee amount for the money transfer, use https://dev.processing.ae/payment/rest/api/p2p/verifyP2P.do request.


When sending the request, you should use the header: Content-Type: application/json

The structure of the performP2P.do request assumes the presence of the toCard block to pass the attributes of the card to be credited.

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Mandatory

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Optional

amount String [0..12] Transfer amount in minor currency units (e.g. in cents).
This parameter is passed if the payer decides to change the transfer amount when carrying out the money transfer.
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Optional billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services and other information like the payer's name, document number, etc. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Optional billingRecipientData Object A block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Mandatory

toCard Object A block with the attributes of the card to be credited. See nested parameters.

The toCard block consists of the following possible parameters:

Required Name Type Description
Conditional

pan String [1..19] The number of the card to be credited.
Optional

expirationYear Integer [4] The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
Optional

expirationMonth Integer [2] The month of expiration of the card that is to be credited. Available values are as follows: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Optional

cardholderName String [1..26] The name of the holder of the card that is to be credited.
Conditional

seToken String Encrypted card data. Must be passed if used instead of the card data.
The mandatory parameters for seToken string are timestamp, UUID, bindingId, MDORDER. Click here for more information about seToken generation.

Below are the parameters of the billingPayerData block (data about the client registration address).

Required Name Type Description
Optional billingCity String [0..50] The city registered on a specific card of the Issuing Bank.
Optional billingCountry String [0..50] The country registered on a specific card of the Issuing Bank. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional billingAddressLine1 String [0..50] The address registered on a specific card of the Issuing Bank (A payer’s address). Line 1. Mandatory to be passed in order AVS verification works.
Optional

billingAddressLine2 String [0..50] The address registered on a specific card of the Issuing Bank. Line 2.
Optional

billingAddressLine3 String [0..50] The address registered on a specific card of the Issuing Bank. Line 3.
Optional

billingPostalCode String [0..9] Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
Optional

billingState String [0..50] The state registered on a specific card of the Issuing Bank. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Mandatory

payerAccount String [1..32] Payer's account number.
Optional payerLastName String [1..64] Payer's last name.
Optional payerFirstName String [1..35] Payer's first name.
Optional

payerMiddleName String [1..35] Payer's middle name.
Optional

payerCombinedName String [1..99] Payer's full name.
Optional

payerIdType String [1..8] Type of the payer's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

payerIdNumber String [1..100] Number of the payer's identifying document (e.g. passport) provided.
Optional payerBirthday String [1..20] Payer's birth date in the YYYYMMDD format.
Conditional

payerAccountNumberType String [1..20] Payer's account number type. Mandatory for OCT transactions using Mastercard. Possible values:
  • RTN or 1 – RTN + Bank Account
  • IBAN or 2 – IBAN
  • CARD_ACCOUNT or 3 – Card Account
  • EMAIL or 4– Email
  • PHONE_NUMBER or 5 – Phone Number
  • BAN_AND_BIC or 6 – Bank account number (BAN) + Bank Identification Code (BIC)
  • WALLET_ID or 7 – Wallet Id
  • SOCIAL_NETWORK_ID or 8 – Social Network Id
  • OTHER or 100 – Other

Below are the parameters of the billingRecipientData block (data about the recipient).

Required Name Type Description
Optional

recipientCity String [0..40] The recipient city code in the ISO 3166-1 alpha-3 format.
Optional recipientCountry String [0..50] The recipient country code. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional

recipientAddressLine1 String [0..50] The recipient address. Can contain Latin characters only.
Optional

recipientPostalCode String [0..9] Postal code of the recipient.
Optional

recipientState String [0..50] The recipient state code. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Optional recipientAccount String [0..32] Recipient's account number.
Optional recipientAccountNumberType Integer [1..2] Type of recipient account. Available values:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Mandatory

recipientLastName String [0..35] Recipient's last name.
Mandatory

recipientFirstName String [0..35] Recipient's first name.
Optional

recipientMiddleName String [0..35] Recipient's middle name.
Optional

recipientCombinedName String [0..99] Recipient's full name.
Optional

recipientIdType String [1..8] Type of the recipient's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

recipientIdNumber String [1..99] Number of the recipient's identifying document provided.
Optional

recipientBirthday String [1..20] Recipient's birth date in the format YYYYMMDD.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.

The feeDescriptionList block includes the following parameters:

Required Name Type Description
Optional

feeAmount Integer [1..12] Fee amount.
Optional

feeCurrency String [3] The ISO 4217 code of the fee currency.
Optional

feeDescription String [1..512] The description of the fee.

Examples

Request example

curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/verifyP2P.do' -H 'Content-Type: application/json' --data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId": "0a4eaae8-653a-71a9-8259-46fc00a8ea58",
  "toCard": {
    "pan": "4000001111111118"
  },    
  "amount" : 50000
}'

Response example

{
  "errorCode": 0,
  "errorMessage": "Successful",
  "feeDescriptionList: [ {
    "feeAmount": 500,
    "feeCurrency": "978",
    "feeDescription": "Acquirer fee"
  } ]
}

Stored-credential P2P fee amount

To get the amount of commission when transferring funds by a stored-credential transaction, use the https://dev.processing.ae/payment/rest/api/p2p/verifyP2PByBinding.do request.


When sending the request, you should use the header: Content-Type: application/json

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Mandatory

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Mandatory

toCard Object A block with the attributes of the card to be credited. See nested parameters.

The toCard block consists of the following possible parameters:

Required Name Type Description
Conditional

bindingId String [1..255] Identifier of the credentials stored when paying for the order or used for payment. Available only if the merchant is allowed to store credentials.
Conditional

pan String [1..19] The number of the card to be credited.
Optional

expirationYear Integer [4] The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
Optional

expirationMonth Integer [2] The month of expiration of the card that is to be credited. Available values are as follows: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Optional

cardholderName String [1..26] The name of the holder of the card that is to be credited.
Conditional

seToken String Encrypted card data. Must be passed if used instead of the card data.
The mandatory parameters for seToken string are timestamp, UUID, bindingId, MDORDER. Click here for more information about seToken generation.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

feeAmount Integer [1..12] Fee amount.
Optional

feeCurrency String [3] The ISO 4217 code of the fee currency.
Optional

feeDescription String [1..512] The description of the fee.

Examples

Request example

curl --location --request POST 'https://dev.processing.ae/payment/rest/api/p2p/verifyP2PByBinding.do' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "test_user",
    "password": "test_user_password",
    "orderId": "fa71bf70-7c81-484e-a6fc-7db7e4283b2a",
    "bindingId": "4d792471-cee0-742c-922d-a265072e6148",
    "toCard": {
        "cardholderName": "NAME SURNAME",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2024,
        "pan": "5555555555555599"
    },
    "amount": 1000,
    "currency": "978",
    "clientId": "123"
}'

Response example

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "feeDescriptionList" : [ {
    "feeAmount" : 10,
    "feeCurrency" : "978",
    "feeDescription" : "Acquirer fee"
  } ]
}

P2P transfer

To perform a card-to-card money transfer, use https://dev.processing.ae/payment/rest/api/p2p/performP2P.do request.


When sending the request, you should use the header: Content-Type: application/json

The structure of the performP2P.do request assumes the presence of the toCard block to pass the attributes of the card to be credited.

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Mandatory

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Optional

email String [1..40] The payer's email address.
Optional

amount String [0..12] Transfer amount in minor currency units (e.g. in cents).
This parameter is passed if the payer decides to change the transfer amount when carrying out the money transfer.
Optional type String In OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
Optional

amountInput Integer [0..12] Amount of transfer in minor currency units (e.g. in cents). If the amount is specified in this parameter, the transfer will be made for this amount (regardless of the amount passed in the order registration request).
Optional

captcha String CAPTCHA (a text intended to distinguish human from machine input)
Optional

threeDSSDK Boolean Possible values: true or false. Flag showing that payment comes from 3DS SDK.
Optional

threeDSSDKEncData String Encrypted data about device.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKReferenceNumber String 3DS2 SDK official identifier
Optional

threeDSSDKEphemPubKey String Public part of ephemeral key. Required to etablish session with ACS.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKAppId String Unique identifier of SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKTransId String Unique identifier of transaction within SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.
Conditional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Conditional

threeDSVer2MdOrder String [1..36] Order number which was registered in the first part of the request within 3DS2 transaction. Mandatory for 3DS2 authentication.
If this parameter is present in the request, the mdOrder value passed in it overrides, and in this case the order gets paid right away instead of being registered.
This parameter is used only for instant payments, i.e., when the order is registered and payed via the same request.
Optional

bindingNotNeeded Boolean Allowed values:
  • true – storing the credential after the payment is disabled (a stored credential is a customer identifier passed in order registration request — after payment it will be deleted from order details);
  • false – if payment is successful the credential can be stored (if the necessary conditions are met). This is the default value.
Conditional

originalPaymentNetRefNum String [1..36] The identifier of the original or previous successful transaction in the payment system in relation to the performed stored-credential transaction - TRN ID. Is passed when tii = R,U, or F.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Conditional

originalSchemeTransactionId String [1..22] The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional params Object Fields for storing additional order information, must be passed as follows {"param":"value","param2":"value2"}.
These fields can be passed to the processing bank for further display in the bank registries.
Optional shippingPayerData Object Object containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
Optional preOrderPayerData Object Object containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
Optional orderPayerData Object Object containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
Optional

billingAndShippingAddressMatchIndicator String [1] Indicator for matching the cardholder's billing address and shipping address. This parameter is used for further 3DS authentication of the customer.
Possible values:
  • Y - the cardholder's billing address and shipping address match;
  • N - cardholder billing address and shipping address do not match.
Conditional billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services. Mandatory if the feature is enabled for the merchant on Payment Gateway side. Should be included either in registerP2P.do request or performP2P.do request. See nested parameters.
Conditional billingRecipientData Object A block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. Should be included either in registerP2P.do request or performP2P.do request. See nested parameters.
Mandatory

toCard Object A block with the attributes of the card to be credited. See nested parameters.
Conditional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is filled by the statusResponse.debitTransactionReference parameter from the corresponding AFT transaction. Mandatory if a Mastercard Money Funding Payment was made earlier and a Unique Transaction Reference was generated and sent.
Optional

transactionPurpose String Transaction purpose (used for OCT transactions using Mastercard). Possible values:
  • FAMILY_SUPPORT or 0
  • REGULAR_LABOR_TRA or 1
  • TRAVEL_AND_TOURISM or 2
  • EDUCATION or 3
  • HOSPITALIZATION or 4
  • EMERGENCY_NEED or 5
  • SAVING or 6
  • GIFTS or 7
  • OTHER or 8
  • SALARY or 9
  • CROWD_LENDING or 10
  • CRYPTO_CURRENCY or 11
  • REFUND_ORIGINAL or 12
  • REFUND_NEW_CARD or 13
  • TRANSFER_SAME_WAL or 14
  • BOLETO_PAYMENT or 15
  • HIGH_RISK_SECURITY or 16
  • RECYCLING_DEPOSIT_RETURN or 17
  • VALUE_ADDED_TAX or 18
Optional

serviceProcessingType String The type of processing service (used for OCT transactions using Visa). A service flag that tells Visa system how to process a transaction at their processing level. Possible values:
  • NORMAL or 00
  • ORIG_HOLD or 01
  • VISA_DEFERRED_DEFAULT or 02
  • VISA_DEFERRED_CUSTOM or 03
  • CANCEL_DEFERRED or 09
  • VISA_DIRECT_CUSTOM or 0I
  • DEFERRED_OCT_QUERY or 0Q
  • REC_PAYOUT or 0R
  • ALIAS_DIRECTORY or A0

Description of parameters in shippingPayerData object:

Required Name Type Description
Optional shippingCity String [1..50] The customer's city (from the delivery address)
Optional shippingCountry String [1..50] The customer's country
Optional shippingAddressLine1 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine2 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine3 String [1..50] The customer's primary address (from the shipping address)
Optional shippingPostalCode String [1..16] The customer's zip code for delivery
Optional shippingState String [1..50] Customer's state/region (from delivery address)
Optional shippingMethodIndicator Integer [2] Shipping Method Indicator.
Possible values:
  • 01 - delivery to the cardholder's billing address
  • 02 - delivery to another address verified by Merchant
  • 03 - delivery to an address other than the cardholder's primary (settlement) address
  • 04 - shipment to the store/self-collection (the store address should be specified in the relevant delivery parameters)
  • 05 - Digital distribution (includes online services and e-gift cards)
  • 06 - travel and event tickets that are not deliverable
  • 07 - Other (e.g. games, non-deliverable digital goods, digital subscriptions, etc.)
Optional deliveryTimeframe Integer [2] Product delivery timeframe.
Possible values:
  • 01 - digital distribution
  • 02 - same-day delivery
  • 03 - overnight delivery
  • 04 - delivery within 2 days after payment and later
Optional deliveryEmail String [1..254] Target email address for delivery of digital distribution. Note that it is preferrable to pass the email in a separate email parameter of the request. The deliveryEmail parameter specified in this block is only used to fill MerchantRiskIndicator during 3DS authorization.

Description of parameters in preOrderPayerData object:

Required Name Type Description
Optional preOrderDate String [10] Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
Optional preOrderPurchaseInd Integer [2] Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
Optional reorderItemsInd Integer [2] An indicator that the customer is rebooking a previously paid delivery as part of a new order.
Possible values:
  • 01 - order placed for the first time;
  • 02 - repeated order

Description of parameters in orderPayerData object:

Required Name Type Description
Optional homePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Optional workPhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Conditional mobilePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

For payment by VISA with 3DS authorization, it is necessary to specify either phone or email of the cardholder. If you have a setting to display phone number on the payment page and have specified an invalid number, the customer will have a possibility to correct it on the payment page.

Below are the parameters of the billingPayerData block (data about the client registration address).

Required Name Type Description
Optional billingCity String [0..50] The city registered on a specific card of the Issuing Bank.
Optional billingCountry String [0..50] The country registered on a specific card of the Issuing Bank. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional billingAddressLine1 String [0..50] The address registered on a specific card of the Issuing Bank (A payer’s address). Line 1. Mandatory to be passed in order AVS verification works.
Optional

billingAddressLine2 String [0..50] The address registered on a specific card of the Issuing Bank. Line 2.
Optional

billingAddressLine3 String [0..50] The address registered on a specific card of the Issuing Bank. Line 3.
Optional

billingPostalCode String [0..9] Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
Optional

billingState String [0..50] The state registered on a specific card of the Issuing Bank. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Mandatory

payerAccount String [1..32] Payer's account number.
Optional payerLastName String [1..64] Payer's last name.
Optional payerFirstName String [1..35] Payer's first name.
Optional

payerMiddleName String [1..35] Payer's middle name.
Optional

payerCombinedName String [1..99] Payer's full name.
Optional

payerIdType String [1..8] Type of the payer's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

payerIdNumber String [1..100] Number of the payer's identifying document (e.g. passport) provided.
Optional payerBirthday String [1..20] Payer's birth date in the YYYYMMDD format.
Conditional

payerAccountNumberType String [1..20] Payer's account number type. Mandatory for OCT transactions using Mastercard. Possible values:
  • RTN or 1 – RTN + Bank Account
  • IBAN or 2 – IBAN
  • CARD_ACCOUNT or 3 – Card Account
  • EMAIL or 4– Email
  • PHONE_NUMBER or 5 – Phone Number
  • BAN_AND_BIC or 6 – Bank account number (BAN) + Bank Identification Code (BIC)
  • WALLET_ID or 7 – Wallet Id
  • SOCIAL_NETWORK_ID or 8 – Social Network Id
  • OTHER or 100 – Other

Below are the parameters of the billingRecipientData block (data about the recipient).

Required Name Type Description
Optional

recipientCity String [0..40] The recipient city code in the ISO 3166-1 alpha-3 format.
Optional recipientCountry String [0..50] The recipient country code. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional

recipientAddressLine1 String [0..50] The recipient address. Can contain Latin characters only.
Optional

recipientPostalCode String [0..9] Postal code of the recipient.
Optional

recipientState String [0..50] The recipient state code. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Optional recipientAccount String [0..32] Recipient's account number.
Optional recipientAccountNumberType Integer [1..2] Type of recipient account. Available values:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Mandatory

recipientLastName String [0..35] Recipient's last name.
Mandatory

recipientFirstName String [0..35] Recipient's first name.
Optional

recipientMiddleName String [0..35] Recipient's middle name.
Optional

recipientCombinedName String [0..99] Recipient's full name.
Optional

recipientIdType String [1..8] Type of the recipient's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

recipientIdNumber String [1..99] Number of the recipient's identifying document provided.
Optional

recipientBirthday String [1..20] Recipient's birth date in the format YYYYMMDD.

The toCard block consists of the following possible parameters:

Required Name Type Description
Conditional

pan String [1..19] The number of the card to be credited.
Optional

expirationYear Integer [4] The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
Optional

expirationMonth Integer [2] The month of expiration of the card that is to be credited. Available values are as follows: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Optional

cardholderName String [1..26] The name of the holder of the card that is to be credited.
Conditional

seToken String Encrypted card data. Must be passed if used instead of the card data.
The mandatory parameters for seToken string are timestamp, UUID, bindingId, MDORDER. Click here for more information about seToken generation.

The following parameters are also passed during the authentication via the 3DS2 protocol:

Required Name Type Description
Optional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Optional

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

info String The result of an attempt to transfer funds.

The value in case of a successful transfer: "Your payment has been processed, redirecting...".

The value in case of an error: "Redirecting..."
Conditional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Conditional

paReq String [1..255] PAReq (Payment Authentication Request) - a message that should be sent to ACS together with redirect. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. This message contains the Base64-encoded data necessary for the cardholder authentication. For details see Redirect to ACS.
Optional

termUrl String [1..512] In a successful response in case of a 3D-Secure payment. URL address for redirecting the client after interaction with the ACS for the payment completion.
Optional

originalPaymentNetRefNum String [1..36] The identifier of the original or previous successful transaction in the payment system in relation to the performed stored-credential transaction - TRN ID. Is passed when tii = R,U, or F.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Conditional statusResponse Object Parameters of the order status. This block is returned only if you have a corresponding setting enabled. To enable this feature please contact support. See nested parameters.
Optional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is automatically filled by statusResponse.debitTransactionReference parameter from the corresponding AFT transaction (automatically generated by Payment Gateway) or by the corresponding parameter received in the OCT request.

When authenticating via the 3DS2 protocol, the following parameters are returned during the initial request:

Required Name Type Description
Mandatory

is3DSVer2 Boolean Possible values: true or false. Flag showing that payment uses 3DS2.
Mandatory

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSMethodUrl String [1..512] URL of ACS Server for gathering browser data.
Mandatory

threeDSMethodUrlServer String [1..512] URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
Optional

threeDSMethodDataPacked String [1..1024] Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
Optional

threeDSMethodURLServerDirect String [1..512] URL of 3dsmethod.do for executing the 3DS method on 3DS Server via Payment Gateway (subject to respective Merchant-level permission).

Below are the parameters to be present in the response, after a repeated request for the payment and the need to redirect the client to the ACS during the authentication via the 3DS2 protocol:

Required Name Type Description
Conditional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Conditional

packedCReq String Packed challenge request data. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. This value should be used as the ACS link creq parameter (acsUrl) to redirect the client to the ACS. For details see Redirect to ACS.

The parameters of statusResponse block:

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 2 - order amount is fully authorized;
  • 3 - authorization reversed;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined;
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

panMaskedFrom String [1..19] The masked number of the card to be debited.
Optional

panMaskedTo String [1..19] The masked number of the card to be credited.
Optional

amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
Optional

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Optional

creationDate Integer Date of order registration.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Mandatory

resultCode Integer Error code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
Optional

orderParams Object An object with the merchant's attributes of the order. More than one orderParams object can be presented in the response.
The object must be passed as follows: {"param":"value","param2":"value2"}.
Optional

operationList Object Object containing information on the transactions completed in the order. More than one operationList object can be present in the response.
The parameters that can be passed here are described below.
Optional

binding String Identifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
Optional

detokenizedPanRepresentation String [1..19] The detokenized card number (the last 4 digits or in a masked form).
Optional

detokenizedPanExpiryDate String The card's detokenized expiration date in the following format: "YYYYMM".
Optional

paymentNetRefNum String [1..512] Original Network Reference Number - a unique identifier assigned by the card network (e.g., Mastercard, Visa) to the original transaction (such as a purchase or authorization). When a follow-up transaction is initiated (e.g., refund, recurring payment), this number must be included to:
  • Link the new transaction to the original one
  • Ensure proper tracking and reconciliation
  • Meet network compliance requirements
This parameter is returned only if the getP2PStatus version is 7 or higher.

To complete the transaction use /p2p/finishThreeDsVer2.do.

Examples

Example of the OCT request

curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/performP2P.do'
-H 'Content-Type: application/json'
--data-raw '{
  "username":"test_user",
  "password":"test_user_password",
  "orderId" : "38b7a9e0-7cfa-46f7-8655-f206a8898e7a",
  "amount" : 50000,
  "toCard" : {
    "pan" : "4111111111111111"
  }
}'

Example of the response to the request

{
  "errorCode": 0,
  "info": "Your order is proceeded, redirecting...",
  "acsUrl": "https://example.com/acs2/acs/creq",
  "is3DSVer2": true,
  "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

Stored-credential P2P transfer

To perform a card-to-card transfer by binding, use https://dev.processing.ae/payment/rest/api/p2p/performP2PByBinding.do request.


When sending the request, you should use the header: Content-Type: application/json

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Optional

email String [1..40] Email to be displayed on the payment page. Customer's email must be passed if client notification is configured for the merchant. Example: client_mail@email.com.
For payment by VISA with 3DS authorization, it is necessary to specify either phone or email of the cardholder.
Optional type String In OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
Mandatory

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Optional

amountInput Integer [0..12] Amount of transfer in minor currency units (e.g. in cents). If the amount is specified in this parameter, the transfer will be made for this amount (regardless of the amount passed in the order registration request).
Optional

captcha String CAPTCHA (a text intended to distinguish human from machine input)
Optional

threeDSSDK Boolean Possible values: true or false. Flag showing that payment comes from 3DS SDK.
Optional

threeDSSDKEncData String Encrypted data about device.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKReferenceNumber String 3DS2 SDK official identifier
Optional

threeDSSDKEphemPubKey String Public part of ephemeral key. Required to etablish session with ACS.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKAppId String Unique identifier of SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKTransId String Unique identifier of transaction within SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.
Conditional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Conditional

threeDSVer2MdOrder String [1..36] Order number which was registered in the first part of the request within 3DS2 transaction. Mandatory for 3DS2 authentication.
If this parameter is present in the request, the mdOrder value passed in it overrides, and in this case the order gets paid right away instead of being registered.
This parameter is used only for instant payments, i.e., when the order is registered and payed via the same request.
Optional

bindingNotNeeded Boolean Allowed values:
  • true – storing the credential after the payment is disabled (a stored credential is a customer identifier passed in order registration request — after payment it will be deleted from order details);
  • false – if payment is successful the credential can be stored (if the necessary conditions are met). This is the default value.
Conditional

originalPaymentNetRefNum String [1..36] The identifier of the original or previous successful transaction in the payment system in relation to the performed stored-credential transaction - TRN ID. Is passed when tii = R,U, or F.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Conditional

originalSchemeTransactionId String [1..22] The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional params Object Fields for storing additional order information, must be passed as follows {"param":"value","param2":"value2"}.
These fields can be passed to the processing bank for further display in the bank registries.
Optional shippingPayerData Object Object containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
Optional preOrderPayerData Object Object containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
Optional orderPayerData Object Object containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
Optional

billingAndShippingAddressMatchIndicator String [1] Indicator for matching the cardholder's billing address and shipping address. This parameter is used for further 3DS authentication of the customer.
Possible values:
  • Y - the cardholder's billing address and shipping address match;
  • N - cardholder billing address and shipping address do not match.
Optional billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Optional billingRecipientData Object A block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Mandatory

toCard Object A block with the attributes of the card to be credited. See nested parameters.
Conditional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is filled by the statusResponse.debitTransactionReference parameter from the corresponding AFT transaction. Mandatory if a Mastercard Money Funding Payment was made earlier and a Unique Transaction Reference was generated and sent.
Optional

transactionPurpose String Transaction purpose (used for OCT transactions using Mastercard). Possible values:
  • FAMILY_SUPPORT or 0
  • REGULAR_LABOR_TRA or 1
  • TRAVEL_AND_TOURISM or 2
  • EDUCATION or 3
  • HOSPITALIZATION or 4
  • EMERGENCY_NEED or 5
  • SAVING or 6
  • GIFTS or 7
  • OTHER or 8
  • SALARY or 9
  • CROWD_LENDING or 10
  • CRYPTO_CURRENCY or 11
  • REFUND_ORIGINAL or 12
  • REFUND_NEW_CARD or 13
  • TRANSFER_SAME_WAL or 14
  • BOLETO_PAYMENT or 15
  • HIGH_RISK_SECURITY or 16
  • RECYCLING_DEPOSIT_RETURN or 17
  • VALUE_ADDED_TAX or 18
Optional

serviceProcessingType String The type of processing service (used for OCT transactions using Visa). A service flag that tells Visa system how to process a transaction at their processing level. Possible values:
  • NORMAL or 00
  • ORIG_HOLD or 01
  • VISA_DEFERRED_DEFAULT or 02
  • VISA_DEFERRED_CUSTOM or 03
  • CANCEL_DEFERRED or 09
  • VISA_DIRECT_CUSTOM or 0I
  • DEFERRED_OCT_QUERY or 0Q
  • REC_PAYOUT or 0R
  • ALIAS_DIRECTORY or A0

The toCard block (if crediting is done by a third-party system, this block must be absent) consists of the following possible parameters:

Required Name Type Description
Conditional

bindingId String [1..255] Identifier of the credentials stored when paying for the order or used for payment. Available only if the merchant is allowed to store credentials.
Conditional

pan String [1..19] The number of the card to be credited.
Optional

expirationYear Integer [4] The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
Optional

expirationMonth Integer [2] The month of expiration of the card that is to be credited. Available values are as follows: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Optional

cardholderName String [1..26] The name of the holder of the card that is to be credited.
Conditional

seToken String Encrypted card data. Must be passed if used instead of the card data.
The mandatory parameters for seToken string are timestamp, UUID, bindingId, MDORDER. Click here for more information about seToken generation.

Description of parameters in shippingPayerData object:

Required Name Type Description
Optional shippingCity String [1..50] The customer's city (from the delivery address)
Optional shippingCountry String [1..50] The customer's country
Optional shippingAddressLine1 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine2 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine3 String [1..50] The customer's primary address (from the shipping address)
Optional shippingPostalCode String [1..16] The customer's zip code for delivery
Optional shippingState String [1..50] Customer's state/region (from delivery address)
Optional shippingMethodIndicator Integer [2] Shipping Method Indicator.
Possible values:
  • 01 - delivery to the cardholder's billing address
  • 02 - delivery to another address verified by Merchant
  • 03 - delivery to an address other than the cardholder's primary (settlement) address
  • 04 - shipment to the store/self-collection (the store address should be specified in the relevant delivery parameters)
  • 05 - Digital distribution (includes online services and e-gift cards)
  • 06 - travel and event tickets that are not deliverable
  • 07 - Other (e.g. games, non-deliverable digital goods, digital subscriptions, etc.)
Optional deliveryTimeframe Integer [2] Product delivery timeframe.
Possible values:
  • 01 - digital distribution
  • 02 - same-day delivery
  • 03 - overnight delivery
  • 04 - delivery within 2 days after payment and later
Optional deliveryEmail String [1..254] Target email address for delivery of digital distribution. Note that it is preferrable to pass the email in a separate email parameter of the request. The deliveryEmail parameter specified in this block is only used to fill MerchantRiskIndicator during 3DS authorization.

Description of parameters in preOrderPayerData object:

Required Name Type Description
Optional preOrderDate String [10] Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
Optional preOrderPurchaseInd Integer [2] Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
Optional reorderItemsInd Integer [2] An indicator that the customer is rebooking a previously paid delivery as part of a new order.
Possible values:
  • 01 - order placed for the first time;
  • 02 - repeated order

Description of parameters in orderPayerData object:

Required Name Type Description
Optional homePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Optional workPhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Conditional mobilePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

For payment by VISA with 3DS authorization, it is necessary to specify either phone or email of the cardholder. If you have a setting to display phone number on the payment page and have specified an invalid number, the customer will have a possibility to correct it on the payment page.

Below are the parameters of the billingPayerData block (data about the client registration address).

Required Name Type Description
Optional billingCity String [0..50] The city registered on a specific card of the Issuing Bank.
Optional billingCountry String [0..50] The country registered on a specific card of the Issuing Bank. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional billingAddressLine1 String [0..50] The address registered on a specific card of the Issuing Bank (A payer’s address). Line 1. Mandatory to be passed in order AVS verification works.
Optional

billingAddressLine2 String [0..50] The address registered on a specific card of the Issuing Bank. Line 2.
Optional

billingAddressLine3 String [0..50] The address registered on a specific card of the Issuing Bank. Line 3.
Optional

billingPostalCode String [0..9] Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
Optional

billingState String [0..50] The state registered on a specific card of the Issuing Bank. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Mandatory

payerAccount String [1..32] Payer's account number.
Optional payerLastName String [1..64] Payer's last name.
Optional payerFirstName String [1..35] Payer's first name.
Optional

payerMiddleName String [1..35] Payer's middle name.
Optional

payerCombinedName String [1..99] Payer's full name.
Optional

payerIdType String [1..8] Type of the payer's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

payerIdNumber String [1..100] Number of the payer's identifying document (e.g. passport) provided.
Optional payerBirthday String [1..20] Payer's birth date in the YYYYMMDD format.
Conditional

payerAccountNumberType String [1..20] Payer's account number type. Mandatory for OCT transactions using Mastercard. Possible values:
  • RTN or 1 – RTN + Bank Account
  • IBAN or 2 – IBAN
  • CARD_ACCOUNT or 3 – Card Account
  • EMAIL or 4– Email
  • PHONE_NUMBER or 5 – Phone Number
  • BAN_AND_BIC or 6 – Bank account number (BAN) + Bank Identification Code (BIC)
  • WALLET_ID or 7 – Wallet Id
  • SOCIAL_NETWORK_ID or 8 – Social Network Id
  • OTHER or 100 – Other

Below are the parameters of the billingRecipientData block (data about the recipient).

Required Name Type Description
Optional

recipientCity String [0..40] The recipient city code in the ISO 3166-1 alpha-3 format.
Optional recipientCountry String [0..50] The recipient country code. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional

recipientAddressLine1 String [0..50] The recipient address. Can contain Latin characters only.
Optional

recipientPostalCode String [0..9] Postal code of the recipient.
Optional

recipientState String [0..50] The recipient state code. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Optional recipientAccount String [0..32] Recipient's account number.
Optional recipientAccountNumberType Integer [1..2] Type of recipient account. Available values:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Mandatory

recipientLastName String [0..35] Recipient's last name.
Mandatory

recipientFirstName String [0..35] Recipient's first name.
Optional

recipientMiddleName String [0..35] Recipient's middle name.
Optional

recipientCombinedName String [0..99] Recipient's full name.
Optional

recipientIdType String [1..8] Type of the recipient's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

recipientIdNumber String [1..99] Number of the recipient's identifying document provided.
Optional

recipientBirthday String [1..20] Recipient's birth date in the format YYYYMMDD.

The following parameters are also passed during the authentication via the 3DS2 protocol:

Mandatory Name Type Description
Optional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

info String The result of an attempt to transfer funds.

The value in case of a successful transfer: "Your payment has been processed, redirecting...".

The value in case of an error: "Redirecting..."
Conditional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Conditional

paReq String [1..255] PAReq (Payment Authentication Request) - a message that should be sent to ACS together with redirect. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. This message contains the Base64-encoded data necessary for the cardholder authentication. For details see Redirect to ACS.
Conditional

termUrl String [1..512] In a successful response in case of a 3D-Secure payment. The URL address to which ACS redirects the cardholder after authentication. For details see Redirect to ACS.
Conditional statusResponse Object Parameters of the order status. This block is returned only if you have a corresponding setting enabled. To enable this feature please contact support. See nested parameters.
Optional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is automatically filled by statusResponse.debitTransactionReference parameter from the corresponding AFT transaction (automatically generated by Payment Gateway) or by the corresponding parameter received in the OCT request.

When authenticating via the 3DS2 protocol, the following parameters are returned during the initial request:

Required Name Type Description
Mandatory

is3DSVer2 Boolean Possible values: true or false. Flag showing that payment uses 3DS2.
Mandatory

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSMethodUrl String [1..512] URL of ACS Server for gathering browser data.
Mandatory

threeDSMethodUrlServer String [1..512] URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
Optional

threeDSMethodDataPacked String [1..1024] Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
Optional

threeDSMethodURLServerDirect String [1..512] URL of 3dsmethod.do for executing the 3DS method on 3DS Server via Payment Gateway (subject to respective Merchant-level permission).

Below are the parameters to be present in the response, after a repeated request for the payment and the need to redirect the client to the ACS during the authentication via the 3DS2 protocol:

Required Name Type Description
Conditional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Conditional

packedCReq String Packed challenge request data. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. This value should be used as the ACS link creq parameter (acsUrl) to redirect the client to the ACS. For details see Redirect to ACS.

The parameters of statusResponse block:

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 2 - order amount is fully authorized;
  • 3 - authorization reversed;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined;
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

panMaskedFrom String [1..19] The masked number of the card to be debited.
Optional

panMaskedTo String [1..19] The masked number of the card to be credited.
Optional

amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
Optional

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Optional

creationDate Integer Date of order registration.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Mandatory

resultCode Integer Error code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
Optional

orderParams Object An object with the merchant's attributes of the order. More than one orderParams object can be presented in the response.
The object must be passed as follows: {"param":"value","param2":"value2"}.
Optional

operationList Object Object containing information on the transactions completed in the order. More than one operationList object can be present in the response.
The parameters that can be passed here are described below.
Optional

binding String Identifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
Optional

detokenizedPanRepresentation String [1..19] The detokenized card number (the last 4 digits or in a masked form).
Optional

detokenizedPanExpiryDate String The card's detokenized expiration date in the following format: "YYYYMM".
Optional

paymentNetRefNum String [1..512] Original Network Reference Number - a unique identifier assigned by the card network (e.g., Mastercard, Visa) to the original transaction (such as a purchase or authorization). When a follow-up transaction is initiated (e.g., refund, recurring payment), this number must be included to:
  • Link the new transaction to the original one
  • Ensure proper tracking and reconciliation
  • Meet network compliance requirements
This parameter is returned only if the getP2PStatus version is 7 or higher.

Examples

Request example

curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/performP2PByBinding.do' 
-H 'Content-Type: application/json' 
--data-raw '{ 
  "amountInput" : 1000,
  "bindingId" : "03e9492a-536c-7ab4-85e6-b44000f26b04",
  "toCard": {
        "cardholderName": "TEST CARDHOLDER",
        "cvc": "123",
        "expirationMonth": 12,
        "expirationYear": 2029,
        "pan": "5555555555555599"
  },
  "orderId" : "3dbaf8bb-1d68-76b3-b4e6-784700f26b04",
  "password" : "test_user_password",
  "type" : "WITHOUT_FROM_CARD",
  "username" : "test_user"
}'

Response example

{
  "errorCode" : 0,
  "errorMessage" : "Successful",
  "info" : "Your order is proceeded, redirecting...",
  "redirect" : "https://example.com/?orderId=47743354-be15-7c70-b9ef-4bfc482e68dc&lang=en",
  "is3DSVer2" : false
}

Instant P2P transfer

To perform an instant P2P money transfer without order registration request, use https://dev.processing.ae/payment/rest/api/p2p/instantPerformP2P.do request.


When sending request, you should use header: Content-Type: application/json

The structure of the instantPerformP2P.do request assumes the presence of the toCard block to pass the attributes of the card to be credited.

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Mandatory

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

clientId String [0..255] Customer number (ID) in the merchant's system — up to 255 characters. Used to implement the functionality of stored-credential transactions. Can be returned in the response if the merchant is allowed to store credentials.
Specifying this parameter in stored-credential transactions is mandatory. Otherwise, a payment will be unsuccessful.
Optional

bindingId String [1..255] Identifier of an already existing stored credential. This is the card ID tokenized by the Gateway. Can be used only if the merchant has the permission to work with stored credentials. If this parameter is passed in this request, it means that:
  • This order can only be paid with a stored credential;
  • The payer will be redirected to a payment page where only CVC entry is required.
Conditional

originalSchemeTransactionId String [1..22] The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional

creditBindingId String [0..255] Identifier of the stored credential of the card to be credited. It is used in card-to-card transfers when the recipient's card is known in advance. This parameter should first be passed in the request for transfer register (registerP2P.do - clientId parameter should also be passed here), then in the request for transfer funds by binding (performP2PByBinding.do - the value of creditBindingId parameter passed in registerP2P.do should be passed in bindingId parameter in toCard block).
Optional

email String [1..40] The payer's email address.
Mandatory

amount String [0..12] Transfer amount in minor currency units (e.g. in cents).
This parameter is passed if the payer decides to change the transfer amount when carrying out the money transfer.
Mandatory

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional params Object Fields for storing additional order information, must be passed as follows {"param":"value","param2":"value2"}.
These fields can be passed to the processing bank for further display in the bank registries.
Optional

feeInput Integer [0..8] Fee amount in minimum currency units. Must be enabled by respective Merchant-level permission in the Gateway.
Mandatory

returnUrl String [1..512] The address to which the user will be redirected if the payment is successful. The address must be specified in full including the protocol used (for example, https://mybestmerchantreturnurl.com instead of mybestmerchantreturnurl.com). Otherwise, the user will be redirected to the address of the following type https://dev.processing.ae/payment/<merchant_address>.
Optional

failUrl String [1..512] The address to which the user is to be redirected in case of a failed payment. The address must be specified in full including the protocol used (for example, https://mybestmerchantreturnurl.com instead of mybestmerchantreturnurl.com). Otherwise, the user will be redirected to the address of the following type https://dev.processing.ae/payment/<merchant_address>.
Mandatory

transactionTypeIndicator String Indicator of transaction type. It is used in one-direction types of transaction.
There are such possible values:
  • A - Account to Account (one person)
  • B - Business to business transfer
  • C - Transfer for the purpose of purchasing cryptocurrency
  • D - Funds Disbursement
  • F - Transfer for gambling betting
  • G - Online gambling payout
  • H - Cash Out (Withdrawal)
  • I - Government disbursment
  • J - Money transfer – bank-initiated
  • L - Non-Card Bill Payment
  • O - Credit card Bill Payment
  • P - Person to Person (different persons)
  • W - Transfer to own account of a staged digital wallet for payment.
Mandatory features Object Field for feature parameter, is mandatory for one-direction operations.
If OCT operation is performed (transfer from account to card) - WITHOUT_FROM_CARD should be passed in feature parameter.
Example: "features" : { "feature" : ["WITHOUT_FROM_CARD"] }
Optional

mcc Integer [4] Merchant Category Code. Using this parameter requires a special permission. You can use only the values from the predefined list of allowed MCC values. Contact the support team for details.
Optional

merchantLogin String [1..255] To register an order on behalf of another merchant, specify the merchant's API account login in this parameter.
Can be used only if you have the permission to see the transactions of other merchants or if the specified merchant is your child merchant.
Optional

dynamicCallbackUrl String [1..512] This parameter allows you to use the functionality of sending callback notifications dynamically. Here you can pass the address to which all "payment" callback notifications activated for the merchant will be sent. "Payment" notifications are callback notifications related to the following events: successful hold, payment declined by timeout, cardpresent payment is declined, successful debit, refund, cancellation. At the same time, callback notifications activated for the merchant that are not related to payments (enabling/disabling a stored credential, storing a credential) will be sent to a static address for callbacks. Whether the parameter is mandatory or not depends on the merchant configuration on Payment Gateway side.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Optional type String In OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
Optional

captcha String CAPTCHA (a text intended to distinguish human from machine input)
Optional

threeDSSDK Boolean Possible values: true or false. Flag showing that payment comes from 3DS SDK.
Optional

threeDSSDKEncData String Encrypted data about device.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKReferenceNumber String 3DS2 SDK official identifier
Optional

threeDSSDKEphemPubKey String Public part of ephemeral key. Required to etablish session with ACS.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKAppId String Unique identifier of SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSSDKTransId String Unique identifier of transaction within SDK.

Parameter is mandatory for SDK flow.

Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.
Conditional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Conditional

threeDSVer2MdOrder String [1..36] Order number which was registered in the first part of the request within 3DS2 transaction. Mandatory for 3DS2 authentication.
If this parameter is present in the request, the mdOrder value passed in it overrides, and in this case the order gets paid right away instead of being registered.
This parameter is used only for instant payments, i.e., when the order is registered and payed via the same request.
Optional

bindingNotNeeded Boolean Allowed values:
  • true – storing the credential after the payment is disabled (a stored credential is a customer identifier passed in order registration request — after payment it will be deleted from order details);
  • false – if payment is successful the credential can be stored (if the necessary conditions are met). This is the default value.
Conditional

originalPaymentNetRefNum String [1..36] The identifier of the original or previous successful transaction in the payment system in relation to the performed stored-credential transaction - TRN ID. Is passed when tii = R,U, or F.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional shippingPayerData Object Object containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
Optional preOrderPayerData Object Object containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
Optional orderPayerData Object Object containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
Optional

billingAndShippingAddressMatchIndicator String [1] Indicator for matching the cardholder's billing address and shipping address. This parameter is used for further 3DS authentication of the customer.
Possible values:
  • Y - the cardholder's billing address and shipping address match;
  • N - cardholder billing address and shipping address do not match.
Conditional billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Conditional billingRecipientData Object A block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
Mandatory

toCard Object A block with the attributes of the card to be credited. See nested parameters.
Optional

debitMdOrder String [1..36] Unique number of the order for which AFT transfer in IPay was performed. This parameter is used for OCT operations for P2P transfers (AFT+OCT).
Conditional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is filled by the statusResponse.debitTransactionReference parameter from the corresponding AFT transaction. Mandatory if a Mastercard Money Funding Payment was made earlier and a Unique Transaction Reference was generated and sent.
Optional

transactionPurpose String Transaction purpose (used for OCT transactions using Mastercard). Possible values:
  • FAMILY_SUPPORT or 0
  • REGULAR_LABOR_TRA or 1
  • TRAVEL_AND_TOURISM or 2
  • EDUCATION or 3
  • HOSPITALIZATION or 4
  • EMERGENCY_NEED or 5
  • SAVING or 6
  • GIFTS or 7
  • OTHER or 8
  • SALARY or 9
  • CROWD_LENDING or 10
  • CRYPTO_CURRENCY or 11
  • REFUND_ORIGINAL or 12
  • REFUND_NEW_CARD or 13
  • TRANSFER_SAME_WAL or 14
  • BOLETO_PAYMENT or 15
  • HIGH_RISK_SECURITY or 16
  • RECYCLING_DEPOSIT_RETURN or 17
  • VALUE_ADDED_TAX or 18
Optional

serviceProcessingType String The type of processing service (used for OCT transactions using Visa). A service flag that tells Visa system how to process a transaction at their processing level. Possible values:
  • NORMAL or 00
  • ORIG_HOLD or 01
  • VISA_DEFERRED_DEFAULT or 02
  • VISA_DEFERRED_CUSTOM or 03
  • CANCEL_DEFERRED or 09
  • VISA_DIRECT_CUSTOM or 0I
  • DEFERRED_OCT_QUERY or 0Q
  • REC_PAYOUT or 0R
  • ALIAS_DIRECTORY or A0

Description of parameters in shippingPayerData object:

Required Name Type Description
Optional shippingCity String [1..50] The customer's city (from the delivery address)
Optional shippingCountry String [1..50] The customer's country
Optional shippingAddressLine1 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine2 String [1..50] The customer's primary address (from the shipping address)
Optional shippingAddressLine3 String [1..50] The customer's primary address (from the shipping address)
Optional shippingPostalCode String [1..16] The customer's zip code for delivery
Optional shippingState String [1..50] Customer's state/region (from delivery address)
Optional shippingMethodIndicator Integer [2] Shipping Method Indicator.
Possible values:
  • 01 - delivery to the cardholder's billing address
  • 02 - delivery to another address verified by Merchant
  • 03 - delivery to an address other than the cardholder's primary (settlement) address
  • 04 - shipment to the store/self-collection (the store address should be specified in the relevant delivery parameters)
  • 05 - Digital distribution (includes online services and e-gift cards)
  • 06 - travel and event tickets that are not deliverable
  • 07 - Other (e.g. games, non-deliverable digital goods, digital subscriptions, etc.)
Optional deliveryTimeframe Integer [2] Product delivery timeframe.
Possible values:
  • 01 - digital distribution
  • 02 - same-day delivery
  • 03 - overnight delivery
  • 04 - delivery within 2 days after payment and later
Optional deliveryEmail String [1..254] Target email address for delivery of digital distribution. Note that it is preferrable to pass the email in a separate email parameter of the request. The deliveryEmail parameter specified in this block is only used to fill MerchantRiskIndicator during 3DS authorization.

Description of parameters in preOrderPayerData object:

Required Name Type Description
Optional preOrderDate String [10] Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
Optional preOrderPurchaseInd Integer [2] Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
Optional reorderItemsInd Integer [2] An indicator that the customer is rebooking a previously paid delivery as part of a new order.
Possible values:
  • 01 - order placed for the first time;
  • 02 - repeated order

Description of parameters in orderPayerData object:

Required Name Type Description
Optional homePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.
Optional workPhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

Conditional mobilePhone String [7..15] Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign or 00 at the beginning. The number must be 7 to 15 digits long. Thus, the following options are valid:
  • +35799988877;
  • 0035799988877;
  • 35799988877.

For payment by VISA with 3DS authorization, it is necessary to specify either phone or email of the cardholder. If you have a setting to display phone number on the payment page and have specified an invalid number, the customer will have a possibility to correct it on the payment page.

Below are the parameters of the billingPayerData block (data about the client registration address).

Required Name Type Description
Optional billingCity String [0..50] The city registered on a specific card of the Issuing Bank.
Optional billingCountry String [0..50] The country registered on a specific card of the Issuing Bank. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional billingAddressLine1 String [0..50] The address registered on a specific card of the Issuing Bank (A payer’s address). Line 1. Mandatory to be passed in order AVS verification works.
Optional

billingAddressLine2 String [0..50] The address registered on a specific card of the Issuing Bank. Line 2.
Optional

billingAddressLine3 String [0..50] The address registered on a specific card of the Issuing Bank. Line 3.
Optional

billingPostalCode String [0..9] Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
Optional

billingState String [0..50] The state registered on a specific card of the Issuing Bank. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Mandatory

payerAccount String [1..32] Payer's account number.
Optional payerLastName String [1..64] Payer's last name.
Optional payerFirstName String [1..35] Payer's first name.
Optional

payerMiddleName String [1..35] Payer's middle name.
Optional

payerCombinedName String [1..99] Payer's full name.
Optional

payerIdType String [1..8] Type of the payer's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

payerIdNumber String [1..100] Number of the payer's identifying document (e.g. passport) provided.
Optional payerBirthday String [1..20] Payer's birth date in the YYYYMMDD format.
Conditional

payerAccountNumberType String [1..20] Payer's account number type. Mandatory for OCT transactions using Mastercard. Possible values:
  • RTN or 1 – RTN + Bank Account
  • IBAN or 2 – IBAN
  • CARD_ACCOUNT or 3 – Card Account
  • EMAIL or 4– Email
  • PHONE_NUMBER or 5 – Phone Number
  • BAN_AND_BIC or 6 – Bank account number (BAN) + Bank Identification Code (BIC)
  • WALLET_ID or 7 – Wallet Id
  • SOCIAL_NETWORK_ID or 8 – Social Network Id
  • OTHER or 100 – Other

Below are the parameters of the billingRecipientData block (data about the recipient).

Required Name Type Description
Optional

recipientCity String [0..40] The recipient city code in the ISO 3166-1 alpha-3 format.
Optional recipientCountry String [0..50] The recipient country code. Format: ISO 3166-1 (Alpha 2 / Alpha 3 / Number-3) or the country name. We recommend to pass a two/three-letter ISO country code.
Optional

recipientAddressLine1 String [0..50] The recipient address. Can contain Latin characters only.
Optional

recipientPostalCode String [0..9] Postal code of the recipient.
Optional

recipientState String [0..50] The recipient state code. Format: full ISO 3166-2 code, its part, or the state/region name. Can contain Latin characters only. We recommend to pass a two-letter ISO state code.
Optional recipientAccount String [0..32] Recipient's account number.
Optional recipientAccountNumberType Integer [1..2] Type of recipient account. Available values:
  • 1 - RTN + Bank Account;
  • 2 - IBAN;
  • 3 - Card Account;
  • 4 - E-mail;
  • 5 - Phone Number;
  • 6 - Bank account number (BAN) + Bank Identification Code (BIC);
  • 7 - Wallet Id;
  • 8 - Social Network Id;
  • 100 - Other.

Mandatory

recipientLastName String [0..35] Recipient's last name.
Mandatory

recipientFirstName String [0..35] Recipient's first name.
Optional

recipientMiddleName String [0..35] Recipient's middle name.
Optional

recipientCombinedName String [0..99] Recipient's full name.
Optional

recipientIdType String [1..8] Type of the recipient's identifying document provided.
Allowed values:
  • IDTP1 - Passport
  • IDTP2 - Driving license
  • IDTP3 - Social card
  • IDTP4 - Citizen ID card
  • IDTP5 - Certificate of Business
  • IDTP6 - Refugee certificate
  • IDTP7 - Residence permit
  • IDTP8 - Foreign passport
  • IDTP9 - Official passport
  • IDTP10 - Temporary passport
  • IDTP11 - Sailor's passport
Optional

recipientIdNumber String [1..99] Number of the recipient's identifying document provided.
Optional

recipientBirthday String [1..20] Recipient's birth date in the format YYYYMMDD.

The toCard block (if crediting is done by a third-party system, this block must be absent) consists of the following possible parameters:

Required Name Type Description
Conditional

pan String [1..19] The number of the card to be credited.
Optional

expirationYear Integer [4] The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
Optional

expirationMonth Integer [2] The month of expiration of the card that is to be credited. Available values are as follows: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12.
Optional

cardholderName String [1..26] The name of the holder of the card that is to be credited.
Conditional

seToken String Encrypted card data. Must be passed if used instead of the card data.
The mandatory parameters for seToken string are timestamp, UUID, bindingId, MDORDER. Click here for more information about seToken generation.

The following parameters are also passed during the authentication via the 3DS2 protocol:

Required Name Type Description
Optional

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSVer2FinishUrl String [1..512] URL where Customer should be redirected after authentication on ACS Server.
Optional

threeDSMethodNotificationUrl String [1..512] URL where notification about performed 3DS-method should be sent to.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

info String The result of an attempt to transfer funds.

The value in case of a successful transfer: "Your payment has been processed, redirecting...".

The value in case of an error: "Redirecting..."
Optional

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Optional

redirect String [1..512] This parameter is returned if the payment is successful and that payment did not include check for 3-D Secure involvement. Merchants can use it if they want to redirect the user to the payment gateway page. If they have their own response page then this value can be ignored.
Optional

originalPaymentNetRefNum String [1..36] The identifier of the original or previous successful transaction in the payment system in relation to the performed stored-credential transaction - TRN ID. Is passed when tii = R,U, or F.
Is mandatory when using merchant's stored credentials in stored credential transfers.
Optional

threeDSSDKKey String Device data encryption key.

Parameter is mandatory for SDK flow.

Optional

threeDSAcsTransactionId String ID of 3DS transaction on ACS.

Parameter is mandatory for SDK flow.

Optional

threeDSAcsRefNumber String Reference number on ACS.
Optional

threeDSAcsSignedContent String Signed content for SDK, content includes ACS URL.

Parameter is mandatory for SDK flow.

Optional

threeDSDsTransID String Unique identifier of transaction witin IPS.

Parameter is mandatory for SDK flow.

Conditional statusResponse Object Parameters of the order status. This block is returned only if you have a corresponding setting enabled. To enable this feature please contact support. See nested parameters.
Optional

debitTransactionReference String [1..19] Reference to AFT operation. This parameter is used for OCT operations for P2P transfers (AFT+OCT) using Mastercard. It is automatically filled by statusResponse.debitTransactionReference parameter from the corresponding AFT transaction (automatically generated by Payment Gateway) or by the corresponding parameter received in the OCT request.

The parameters of statusResponse block:

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 2 - order amount is fully authorized;
  • 3 - authorization reversed;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined;
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

panMaskedFrom String [1..19] The masked number of the card to be debited.
Optional

panMaskedTo String [1..19] The masked number of the card to be credited.
Optional

amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
Optional

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Optional

creationDate Integer Date of order registration.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Mandatory

resultCode Integer Error code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
Optional

orderParams Object An object with the merchant's attributes of the order. More than one orderParams object can be presented in the response.
The object must be passed as follows: {"param":"value","param2":"value2"}.
Optional

operationList Object Object containing information on the transactions completed in the order. More than one operationList object can be present in the response.
The parameters that can be passed here are described below.
Optional

binding String Identifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
Optional

detokenizedPanRepresentation String [1..19] The detokenized card number (the last 4 digits or in a masked form).
Optional

detokenizedPanExpiryDate String The card's detokenized expiration date in the following format: "YYYYMM".
Optional

paymentNetRefNum String [1..512] Original Network Reference Number - a unique identifier assigned by the card network (e.g., Mastercard, Visa) to the original transaction (such as a purchase or authorization). When a follow-up transaction is initiated (e.g., refund, recurring payment), this number must be included to:
  • Link the new transaction to the original one
  • Ensure proper tracking and reconciliation
  • Meet network compliance requirements
This parameter is returned only if the getP2PStatus version is 7 or higher.

When authenticating via the 3DS2 protocol, the following parameters are returned during the initial request:

Required Name Type Description
Mandatory

threeDSServerTransId String [1..36] Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
Optional

threeDSMethodUrl String [1..512] URL of ACS Server for gathering browser data.
Mandatory

threeDSMethodUrlServer String [1..512] URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
Optional

threeDSMethodDataPacked String [1..1024] Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
Optional

threeDSMethodURLServerDirect String [1..512] URL of 3dsmethod.do for executing the 3DS method on 3DS Server via Payment Gateway (subject to respective Merchant-level permission).

Below are the parameters to be present in the response, after a repeated request for the payment and the need to redirect the client to the ACS during the authentication via the 3DS2 protocol:

Required Name Type Description
Conditional

acsUrl String [1..512] The URL address for redirecting to ACS. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. For details see Redirect to ACS.
Conditional

packedCReq String Packed challenge request data. It is returned in a successful response in case of a 3D-Secure payment, when redirect to the ACS is needed. This value should be used as the ACS link creq parameter (acsUrl) to redirect the client to the ACS. For details see Redirect to ACS.

To complete the transaction use /p2p/finishThreeDsVer2.do.

Examples

Example of OCT transaction

curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/instantPerformP2P.do' '
--header 'Content-Type: application/json' \
--data '{
  "username": "test_user",
  "password": "test_user_password",
  "email" : "test@example.com",
  "orderNumber" : "abcd1234abchh",
  "amount" : 1500,
  "currency" : "978",
  "returnUrl" : "https://mybestmerchantreturnurl.com",
  "failUrl" : "https://failUrl.com",
  "toCard": {
        "pan": "4000001111111118"
    },
    "transactionTypeIndicator": "G",
    "features": {
        "feature": [
            "WITHOUT_FROM_CARD"
        ]
    }
  }'

Example of the response to the request:

{
    "errorCode": 0,
    "info": "Your order is proceeded, redirecting...",
    "acsUrl": "https://example.com/acs2/acs/creq",
    "is3DSVer2": true,
    "packedCReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhZmMxNjhhLTk0YjQtNGViMy04ZTJlLTgwZjZjMTg2NjY5ZCIsIm1lc3NhZ2VUeXBlIjoiQ1JlcSIsIm1lc3NhZ2VWZXJzaW9uIjoiMi4xLjAiLCJhY3NUcmFuc0lEIjoiOWM3NTkxMmEtZTg0NC00ODgyLWI5YzctYzZmYmMzNjIyNGQ3IiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0"
}

P2P transfer status

To obtain the status of a registered P2P order, use https://dev.processing.ae/payment/rest/api/p2p/getP2PStatus.do request.


When sending the request, you should use the header: Content-Type: application/json

Request parameters

Required Name Type Description
Mandatory

username String [1..30] Merchant's API account login.
Mandatory

password String [1..30] Merchant's API account password.
Optional

language String [2] ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
Supported languages: en,ru,el,ro,bg,pt,sw,hu,it,pl,de,fr,kh,cn,es,ka,da,et,fi,lt,lv,nl,sv.
Conditional

orderId String [1..36] Order number in the payment gateway. Unique within the payment gateway.
Conditional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.

Response parameters

Required Name Type Description
Mandatory

errorCode String [1..2] Information parameter in case of an error, which may have different code values:
  • 0 value - indicates success of the request processing;
  • another number value (1-99) - indicates an error for more details of which errorMessage parameter must be inspected.
It also can be missing if the result has not caused any error.
Mandatory

errorMessage String [1..512] Information parameter that is an error description in a case of error occurance. errorMessage value can vary, so it should not be hardcoded.
Language of the description is set in language parameter of the request.
Optional

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 2 - order amount is fully authorized;
  • 3 - authorization reversed;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined;
Optional

orderNumber String [1..36] Order number (ID) in the merchant's system, must be unique for each order.
Optional

panMaskedFrom String [1..19] The masked number of the card to be debited.
Optional

panMaskedTo String [1..19] The masked number of the card to be credited.
Optional

amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
Optional

currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
Optional

creationDate Integer Date of order registration.
Optional

orderDescription String [1..600] Order description passed to the payment gateway during the registration.
It is not allowed to fill this parameter with personal data or payment data (card numbers, etc.). This requirement is due to the fact that the order description is not masked in Merchant Portal and log files.
Optional

ip String [1..39] Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Mandatory

resultCode Integer Error code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
Optional

orderParams Object An object with the merchant's attributes of the order. More than one orderParams object can be presented in the response.
The object must be passed as follows: {"param":"value","param2":"value2"}.
Optional

operationList Object Object containing information on the transactions completed in the order. More than one operationList object can be present in the response.
The parameters that can be passed here are described below.
Optional

binding String Identifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
Optional

detokenizedPanRepresentation String [1..19] The detokenized card number (the last 4 digits or in a masked form).
Optional

detokenizedPanExpiryDate String The card's detokenized expiration date in the following format: "YYYYMM".
Optional

paymentNetRefNum String [1..512] Original Network Reference Number - a unique identifier assigned by the card network (e.g., Mastercard, Visa) to the original transaction (such as a purchase or authorization). When a follow-up transaction is initiated (e.g., refund, recurring payment), this number must be included to:
  • Link the new transaction to the original one
  • Ensure proper tracking and reconciliation
  • Meet network compliance requirements
This parameter is returned only if the getP2PStatus version is 7 or higher.

payerData element contains the following parameters.

Required Name Type Description
Optional

paymentAccountReference String [1..29] The unique account number of the client, which links all their payment means within the IPS (cards and tokens).

Below are possible parameters of the operationList block.

Required Name Type Description
Optional

operationType String Transaction type. The following values are available:
  • P2P_VERIFY - requests the fee amount;
  • P2P_DEBIT - debits the money;
  • P2P_CREDIT - credits the money;
  • P2P_DEBIT_REVERSAL - debit cancellation;
  • P2P_CREDIT_REVERSAL - credit cancellation;
  • P2P_TRANSFER - card-to-card money transfer;
  • P2P_TRANSFER_REVERSAL - automatic refund if an error occurs during the transfer.
    Optional

    amount Integer [0..12] Payment amount in minor currency units (e.g. in cents).
    Optional

    currency String [3] ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
    Optional

    datetime String Date and time of the transaction.
    Optional

    resultCode String Response code from the processing bank. Contains a numeric value. See the list of action codes here.
    Optional

    resultCodeDescription String [1..512] Description of the transaction error code.
    Optional

    maskedPan String [1..19] Masked number of the card or token used for the payment.
    Optional

    cardholderName String [1..26] Cardholder's name (if available).
    Optional

    refNum String [12] Unique transaction identifier assigned by the acquiring bank during a bank card payment processing. The RRN is generated solely by the acquiring bank and is used for subsequent transaction search, verification, and settlement (including refunds, and investigations).

    Examples

    Request example

    curl -X POST 'https://dev.processing.ae/payment/rest/api/p2p/getP2PStatus.do' -H 'Content-Type: application/json' --data-raw '{ 
      "username": "test_user",
      "password": "test_user_password",
      "orderId" : "0a4eaae8-653a-71a9-8259-46fc00a8ea58"
    }'

    Response example

    {
      "orderStatus": 0,
      "errorCode": 0,
      "errorMessage": "Successful",
      "orderNumber": "2009",
      "amount": 50000,
      "currency": "978",
      "creationDate": 1674137044330,
      "orderParams": [],
      "operationList": [],
      "resultCode": 0
    }

    Finishing a 3DS2 P2P transaction via API

    To complete a transaction, the merchant sends a transaction ID to the gateway using the https://dev.processing.ae/payment/rest/api/p2p/finishThreeDsVer2.do method.


    When sending the request, you should use the header: Content-type: application/x-www-form-urlencoded

    Request parameters

    Required Name Type Description
    Mandatory

    username String [1..30] Merchant's API account login.
    Mandatory

    password String [1..30] Merchant's API account password.
    Mandatory

    tDsTransId String [1..36] Unique identifier of a transaction received from 3DS server.

    Response parameters

    This request does not return any JSON parameters in response. Instead, it redirects the customer to one of the following URLs:

    Examples

    Request example

    curl --request POST \
      --url https://dev.processing.ae/payment/rest/api/p2p/finishThreeDsVer2.do \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data '{
        "username": "test_user",
        "password": "test_user_password",
        "threeDSServerTransId": "65020d0c-2627-4a45-8eab-b93b58fc52ae"
    }'

    Redirect URL example

    Categories:
    P2P API V1
    Categories
    Search results