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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
MandatoryorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
MandatoryamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
MandatorycurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
MandatoryreturnUrlString [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>.
OptionalfailUrlString [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>.
OptionalorderDescriptionString [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.
OptionallanguageString [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.
OptionalclientIdString [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.
OptionalmerchantLoginString [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.
OptionaldynamicCallbackUrlString [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.
OptionalsessionTimeoutSecsInteger [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.
OptionalsessionExpiredDateStringData 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.
OptionalmccInteger [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.
OptionalbindingIdString [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.
The request must contain either bindingId, or seToken.
OptionalcreditBindingIdString [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).
MandatorytransactionTypeIndicatorStringIndicator 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.
MandatoryfeaturesObjectField 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"] }
OptionalparamsObjectFields 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.
OptionalshippingPayerDataObjectObject containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalpreOrderPayerDataObjectObject containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalorderPayerDataObjectObject containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
OptionalbillingAndShippingAddressMatchIndicatorString [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.
ConditionalbillingPayerDataObjectA 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.
ConditionalbillingRecipientDataObjectA 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.
OptionaldebitMdOrderString [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).
ConditionaldebitTransactionReferenceString [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.
OptionaltransactionPurposeStringTransaction 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
OptionalserviceProcessingTypeStringThe 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:

RequiredNameTypeDescription
OptionalshippingCityString [1..50]The customer's city (from the delivery address)
OptionalshippingCountryString [1..50]The customer's country
OptionalshippingAddressLine1String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine2String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine3String [1..50]The customer's primary address (from the shipping address)
OptionalshippingPostalCodeString [1..16]The customer's zip code for delivery
OptionalshippingStateString [1..50]Customer's state/region (from delivery address)
OptionalshippingMethodIndicatorInteger [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.)
OptionaldeliveryTimeframeInteger [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
OptionaldeliveryEmail 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:

RequiredNameTypeDescription
OptionalpreOrderDateString [10]Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
OptionalpreOrderPurchaseIndInteger [2]Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
OptionalreorderItemsIndInteger [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:

RequiredNameTypeDescription
OptionalhomePhoneString [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.
OptionalworkPhoneString [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.

ConditionalmobilePhoneString [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).

RequiredNameTypeDescription
OptionalbillingCityString [0..50]The city registered on a specific card of the Issuing Bank.
OptionalbillingCountryString [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.
OptionalbillingAddressLine1String [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.
OptionalbillingAddressLine2String [0..50]The address registered on a specific card of the Issuing Bank. Line 2.
OptionalbillingAddressLine3String [0..50]The address registered on a specific card of the Issuing Bank. Line 3.
OptionalbillingPostalCodeString [0..9]Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
OptionalbillingStateString [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.
MandatorypayerAccountString [1..32]Payer's account number.
OptionalpayerLastNameString [1..64]Payer's last name.
OptionalpayerFirstNameString [1..35]Payer's first name.
OptionalpayerMiddleNameString [1..35]Payer's middle name.
OptionalpayerCombinedNameString [1..99]Payer's full name.
OptionalpayerIdTypeString [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
OptionalpayerIdNumberString [1..100]Number of the payer's identifying document (e.g. passport) provided.
OptionalpayerBirthdayString [1..20]Payer's birth date in the YYYYMMDD format.
ConditionalpayerAccountNumberTypeString [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).

RequiredNameTypeDescription
OptionalrecipientCityString [0..40]The recipient city code in the ISO 3166-1 alpha-3 format.
OptionalrecipientCountryString [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.
OptionalrecipientAddressLine1String [0..50]The recipient address. Can contain Latin characters only.
OptionalrecipientPostalCodeString [0..9]Postal code of the recipient.
OptionalrecipientStateString [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.
OptionalrecipientAccountString [0..32]Recipient's account number.
OptionalrecipientAccountNumberTypeInteger [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.

MandatoryrecipientLastNameString [0..35]Recipient's last name.
MandatoryrecipientFirstNameString [0..35]Recipient's first name.
OptionalrecipientMiddleNameString [0..35]Recipient's middle name.
OptionalrecipientCombinedNameString [0..99]Recipient's full name.
OptionalrecipientIdTypeString [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
OptionalrecipientIdNumberString [1..99]Number of the recipient's identifying document provided.
OptionalrecipientBirthdayString [1..20]Recipient's birth date in the format YYYYMMDD.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalformUrlString [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.
OptionalorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
OptionalorderNumberString [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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
MandatoryorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
OptionallanguageString [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.
OptionalamountString [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.
OptionalmccInteger [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.
OptionalbillingPayerDataObjectA 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.
OptionalbillingRecipientDataObjectA block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
MandatorytoCardObjectA block with the attributes of the card to be credited. See nested parameters.

The toCard block consists of the following possible parameters:

RequiredNameTypeDescription
ConditionalpanString [1..19]The number of the card to be credited.
OptionalexpirationYearInteger [4]The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
OptionalexpirationMonthInteger [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.
OptionalcardholderNameString [1..26]The name of the holder of the card that is to be credited.
ConditionalseTokenStringEncrypted 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).

RequiredNameTypeDescription
OptionalbillingCityString [0..50]The city registered on a specific card of the Issuing Bank.
OptionalbillingCountryString [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.
OptionalbillingAddressLine1String [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.
OptionalbillingAddressLine2String [0..50]The address registered on a specific card of the Issuing Bank. Line 2.
OptionalbillingAddressLine3String [0..50]The address registered on a specific card of the Issuing Bank. Line 3.
OptionalbillingPostalCodeString [0..9]Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
OptionalbillingStateString [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.
MandatorypayerAccountString [1..32]Payer's account number.
OptionalpayerLastNameString [1..64]Payer's last name.
OptionalpayerFirstNameString [1..35]Payer's first name.
OptionalpayerMiddleNameString [1..35]Payer's middle name.
OptionalpayerCombinedNameString [1..99]Payer's full name.
OptionalpayerIdTypeString [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
OptionalpayerIdNumberString [1..100]Number of the payer's identifying document (e.g. passport) provided.
OptionalpayerBirthdayString [1..20]Payer's birth date in the YYYYMMDD format.
ConditionalpayerAccountNumberTypeString [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).

RequiredNameTypeDescription
OptionalrecipientCityString [0..40]The recipient city code in the ISO 3166-1 alpha-3 format.
OptionalrecipientCountryString [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.
OptionalrecipientAddressLine1String [0..50]The recipient address. Can contain Latin characters only.
OptionalrecipientPostalCodeString [0..9]Postal code of the recipient.
OptionalrecipientStateString [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.
OptionalrecipientAccountString [0..32]Recipient's account number.
OptionalrecipientAccountNumberTypeInteger [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.

MandatoryrecipientLastNameString [0..35]Recipient's last name.
MandatoryrecipientFirstNameString [0..35]Recipient's first name.
OptionalrecipientMiddleNameString [0..35]Recipient's middle name.
OptionalrecipientCombinedNameString [0..99]Recipient's full name.
OptionalrecipientIdTypeString [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
OptionalrecipientIdNumberString [1..99]Number of the recipient's identifying document provided.
OptionalrecipientBirthdayString [1..20]Recipient's birth date in the format YYYYMMDD.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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:

RequiredNameTypeDescription
OptionalfeeAmountInteger [1..12]Fee amount.
OptionalfeeCurrencyString [3]The ISO 4217 code of the fee currency.
OptionalfeeDescriptionString [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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
OptionallanguageString [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.
OptionalmccInteger [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.
MandatoryorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
MandatorytoCardObjectA block with the attributes of the card to be credited. See nested parameters.

The toCard block consists of the following possible parameters:

RequiredNameTypeDescription
ConditionalbindingIdString [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.
ConditionalpanString [1..19]The number of the card to be credited.
OptionalexpirationYearInteger [4]The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
OptionalexpirationMonthInteger [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.
OptionalcardholderNameString [1..26]The name of the holder of the card that is to be credited.
ConditionalseTokenStringEncrypted 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

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalfeeAmountInteger [1..12]Fee amount.
OptionalfeeCurrencyString [3]The ISO 4217 code of the fee currency.
OptionalfeeDescriptionString [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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
OptionallanguageString [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.
MandatoryorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
OptionalemailString [1..40]The payer's email address.
OptionalamountString [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.
OptionaltypeStringIn OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
OptionalamountInputInteger [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).
OptionalcaptchaStringCAPTCHA (a text intended to distinguish human from machine input)
OptionalthreeDSSDKBooleanPossible values: true or false. Flag showing that payment comes from 3DS SDK.
OptionalthreeDSSDKEncDataStringEncrypted data about device. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKReferenceNumberString3DS2 SDK official identifier
OptionalthreeDSSDKEphemPubKeyStringPublic part of ephemeral key. Required to etablish session with ACS. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKAppIdStringUnique identifier of SDK.Parameter is mandatory for SDK flow.
OptionalthreeDSSDKTransIdStringUnique identifier of transaction within SDK. Parameter is mandatory for SDK flow.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.
ConditionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
ConditionalthreeDSVer2MdOrderString [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.
OptionalbindingNotNeededBooleanAllowed 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.
ConditionaloriginalPaymentNetRefNumString [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.
OptionalmccInteger [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.
ConditionaloriginalSchemeTransactionIdString [1..22]The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
OptionalparamsObjectFields 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.
OptionalshippingPayerDataObjectObject containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalpreOrderPayerDataObjectObject containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalorderPayerDataObjectObject containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
OptionalbillingAndShippingAddressMatchIndicatorString [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.
ConditionalbillingPayerDataObjectA 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.
ConditionalbillingRecipientDataObjectA 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.
MandatorytoCardObjectA block with the attributes of the card to be credited. See nested parameters.
ConditionaldebitTransactionReferenceString [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.
OptionaltransactionPurposeStringTransaction 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
OptionalserviceProcessingTypeStringThe 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:

RequiredNameTypeDescription
OptionalshippingCityString [1..50]The customer's city (from the delivery address)
OptionalshippingCountryString [1..50]The customer's country
OptionalshippingAddressLine1String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine2String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine3String [1..50]The customer's primary address (from the shipping address)
OptionalshippingPostalCodeString [1..16]The customer's zip code for delivery
OptionalshippingStateString [1..50]Customer's state/region (from delivery address)
OptionalshippingMethodIndicatorInteger [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.)
OptionaldeliveryTimeframeInteger [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
OptionaldeliveryEmail 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:

RequiredNameTypeDescription
OptionalpreOrderDateString [10]Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
OptionalpreOrderPurchaseIndInteger [2]Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
OptionalreorderItemsIndInteger [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:

RequiredNameTypeDescription
OptionalhomePhoneString [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.
OptionalworkPhoneString [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.

ConditionalmobilePhoneString [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).

RequiredNameTypeDescription
OptionalbillingCityString [0..50]The city registered on a specific card of the Issuing Bank.
OptionalbillingCountryString [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.
OptionalbillingAddressLine1String [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.
OptionalbillingAddressLine2String [0..50]The address registered on a specific card of the Issuing Bank. Line 2.
OptionalbillingAddressLine3String [0..50]The address registered on a specific card of the Issuing Bank. Line 3.
OptionalbillingPostalCodeString [0..9]Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
OptionalbillingStateString [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.
MandatorypayerAccountString [1..32]Payer's account number.
OptionalpayerLastNameString [1..64]Payer's last name.
OptionalpayerFirstNameString [1..35]Payer's first name.
OptionalpayerMiddleNameString [1..35]Payer's middle name.
OptionalpayerCombinedNameString [1..99]Payer's full name.
OptionalpayerIdTypeString [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
OptionalpayerIdNumberString [1..100]Number of the payer's identifying document (e.g. passport) provided.
OptionalpayerBirthdayString [1..20]Payer's birth date in the YYYYMMDD format.
ConditionalpayerAccountNumberTypeString [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).

RequiredNameTypeDescription
OptionalrecipientCityString [0..40]The recipient city code in the ISO 3166-1 alpha-3 format.
OptionalrecipientCountryString [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.
OptionalrecipientAddressLine1String [0..50]The recipient address. Can contain Latin characters only.
OptionalrecipientPostalCodeString [0..9]Postal code of the recipient.
OptionalrecipientStateString [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.
OptionalrecipientAccountString [0..32]Recipient's account number.
OptionalrecipientAccountNumberTypeInteger [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.

MandatoryrecipientLastNameString [0..35]Recipient's last name.
MandatoryrecipientFirstNameString [0..35]Recipient's first name.
OptionalrecipientMiddleNameString [0..35]Recipient's middle name.
OptionalrecipientCombinedNameString [0..99]Recipient's full name.
OptionalrecipientIdTypeString [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
OptionalrecipientIdNumberString [1..99]Number of the recipient's identifying document provided.
OptionalrecipientBirthdayString [1..20]Recipient's birth date in the format YYYYMMDD.

The toCard block consists of the following possible parameters:

RequiredNameTypeDescription
ConditionalpanString [1..19]The number of the card to be credited.
OptionalexpirationYearInteger [4]The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
OptionalexpirationMonthInteger [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.
OptionalcardholderNameString [1..26]The name of the holder of the card that is to be credited.
ConditionalseTokenStringEncrypted 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:

RequiredNameTypeDescription
OptionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
OptionalerrorMessageString [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.
OptionalinfoStringThe 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..."
ConditionalacsUrlString [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.
ConditionalpaReqString [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.
OptionaltermUrlString [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.
OptionaloriginalPaymentNetRefNumString [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.
ConditionalstatusResponseObjectParameters 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.
OptionaldebitTransactionReferenceString [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:

RequiredNameTypeDescription
Mandatoryis3DSVer2BooleanPossible values: true or false. Flag showing that payment uses 3DS2.
MandatorythreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSMethodUrlString [1..512]URL of ACS Server for gathering browser data.
MandatorythreeDSMethodUrlServerString [1..512]URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
OptionalthreeDSMethodDataPackedString [1..1024]Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
OptionalthreeDSMethodURLServerDirectString [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:

RequiredNameTypeDescription
ConditionalacsUrlString [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.
ConditionalpackedCReqStringPacked 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:

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalorderStatusIntegerThe 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;
OptionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalpanMaskedFromString [1..19]The masked number of the card to be debited.
OptionalpanMaskedToString [1..19]The masked number of the card to be credited.
OptionalamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
OptionalcurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionalcreationDateIntegerDate of order registration.
OptionalorderDescriptionString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
MandatoryresultCodeIntegerError code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
OptionalorderParamsObjectAn 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"}.
OptionaloperationListObjectObject 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.
OptionalbindingStringIdentifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
OptionaldetokenizedPanRepresentationString [1..19]The detokenized card number (the last 4 digits or in a masked form).
OptionaldetokenizedPanExpiryDateStringThe card's detokenized expiration date in the following format: "YYYYMM".
OptionalpaymentNetRefNumString [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.
OptionaldebitTransactionReferenceString [1..19]Reference to AFT operation. This parameter is automatically generated by Payment Gateway for AFT operations using Mastercard. It can be further used in a subsequent OCT operation as a reference to the previous AFT operation.

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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
OptionallanguageString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
OptionalemailString [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.
OptionaltypeStringIn OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
MandatoryorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
OptionalamountInputInteger [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).
OptionalcaptchaStringCAPTCHA (a text intended to distinguish human from machine input)
OptionalthreeDSSDKBooleanPossible values: true or false. Flag showing that payment comes from 3DS SDK.
OptionalthreeDSSDKEncDataStringEncrypted data about device. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKReferenceNumberString3DS2 SDK official identifier
OptionalthreeDSSDKEphemPubKeyStringPublic part of ephemeral key. Required to etablish session with ACS. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKAppIdStringUnique identifier of SDK.Parameter is mandatory for SDK flow.
OptionalthreeDSSDKTransIdStringUnique identifier of transaction within SDK. Parameter is mandatory for SDK flow.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.
ConditionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
ConditionalthreeDSVer2MdOrderString [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.
OptionalbindingNotNeededBooleanAllowed 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.
ConditionaloriginalPaymentNetRefNumString [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.
OptionalmccInteger [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.
ConditionaloriginalSchemeTransactionIdString [1..22]The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
OptionalparamsObjectFields 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.
OptionalshippingPayerDataObjectObject containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalpreOrderPayerDataObjectObject containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalorderPayerDataObjectObject containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
OptionalbillingAndShippingAddressMatchIndicatorString [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.
OptionalbillingPayerDataObjectA 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.
OptionalbillingRecipientDataObjectA block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
MandatorytoCardObjectA block with the attributes of the card to be credited. See nested parameters.
ConditionaldebitTransactionReferenceString [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.
OptionaltransactionPurposeStringTransaction 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
OptionalserviceProcessingTypeStringThe 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:

RequiredNameTypeDescription
ConditionalbindingIdString [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.
ConditionalpanString [1..19]The number of the card to be credited.
OptionalexpirationYearInteger [4]The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
OptionalexpirationMonthInteger [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.
OptionalcardholderNameString [1..26]The name of the holder of the card that is to be credited.
ConditionalseTokenStringEncrypted 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:

RequiredNameTypeDescription
OptionalshippingCityString [1..50]The customer's city (from the delivery address)
OptionalshippingCountryString [1..50]The customer's country
OptionalshippingAddressLine1String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine2String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine3String [1..50]The customer's primary address (from the shipping address)
OptionalshippingPostalCodeString [1..16]The customer's zip code for delivery
OptionalshippingStateString [1..50]Customer's state/region (from delivery address)
OptionalshippingMethodIndicatorInteger [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.)
OptionaldeliveryTimeframeInteger [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
OptionaldeliveryEmail 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:

RequiredNameTypeDescription
OptionalpreOrderDateString [10]Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
OptionalpreOrderPurchaseIndInteger [2]Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
OptionalreorderItemsIndInteger [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:

RequiredNameTypeDescription
OptionalhomePhoneString [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.
OptionalworkPhoneString [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.

ConditionalmobilePhoneString [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).

RequiredNameTypeDescription
OptionalbillingCityString [0..50]The city registered on a specific card of the Issuing Bank.
OptionalbillingCountryString [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.
OptionalbillingAddressLine1String [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.
OptionalbillingAddressLine2String [0..50]The address registered on a specific card of the Issuing Bank. Line 2.
OptionalbillingAddressLine3String [0..50]The address registered on a specific card of the Issuing Bank. Line 3.
OptionalbillingPostalCodeString [0..9]Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
OptionalbillingStateString [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.
MandatorypayerAccountString [1..32]Payer's account number.
OptionalpayerLastNameString [1..64]Payer's last name.
OptionalpayerFirstNameString [1..35]Payer's first name.
OptionalpayerMiddleNameString [1..35]Payer's middle name.
OptionalpayerCombinedNameString [1..99]Payer's full name.
OptionalpayerIdTypeString [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
OptionalpayerIdNumberString [1..100]Number of the payer's identifying document (e.g. passport) provided.
OptionalpayerBirthdayString [1..20]Payer's birth date in the YYYYMMDD format.
ConditionalpayerAccountNumberTypeString [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).

RequiredNameTypeDescription
OptionalrecipientCityString [0..40]The recipient city code in the ISO 3166-1 alpha-3 format.
OptionalrecipientCountryString [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.
OptionalrecipientAddressLine1String [0..50]The recipient address. Can contain Latin characters only.
OptionalrecipientPostalCodeString [0..9]Postal code of the recipient.
OptionalrecipientStateString [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.
OptionalrecipientAccountString [0..32]Recipient's account number.
OptionalrecipientAccountNumberTypeInteger [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.

MandatoryrecipientLastNameString [0..35]Recipient's last name.
MandatoryrecipientFirstNameString [0..35]Recipient's first name.
OptionalrecipientMiddleNameString [0..35]Recipient's middle name.
OptionalrecipientCombinedNameString [0..99]Recipient's full name.
OptionalrecipientIdTypeString [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
OptionalrecipientIdNumberString [1..99]Number of the recipient's identifying document provided.
OptionalrecipientBirthdayString [1..20]Recipient's birth date in the format YYYYMMDD.

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

MandatoryNameTypeDescription
OptionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalinfoStringThe 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..."
ConditionalacsUrlString [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.
ConditionalpaReqString [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.
ConditionaltermUrlString [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.
ConditionalstatusResponseObjectParameters 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.
OptionaldebitTransactionReferenceString [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:

RequiredNameTypeDescription
Mandatoryis3DSVer2BooleanPossible values: true or false. Flag showing that payment uses 3DS2.
MandatorythreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSMethodUrlString [1..512]URL of ACS Server for gathering browser data.
MandatorythreeDSMethodUrlServerString [1..512]URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
OptionalthreeDSMethodDataPackedString [1..1024]Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
OptionalthreeDSMethodURLServerDirectString [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:

RequiredNameTypeDescription
ConditionalacsUrlString [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.
ConditionalpackedCReqStringPacked 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:

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalorderStatusIntegerThe 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;
OptionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalpanMaskedFromString [1..19]The masked number of the card to be debited.
OptionalpanMaskedToString [1..19]The masked number of the card to be credited.
OptionalamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
OptionalcurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionalcreationDateIntegerDate of order registration.
OptionalorderDescriptionString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
MandatoryresultCodeIntegerError code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
OptionalorderParamsObjectAn 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"}.
OptionaloperationListObjectObject 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.
OptionalbindingStringIdentifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
OptionaldetokenizedPanRepresentationString [1..19]The detokenized card number (the last 4 digits or in a masked form).
OptionaldetokenizedPanExpiryDateStringThe card's detokenized expiration date in the following format: "YYYYMM".
OptionalpaymentNetRefNumString [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.
OptionaldebitTransactionReferenceString [1..19]Reference to AFT operation. This parameter is automatically generated by Payment Gateway for AFT operations using Mastercard. It can be further used in a subsequent OCT operation as a reference to the previous AFT operation.

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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
OptionallanguageString [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.
MandatoryorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalclientIdString [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.
OptionalbindingIdString [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.
The request must contain either bindingId, or seToken.
ConditionaloriginalSchemeTransactionIdString [1..22]The identifier of the original successful Mastercard transaction.
Is mandatory when using merchant's stored credentials in stored credential transfers.
OptionalcreditBindingIdString [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).
OptionalemailString [1..40]The payer's email address.
MandatoryamountString [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.
MandatorycurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionalorderDescriptionString [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.
OptionalparamsObjectFields 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.
OptionalfeeInputInteger [0..8]Fee amount in minimum currency units. Must be enabled by respective Merchant-level permission in the Gateway.
MandatoryreturnUrlString [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>.
OptionalfailUrlString [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>.
MandatorytransactionTypeIndicatorStringIndicator 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.
MandatoryfeaturesObjectField 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"] }
OptionalmccInteger [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.
OptionalmerchantLoginString [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.
OptionaldynamicCallbackUrlString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
OptionaltypeStringIn OCT transaction, it is necessary to pass the corresponding value in this parameter:
WITHOUT_TO_CARD - without indication of the card to be credited.
OptionalcaptchaStringCAPTCHA (a text intended to distinguish human from machine input)
OptionalthreeDSSDKBooleanPossible values: true or false. Flag showing that payment comes from 3DS SDK.
OptionalthreeDSSDKEncDataStringEncrypted data about device. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKReferenceNumberString3DS2 SDK official identifier
OptionalthreeDSSDKEphemPubKeyStringPublic part of ephemeral key. Required to etablish session with ACS. Parameter is mandatory for SDK flow.
OptionalthreeDSSDKAppIdStringUnique identifier of SDK.Parameter is mandatory for SDK flow.
OptionalthreeDSSDKTransIdStringUnique identifier of transaction within SDK. Parameter is mandatory for SDK flow.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.
ConditionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
ConditionalthreeDSVer2MdOrderString [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.
OptionalbindingNotNeededBooleanAllowed 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.
ConditionaloriginalPaymentNetRefNumString [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.
OptionalshippingPayerDataObjectObject containing customer delivery data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalpreOrderPayerDataObjectObject containing pre-order data. It is used for further 3DS authentication of the client. See nested parameters.
OptionalorderPayerDataObjectObject containing data about the order payer. It is used for further 3DS authentication of the client. See nested parameters.
OptionalbillingAndShippingAddressMatchIndicatorString [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.
ConditionalbillingPayerDataObjectA 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.
ConditionalbillingRecipientDataObjectA block with the data about the recipient. Mandatory if the feature is enabled for the merchant on Payment Gateway side. See nested parameters.
MandatorytoCardObjectA block with the attributes of the card to be credited. See nested parameters.
OptionaldebitMdOrderString [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).
ConditionaldebitTransactionReferenceString [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.
OptionaltransactionPurposeStringTransaction 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
OptionalserviceProcessingTypeStringThe 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:

RequiredNameTypeDescription
OptionalshippingCityString [1..50]The customer's city (from the delivery address)
OptionalshippingCountryString [1..50]The customer's country
OptionalshippingAddressLine1String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine2String [1..50]The customer's primary address (from the shipping address)
OptionalshippingAddressLine3String [1..50]The customer's primary address (from the shipping address)
OptionalshippingPostalCodeString [1..16]The customer's zip code for delivery
OptionalshippingStateString [1..50]Customer's state/region (from delivery address)
OptionalshippingMethodIndicatorInteger [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.)
OptionaldeliveryTimeframeInteger [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
OptionaldeliveryEmail 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:

RequiredNameTypeDescription
OptionalpreOrderDateString [10]Expected date when delivery will be available (for pre-ordered purchases), in the format YYYYYYMMDD.
OptionalpreOrderPurchaseIndInteger [2]Indicator of a customer placing an order for available or future delivery.
Possible values:
  • 01 - delivery available;
  • 02 - future delivery
OptionalreorderItemsIndInteger [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:

RequiredNameTypeDescription
OptionalhomePhoneString [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.
OptionalworkPhoneString [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.

ConditionalmobilePhoneString [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).

RequiredNameTypeDescription
OptionalbillingCityString [0..50]The city registered on a specific card of the Issuing Bank.
OptionalbillingCountryString [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.
OptionalbillingAddressLine1String [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.
OptionalbillingAddressLine2String [0..50]The address registered on a specific card of the Issuing Bank. Line 2.
OptionalbillingAddressLine3String [0..50]The address registered on a specific card of the Issuing Bank. Line 3.
OptionalbillingPostalCodeString [0..9]Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
OptionalbillingStateString [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.
MandatorypayerAccountString [1..32]Payer's account number.
OptionalpayerLastNameString [1..64]Payer's last name.
OptionalpayerFirstNameString [1..35]Payer's first name.
OptionalpayerMiddleNameString [1..35]Payer's middle name.
OptionalpayerCombinedNameString [1..99]Payer's full name.
OptionalpayerIdTypeString [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
OptionalpayerIdNumberString [1..100]Number of the payer's identifying document (e.g. passport) provided.
OptionalpayerBirthdayString [1..20]Payer's birth date in the YYYYMMDD format.
ConditionalpayerAccountNumberTypeString [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).

RequiredNameTypeDescription
OptionalrecipientCityString [0..40]The recipient city code in the ISO 3166-1 alpha-3 format.
OptionalrecipientCountryString [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.
OptionalrecipientAddressLine1String [0..50]The recipient address. Can contain Latin characters only.
OptionalrecipientPostalCodeString [0..9]Postal code of the recipient.
OptionalrecipientStateString [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.
OptionalrecipientAccountString [0..32]Recipient's account number.
OptionalrecipientAccountNumberTypeInteger [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.

MandatoryrecipientLastNameString [0..35]Recipient's last name.
MandatoryrecipientFirstNameString [0..35]Recipient's first name.
OptionalrecipientMiddleNameString [0..35]Recipient's middle name.
OptionalrecipientCombinedNameString [0..99]Recipient's full name.
OptionalrecipientIdTypeString [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
OptionalrecipientIdNumberString [1..99]Number of the recipient's identifying document provided.
OptionalrecipientBirthdayString [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:

RequiredNameTypeDescription
ConditionalpanString [1..19]The number of the card to be credited.
OptionalexpirationYearInteger [4]The year of expiration of the card that is to be credited. The accepted values are from 2000 to 2200.
OptionalexpirationMonthInteger [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.
OptionalcardholderNameString [1..26]The name of the holder of the card that is to be credited.
ConditionalseTokenStringEncrypted 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:

RequiredNameTypeDescription
OptionalthreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSVer2FinishUrlString [1..512]URL where Customer should be redirected after authentication on ACS Server.
OptionalthreeDSMethodNotificationUrlString [1..512]URL where notification about performed 3DS-method should be sent to.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalinfoStringThe 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..."
OptionalorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
OptionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalacsUrlString [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.
OptionalredirectString [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.
OptionaloriginalPaymentNetRefNumString [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.
OptionalthreeDSSDKKeyStringDevice data encryption key. Parameter is mandatory for SDK flow.
OptionalthreeDSAcsTransactionIdStringID of 3DS transaction on ACS. Parameter is mandatory for SDK flow.
OptionalthreeDSAcsRefNumberStringReference number on ACS.
OptionalthreeDSAcsSignedContentStringSigned content for SDK, content includes ACS URL. Parameter is mandatory for SDK flow.
OptionalthreeDSDsTransIDStringUnique identifier of transaction witin IPS. Parameter is mandatory for SDK flow.
ConditionalstatusResponseObjectParameters 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.
OptionaldebitTransactionReferenceString [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:

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalorderStatusIntegerThe 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;
OptionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalpanMaskedFromString [1..19]The masked number of the card to be debited.
OptionalpanMaskedToString [1..19]The masked number of the card to be credited.
OptionalamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
OptionalcurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionalcreationDateIntegerDate of order registration.
OptionalorderDescriptionString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
MandatoryresultCodeIntegerError code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
OptionalorderParamsObjectAn 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"}.
OptionaloperationListObjectObject 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.
OptionalbindingStringIdentifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
OptionaldetokenizedPanRepresentationString [1..19]The detokenized card number (the last 4 digits or in a masked form).
OptionaldetokenizedPanExpiryDateStringThe card's detokenized expiration date in the following format: "YYYYMM".
OptionalpaymentNetRefNumString [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.
OptionaldebitTransactionReferenceString [1..19]Reference to AFT operation. This parameter is automatically generated by Payment Gateway for AFT operations using Mastercard. It can be further used in a subsequent OCT operation as a reference to the previous AFT operation.

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

RequiredNameTypeDescription
MandatorythreeDSServerTransIdString [1..36]Transaction identifier created on 3DS Server. Mandatory for 3DS authentication.
OptionalthreeDSMethodUrlString [1..512]URL of ACS Server for gathering browser data.
MandatorythreeDSMethodUrlServerString [1..512]URL of 3DS Server for gathering browser data to be included in the AReq (Authentication Request) from 3DS Server to ACS Server.
OptionalthreeDSMethodDataPackedString [1..1024]Base-64-encoded data of CReq (Challenge Response) to be sent to ACS Server.
OptionalthreeDSMethodURLServerDirectString [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:

RequiredNameTypeDescription
ConditionalacsUrlString [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.
ConditionalpackedCReqStringPacked 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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
OptionallanguageString [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.
ConditionalorderIdString [1..36]Order number in the payment gateway. Unique within the payment gateway.
ConditionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.

Response parameters

RequiredNameTypeDescription
MandatoryerrorCodeString [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.
MandatoryerrorMessageString [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.
OptionalorderStatusIntegerThe 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;
OptionalorderNumberString [1..36]Order number (ID) in the merchant's system, must be unique for each order.
OptionalpanMaskedFromString [1..19]The masked number of the card to be debited.
OptionalpanMaskedToString [1..19]The masked number of the card to be credited.
OptionalamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
OptionalcurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionalcreationDateIntegerDate of order registration.
OptionalorderDescriptionString [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.
OptionalipString [1..39]Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
MandatoryresultCodeIntegerError code on the request execution. Available values:
  • 0 - in case of success;
  • 1 - in case of an error.
OptionalorderParamsObjectAn 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"}.
OptionaloperationListObjectObject 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.
OptionalbindingStringIdentifier of a stored credential (if it has been already created). This parameter is returned only if the getP2PStatus version is 3 or higher.
OptionaldetokenizedPanRepresentationString [1..19]The detokenized card number (the last 4 digits or in a masked form).
OptionaldetokenizedPanExpiryDateStringThe card's detokenized expiration date in the following format: "YYYYMM".
OptionalpaymentNetRefNumString [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.
OptionaldebitTransactionReferenceString [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.

payerData element contains the following parameters.

RequiredNameTypeDescription
OptionalpaymentAccountReferenceString [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.

RequiredNameTypeDescription
OptionaloperationTypeStringTransaction 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.
OptionalamountInteger [0..12]Payment amount in minor currency units (e.g. in cents).
OptionalcurrencyString [3]ISO 4217 encoded currency key. If not specified, the default value is used. Only digits are allowed.
OptionaldatetimeStringDate and time of the transaction.
OptionalresultCodeStringResponse code from the processing bank. Contains a numeric value. See the list of action codes here.
OptionalresultCodeDescriptionString [1..512]Description of the transaction error code.
OptionalmaskedPanString [1..19]Masked number of the card or token used for the payment.
OptionalcardholderNameString [1..26]Cardholder's name (if available).
OptionalapprovalCodeString [6]IPS authorization code. This field has a fixed length (six symbols) and can contain digits and Latin letters.
OptionalrefNumString [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).
OptionalpaymentNetRefNumString [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.
OptionaloriginalActionCodeString [1..15]Response code received from the processing system. To enable receiving this field, contact the technical support service.
This parameter is returned only if the getP2PStatus version is 9 or higher.
OptionalschemeTransactionIdString [1..22]The identifier of the original successful Mastercard transaction.
This parameter is returned only if the getP2PStatus version is 9 or higher.

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

RequiredNameTypeDescription
MandatoryusernameString [1..30]Merchant's API account login.
MandatorypasswordString [1..30]Merchant's API account password.
MandatorytDsTransIdString [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

https://mybestmerchantreturnurl.com/finish.html?orderId=906bf262-bd53-4ac7-983c-07127954681b&lang=en

Categories:
P2PAPI V1
Beta
Categories
Search results