Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
developer:api_specification:xml_payment_features [2019/05/31 16:13]
vinayh [Examples for the Response]
developer:api_specification:xml_payment_features [2019/05/31 16:33]
vinayh [Notes and Details About the Request]
Line 2075: Line 2075:
 | LEVEL_2_DATA |  N  | Component of the request that can be added in case the Level II Data feature is in use for the Terminal processing the Payment. See **ND003 - Level 2 Data Validation**. | | LEVEL_2_DATA |  N  | Component of the request that can be added in case the Level II Data feature is in use for the Terminal processing the Payment. See **ND003 - Level 2 Data Validation**. |
 | LEVEL_3_DATA |  N  | Component of the request that can be added in case the Level III Data feature is in use for the Terminal processing the Payment. See **ND004 - Level 3 Data Validation**. | | LEVEL_3_DATA |  N  | Component of the request that can be added in case the Level III Data feature is in use for the Terminal processing the Payment. See **ND004 - Level 3 Data Validation**. |
-| ENHANCED_DATA_TEMPLATE |  N  | Enhanced Data template name to be used when creating the transaction. It fills up any not provided transaction'​s enhanced data field. \\ Note that if you use a template, but inform the data during the request, the gateway is just going to use the template to fill the gaps of whatever you didn't inform in your original request. Also, if you inform at least one item in LEVEL_3_DATA component, no item from template is going to be applied. \\ This field should only be used if you desire to use one of your Enhanced Data Templates (see **[[merchant:​existing_merchant:​selfcare_system:​settings:​enhanced_data_templates|Enhanced Data Templates]]** for more details). \\ This field is only available for terminals with **Transaction Enhanced Data** feature enabled. |   +| ENHANCED_DATA_TEMPLATE |  N  | Enhanced Data template name to be used when creating the transaction. It fills up any not provided transaction'​s enhanced data field. \\ Note that if you use a template, but inform the data during the request, the gateway is just going to use the template to fill the gaps of whatever you didn't inform in your original request. Also, if you inform at least one item in LEVEL_3_DATA component, no item from template is going to be applied. \\ This field should only be used if you desire to use one of your Enhanced Data Templates (see **[[merchant:​existing_merchant:​selfcare_system:​settings:​enhanced_data_templates|Merchant ​Enhanced Data Templates]]** for more details). \\ This field is only available for terminals with **Transaction Enhanced Data** feature enabled. |   
 | DATETIME |  Y  | Request date and time. Format: DD-MM-YYYY:​HH:​MM:​SS:​SSS. | | DATETIME |  Y  | Request date and time. Format: DD-MM-YYYY:​HH:​MM:​SS:​SSS. |
 | HASH |  Y  | A HASH code formed by part of the request fields. The formation rule is given at the **ND001 - Hash Formation**,​ in the next section. | | HASH |  Y  | A HASH code formed by part of the request fields. The formation rule is given at the **ND001 - Hash Formation**,​ in the next section. |
Line 2087: Line 2087:
 </​WRAP>​ </​WRAP>​
  
-[1] For each LINEITEM added, it's necessary to add all of its details, then add the details of the next item until the last one. +**[1]** For each LINEITEM added, it's necessary to add all of its details, then add the details of the next item until the last one. 
  
 **ND002 - Data Encoding for Requests** **ND002 - Data Encoding for Requests**
Line 2312: Line 2312:
 </​WRAP>​ </​WRAP>​
 \\ \\
-{/gateway}+===== Transaction Retrieving =====
  
 +This feature allows you to retrieve a transaction already processed. You need to know the existing transaction before sending your request.
 +
 +  * **Main Request body Tag**: <​GET_TRANSACTION_DETAILS> ​
 +  * **Main Response body Tag**: <​GET_TRANSACTION_DETAILS_RESPONSE> ​
 +
 +==== Request Body Fields ====
 +
 +<​searchtable>​
 +^ **FIELD** ^ **REQUIRED** ^ **DESCRIPTION** ^
 +| TERMINALID | Y | A Terminal ID provided by %CompanyName. NB - Please contact %CompanyName to be issued with a test terminal ID. |
 +| UNIQUEREF | Y | Refers the UNIQUEREF generate for the original transaction response. |
 +| DATETIME | Y | Request date and time. Format: DD-MM-YYYY:​HH:​MM:​SS:​SSS. | ​
 +| HASH | Y | A HASH code formed by part of the request fields. The formation rule is given at the **ND001 - Hash Formation**,​ in the next section. | ​
 +</​searchtable>​
 +\\
 +
 +==== Notes and Details About the Request ====
 +
 +**ND001 - Hash Formation**
 +
 +The general rule to build the HASH field is given on the **[[developer:​api_specification:​special_fields_and_parameters|Special Fields and Parameters]]** page, under the **[[developer:​api_specification:​special_fields_and_parameters#​the_hash_parameter|Special Fields and Parameters]]** section. For this specific feature, you should use the following formats:
 +
 +<WRAP center box 100%>
 +TERMINALID:​UNIQUEREF:​DATETIME:​SECRET
 +</​WRAP>​
 +
 +\\
 +
 +**ND002 - Data Encoding for Requests**
 +
 +All data sent to us should be correctly encoded using **UTF-8** as the character encoding.
 +
 +\\
 +==== Examples for a Request ====
 +
 +  * **Scenario**:​ Simple request, minimum data.
 +  * **Terminal**:​ 6491002.
 +  * **Terminal Secret**: x4n35c32RT.
 +  ​
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​GET_TRANSACTION_DETAILS>​
 +    <​TERMINALID>​6491002</​TERMINALID>​
 +    <​UNIQUEREF>​GCNQAWUUVZ</​UNIQUEREF>​
 +    <​DATETIME>​06-03-2018:​17:​41:​08:​273</​DATETIME>​
 +    <​HASH>​73e340cfb2b7424252d1ced917e4f74704aaa66a9600039f4800434cefe87d721c342d2b915c6e2aeea88b34e749ba97665f7d9e50b1144ca0f0745361fc4896</​HASH>​
 +</​GET_TRANSACTION_DETAILS>​
 +</​code>​
 +
 +\\
 +==== Response Body Fields ====
 +
 +<​searchtable>​
 +^ **FIELD** ^ **DESCRIPTION** ^
 +| TERMINALID | Terminal to which the transaction was submitted. |
 +| UNIQUEREF | Transaction'​s unique referenced. Same as provided at the request. |
 +| ORDERID | Transaction'​s order id, provided when the transaction was submitted. |
 +| TRANSACTION_STATUS | Current status of the transaction. |
 +| TRANSACTION_DATE | Date time of the transaction'​s processing. |
 +| OPERATOR | An identifier for who executed this transaction. |
 +| TRANSACTION_TYPE | Indicates if the transaction is a **SALE**, a **REFUND**, a **PREAUTH** or a pre-auth **COMPLETION**. |
 +| CURRENCY | Transaction'​s currency. |
 +| AUTHORIZEDAMOUNT | Amount authorized for the transaction. |
 +| ADDITIONAL_DETAILS | Additional details on the transaction,​ like the result information,​ custom fields, batch, among other. |
 +| BATCH_NUMBER | Subfield of ADDITIONAL_DETAILS. Indicates the batch number of the transaction,​ if not in open batch anymore. |
 +| BULK_NUMBER | Subfield of ADDITIONAL_DETAILS. Indicates the number of the bulk in which the transaction was send (only if the transaction was part of a bulk). |
 +| PROCESSINGTERMINAL | Subfield of ADDITIONAL_DETAILS. Indicates the number of the processing terminal of this transaction. Might differ from the TERMINALID if the transaction was submitted to a routing terminal (once the transaction is routed, it goes to a processing terminal). |
 +| RESPONSECODE | Subfield of ADDITIONAL_DETAILS. **A**: (APPROVED/ AUTHORIZED/ ACCEPTED, respectively). \\ **E**: (ACCEPTED for later processing, but result currently unknown - specifically for China Union Pay). \\ **D**: (DECLINED). \\ **R**: (REFERRED, also considered as PICKUP). \\ **C**: (PICKUP, also known as Referral A or Referral B). \\ For more details, visit at **[[merchant:​existing_merchant:​other_information:​transaction_responses|Transaction Responses]]**. |
 +| RESPONSETEXT | Subfield of ADDITIONAL_DETAILS. The text of the authorization. |
 +| APPROVALCODE | Subfield of ADDITIONAL_DETAILS. A six digit AuthCode. |
 +| FOREIGNCURRENCYINFORMATION | Subfield of ADDITIONAL_DETAILS. Tag contains Dynamic Currency Conversion information. It has to be present in the eDCC enabled transactions. |
 +| CARDCURRENCY | Subfield of FOREIGNCURRENCYINFORMATION. Cardholder card's currency code. |
 +| CARDAMOUNT | Subfield of FOREIGNCURRENCYINFORMATION. Amount which is supposed to be charged in the home currency. |
 +| CONVERSIONRATE | Subfield of FOREIGNCURRENCYINFORMATION. Value of the Conversion Rate on original request. |
 +| DESCRIPTION | Subfield of ADDITIONAL_DETAILS. |
 +| TRANSACTION_CUSTOM_FIELDS | Subfield of ADDITIONAL_DETAILS. List of TRANSACTION_CUSTOM_FIELD used with the transaction. |
 +| NAME | Subfield of each TRANSACTION_CUSTOM_FIELD. Name of the custom field used. |
 +| VALUE | Subfield of each TRANSACTION_CUSTOM_FIELD. Value provided for the custom field used. |
 +| DATETIME | Response date and time for the transaction,​ created by the bank. Format: YYYY-MM-DDTHH:​MM:​SS. Note that this is intentionally in a different format to the request timestamp to highlight the fact that it is a different time. |
 +| HASH | A HASH code formed by part of the request fields. The formation rule is given at the ND001 - Hash Formation, in the next section. |
 +</​searchtable>​
 +\\
 +==== Notes and Details on the Response ====
 +
 +**ND001 - Hash Formation**
 +
 +The general rule to build the HASH field is given on the **[[developer:​api_specification:​special_fields_and_parameters|Special Fields and Parameters]]** page, under the **[[developer:​api_specification:​special_fields_and_parameters#​the_hash_parameter|Special Fields and Parameters]]** section. For this specific feature, you should use the following formats:
 +
 +<WRAP center box 100%>
 +TERMINALID:​UNIQUEREF:​ORDERID:​TRANSACTION_STATUS:​TRANSACTION_DATE:​OPERATOR:​TRANSACTION_TYPE:​CURRENCY:​AUTHORIZEDAMOUNT:​BATCH_NUMBER:​BULK_NUMBER:​PROCESSINGTERMINAL:​RESPONSECODE:​RESPONSETEXT:​APPROVALCODE:​CARDCURRENCY:​CARDAMOUNT:​CONVERSIONRATE:​DESCRIPTION:​DATETIME:​SECRET
 +</​WRAP>​
 +
 +\\
 +
 +**ND002 - Error Handling**
 +
 +If there is an error processing the request, the error string is returned in an XML message with the simple tags:
 +<code xml>
 +<​ERROR>​
 +    <​ERRORSTRING>​This is the error generated!</​ERRORSTRING>​
 +</​ERROR>​
 +</​code>​
 +\\
 +==== Examples for the Response ====
 +
 +  * **Scenario**:​ Response to a simple request.
 +  * **Terminal**:​ 3614008.
 +  * **Terminal Secret**: x4n35c32RT.
 +  ​
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"​ standalone="​yes"?>​
 +<​GET_TRANSACTION_DETAILS_RESPONSE>​
 +    <​TERMINALID>​3614008</​TERMINALID>​
 +    <​UNIQUEREF>​E4RGZYVCME</​UNIQUEREF>​
 +    <​TRANSACTION_STATUS>​REVIEW</​TRANSACTION_STATUS>​
 +    <​TRANSACTION_DATE>​26-04-2019:​17:​19:​18:​000</​TRANSACTION_DATE>​
 +    <​OPERATOR>​CardHolder Payment</​OPERATOR>​
 +    <​TRANSACTION_TYPE>​SALE</​TRANSACTION_TYPE>​
 +    <​CURRENCY>​USD</​CURRENCY>​
 +    <​AUTHORIZEDAMOUNT>​52.03</​AUTHORIZEDAMOUNT>​
 +    <​ADDITIONAL_DETAILS>​
 +        <​RESPONSECODE>​A</​RESPONSECODE>​
 +        <​RESPONSETEXT>​APPROVAL</​RESPONSETEXT>​
 +        <​APPROVALCODE>​VVVVWM</​APPROVALCODE>​
 +        <​TRANSACTION_CUSTOM_FIELDS>​
 +            <​TRANSACTION_CUSTOM_FIELD>​
 +                <​NAME>​Promocode</​NAME>​
 +                <​VALUE>​sevr9w409vw4v59w45v</​VALUE>​
 +            </​TRANSACTION_CUSTOM_FIELD>​
 +        </​TRANSACTION_CUSTOM_FIELDS>​
 +    </​ADDITIONAL_DETAILS>​
 +    <​DATETIME>​30-04-2019:​14:​34:​47:​707</​DATETIME>​
 +    <​HASH>​61a587361fa4631a72af9d47395ad0ab81cb6b5928ed8b41ab0860e7cd52c4bc55361f3d3c0b8cf52add999c0c5c07acd6f8f26c0b045d33c0d97489b3f6be9a</​HASH>​
 +</​GET_TRANSACTION_DETAILS_RESPONSE>​
 +</​code>  ​
 +
 +<WRAP center important 100%>
 +**REMEMBER** to change the Terminal ID and Terminal Secret for valid values. Consult the **[[developer:​integration_docs|Integration Docs]]** for examples or contact our support team.
 +</​WRAP>​
 +\\
 +
 +<WRAP center important 100%>
 +Not all the transaction will return the same fields. Mostly they are similar, but some of them might have less data than what is described by the response field table.
 +</​WRAP>​
 \\ \\
  
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International