- Created by user-e873e, last modified by user-5c3b0 on Jul 09, 2020
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 94 Next »
Overview
You can make use of following APIs during a payment scenario. This section explains about all RESTful operations including their request and response parameters.
Payment exceptions occur when an API operation fails to process a request payload. See Error Codes to know more about exception response codes.
Operation: Create a Transaction
This operation enables you to create a transaction.
Functional Behaviour
POST | /v1.0/sodexo/transactions |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
requestId | Transaction Request ID "requestId" Naming Convention Take care of the following to define |
sourceType (optional) | Source type used to complete the transaction. Allowed values: PHONE_NUMBER, CARD. Default value is CARD. If the sourceType is CARD, specify the following additional values. expiry: in MMYY format. Example "0926" cvv: the three digit CVV2 If the sourceType is PHONE_NUMBER, specify the following additional value: phoneNumber: Phone number of user for whom the transaction is initiated. |
sourceId (optional) | Source ID can be passed when transaction is created with a saved source. |
amount | Possible values supported for currencies “INR” for now. |
merchantInfo | Information of the merchant (payee) for which payment is requested mid: merchant ID given by Sodexo tid: terminal ID given by Sodexo |
purposes | Each purpose should have amount (in the base currency of transaction). |
failureUrl | Requester’s URL where Zeta will redirect on failed transaction authorization |
successUrl | Requester’s URL where Zeta will redirect on successful transaction authorization |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "requestId": "req_spar_vbdjkahffoasdh874627wqufid", "sourceId": "src_wqe47hxfjksor89y4", "amount": { "currency": "INR", "value": "20.00" }, "merchantInfo": { "aid": "sodexo", "mid": "usdfhaki879yh", "tid": "56273158bj" }, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "20.00" } } ], "failureUrl": "http://merchant-site/failed.php", "successUrl": "http://merchant-site/success.php" }
Output Parameters
Parameters | Description |
---|---|
transactionId | Transaction ID generated by Zeta |
requestId | Same as in request payload |
transactionState | 'WAITING_FOR_CONSENT' OR 'WAITING_FOR_SOURCE' |
redirectUserTo | URL where requester should redirect the user to complete authorization of transaction. |
{ "transactionId": "txn_hfsadh98iadsofi", "requestId": "req_spar_vbdjkahffoasdh8746", "amount": { "currency": "INR", "value": "20.00" }, "transactionState": "WAITING_FOR_CONSENT", "sourceId": "src_iwuehy89yhlfkjfd", "redirectUserTo": "https://ecom.zetaapps.in/v1.0/sodexo/transactions/initiate?q=8o32hjsfad930uklfsajdfo" }
Error Codes
Possible error codes are - ER000, ER007, ER011, ER012, ER013, ER014, ER015, ER016, ER017, ER019, ER024
For more details refer to Error Codes section below.
Operation: Create a Transaction with SourceInfo
This API is exclusive to PCI DSS payment flow.
This operation enables you to authorize a transaction.
Functional Behaviour
POST | /v1.0/sodexo/transactions/createWithSourceInfo
|
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
requestId | Transaction Request ID Take care of the following allowed naming conventions for defining requestId: |
sourceInfo | sourceType: Source type used to complete the transaction. Allowed values: PHONE_NUMBER, CARD. Default value is CARD. If the sourceType is CARD, specify the following additional values. expiry: in MMYY format. Example "0926" cvv: the three digit CVV2 If the sourceType is PHONE_NUMBER, specify the following additional value: phoneNumber: Phone number of user for whom the transaction is initiated. |
amount | Possible values supported for currencies INR for now. |
merchantInfo | Information of the merchant (payee) for which payment is requested mid: merchant ID given by Sodexo tid: terminal ID given by Sodexo |
purpose | Each purpose should have amount (in the base currency of transaction). |
failureUrl | Requester’s URL where Zeta will redirect on failed transaction authorization |
successUrl | Requester’s URL where Zeta will redirect on successful transaction authorization |
permissions | The requester needs to take consent for these permissions from the user on their domain and pass in this request. SAVE_FOR_FUTURE - With this permission, a GET_BALANCE - With this permission, balance (accountBalances) is returned in get a source API. Please refer to get a source to get details of accountBalances. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "requestId": "req_spar_vbdjkahffoasdh874627wqufid", "sourceInfo": { "sourceType":"CARD", "cardNumber": "365798263679", "ownerName": "Arjun Kumar", "expiryMonth" : "09", "expiryYear" : "26", "cvv": "368" }, "amount": { "currency": "INR", "value": "20.00" }, "merchantInfo": { "aid": "sodexo", "mid": "usdfhaki879yh", "tid": "56273158bj" }, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "20.00" } } ], "permissions" : ["SAVE_FOR_FUTURE", "GET_BALANCE"], "failureUrl": "http://merchant-site/failed.php", "successUrl": "http://merchant-site/success.php" }
Output Parameters
Parameters | Description |
---|---|
transactionState | 'WAITING_FOR_CONSENT' |
transactionId | Transaction ID is generated by Zeta |
redirectUserTo | URL where requester should redirect the user to complete authorization of transaction. |
{ "transactionId": "txn_hfsadh98iadsofi", "requestId": "req_spar_vbdjkahffoasdh8746", "amount": { "currency": "INR", "value": "20.00" }, "transactionState": "WAITING_FOR_CONSENT", "redirectUserTo": "https://ecom.zetaapps.in/v1.0/sodexo/transactions/initiate?q=8o32hjsfad930uklfsajdfo" }
Operation: Cancel a Transaction
This operation enables you to cancel a transaction.
A transaction can be cancelled only before the user attempts to authorise it. Given this a transaction in any of the following states can be cancelled:
- CREATED
- WAITING_FOR_SOURCE
- WAITING_FOR_CONSENT
Functional Behaviour
POST | /v1.0/sodexo/transactions/{transactionId}/cancel |
Input Parameter
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
Output Parameters
Parameters | Description |
---|---|
cancellationStatus | SUCCESS, FAILED |
reason | Reason in case of cancellation failure |
{ "transactionId" : "txn_hfsadh98iadsofi", "cancellationStatus" : "SUCCESS", "reason" : null }
Error Codes
Possible error codes are - ER000, ER007, ER008, ER010, ER023
For more details refer to Error Codes section below.
Operation: Get Transaction Details
This operation enables you to retrieve the transaction details.
This API should be used only for Purchase transactions and not for Refund transactions.
Functional Behaviour
GET |
|
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
Output Parameters
Parameters | Description |
---|---|
transactionState (For detailed description, refer to Transaction States) | WAITING_FOR_SOURCE, WAITING_FOR_CONSENT, CANCELLED, CANCELLED_BY_USER_AGENT, WAITING_FOR_AUTHORIZATION, AUTHORIZED, CLEARANCE_INITIATED, CLEARED, UNAUTHORIZED, REFUND_INITIATED, REFUND_FAILED, REFUND_COMPLETED, REFUND_DROPPED |
retrievalReferenceNumber | The retrievalReferenceNumber (RR Number) for the transaction. Its always a 12-digit number. |
transactionReceipt | Transaction receipt object with receiptID, payerInfo, payeeInfo and other details. |
{ "transactionId": "txn_hfsadh98iadsofi", "requestId": "req_spar_vbdjkahffoasdh8746", "amount": { "currency": "INR", "value": "21" }, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "21" } } ], "transactionState": "AUTHORIZED", "failureReason" : null, "sourceId": "src_iwuehy89yhlfkjfd", "requestTime": "1505637992486", "retrievalReferenceNumber": "107461827462", "transactionReceipt": { "authorisedAmount": { "amount": "21", "currency": "INR" }, "debits": [ { "ifi": 156699, "postingID": "852730", "value": { "amount": "20", "currency": "INR" }, "productType": "Meal" }, { "ifi": 156699, "postingID": "852731", "value": { "amount": "1", "currency": "INR" }, "productType": "Meal" } ], "credits": [ { "ifi": 156699, "postingID": "4254095", "value": { "amount": "21", "currency": "INR" } } ], "receiptID": 58275009977, "payeeInfo": { "name": "Mountain Trail Foods P", "location": "Bangalore", "type": "EXTERNAL_BUSINESS" }, "payerInfo": { "imageURL": "", "name": "Archit Verma", "type": "ZETA_INDIVIDUAL" }, "authorisationTime": 1505637992488 } }
Error Codes
Possible error codes are - ER000, ER007, ER010, ER013, ER017, ER019
For more details refer to Error Codes section below.
Operation: Get a Source
This operation enables you to retrieve the details of a source.
Functional Behaviour
GET | /v1.0/sodexo/sources/{sourceId} |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
Output Parameters
Parameters | Description |
---|---|
sourceId | source ID for which details are fetched |
sourceType | CARD, WALLET [Phone, Email] |
sourceDetails | maskedPan: Attribute specific to source with type ‘CARD’. Represents masked Pan Hash for the card |
accountBalances | Balance for various accounts that user has with Zeta. |
{ "sourceId": "src_iwuehy89yhlfkjfd", "sourceType": "CARD", "sourceDetails": { "maskedPan": "360846xxxx4739", "ownerName": "Mrinal Trivedi", "cardIssuer": "ZETA" }, "accountBalances": [ { "account": "121928192891829", "productType": "MEALPASS", "currency": "INR", "balance": "200.00", "ifi": "16382" } ] }
Error Codes
Possible error codes are - ER000, ER007, ER013, ER014, ER017, ER019
For more details refer to Error Codes section below.
Operation: Refund a Transaction
The operation enables you to partially or fully refund the amount during a pre and post clearance process.
When money gets refunded to customer?
If full refund is requested before the transaction gets cleared, the amount is refunded immediately.
If the refund is requested post clearance or a partial refund is requested, then refund will be done in next 2-3 days.
Functional Behaviour
POST | /v2.0/sodexo/transactions/refund |
Input Parameters
Parameter | Description |
---|---|
requestId | Refund transaction request ID. This is unique across transactions Take care of the following allowed naming conventions for defining requestId: |
amount | Total or partial amount to be refunded. |
Content-Type | application/json must be the content type. |
transactionId | Transaction ID returned by Zeta for purchase transaction |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "requestId" : "requestIdStage10000026", "amount" : { "currency" : "INR", "value" : "6.00" }, "transactionId" : "txn_69a2f3a5-0afb-46a3-86d2-1ec62881e067", "purposes" : [ { "purpose" : "FOOD", "amount" : { "currency" : "INR", "value" : "6.00" } } ] }
Output Parameters
Parameter | Description |
---|---|
requestId | Request ID echoed back from the request payload itself. |
purchaseTransactionId | Purchase transaction ID of the requested refund. This parameter is mandatory to get the refund status. |
refundTransactionId | Refund transaction ID of a requested refund. |
{ "requestId": "requestIdStage10000026", "purchaseTransactionId": "txn_28802c2f-2943-4bfc-bb87-a70dfbd936de", "refundTransactionId": "txn_f2a7802c-ef84-43c3-8615-5f706b995c23", }
Error Codes
Possible refund-related error codes are - ER041, ER042. For more details refer to Error Codes section below.
Operation: Get Refunds
The operation enables you to retrieve the details on the state of the refunds.
Functional Behaviour
GET | /v2.0/sodexo/transactions/{purchaseTransactionId}/refunds |
Input Parameters
Parameter | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
purchaseTransactionId | Purchase transaction ID of the requested refund from the Refund a Transaction operation. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
Output Parameters
Parameter | Description |
---|---|
refundTransactionId | Refund transaction ID of a refund transaction |
requestId | Purchase transaction request ID. |
amount | The amount associated with a particular refund. |
refundState | State of the refund |
{ "refundStatusDetails": { "txn_6e5d9703-53fa-4cde-b631-30c0ab81af97": { "refundTransactionId": "txn_6e5d9703-53fa-4cde-b631-30c0ab81af97", "requestId": "requestIdStageV2Refund10002", "refundState": "REFUND_COMPLETED", "amount": { "currency": "INR", "value": "3.00" }, "requestTime": 1513788119505, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "3.00" } } ] }, "txn_c80aa393-c003-4ecd-9649-2e5fb381a6c3": { "refundTransactionId": "txn_c80aa393-c003-4ecd-9649-2e5fb381a6c3", "requestId": "requestIdStageV2Refund10004", "refundState": "REFUND_COMPLETED", "amount": { "currency": "INR", "value": "1.00" }, "requestTime": 1513788236585, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "1.00" } } ] } } }
This version will soon be deprecated. Please refer to Version 2 for partial and full refund API.
This operation enables you to fully refund a transaction. Currently, refund is executed by end of day during the clearance process. The payer gets the refunded money back in 2-3 working days.
Functional Behaviour
POST | /v1.0/sodexo/transactions/refund |
Input Parameters
Parameters | Description |
---|---|
transactionId | Transaction ID returned by Zeta after transaction authorization. |
amount | Total amount to be refunded. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "transactionId": "txn_hfsadh98iadsofi", "amount": { "currency": "INR", "value": "20.00" } }
Output Parameters
Parameters | Description |
---|---|
refundStatus | SUCCESS In case of a failure scenario, the API throws error with one of the error codes associated with this API. |
transactionId | Transaction ID echoed back from the request payload itself. |
requestId | Purchase transaction request ID. |
amount | Total amount to be refunded. |
{ "refundStatus": "SUCCESS", "transactionId": "txn_hfsadh98iadsofi", "requestId": "req_spar_fhskjdahfiojkfnsdakj", "amount": { "currency": "INR", "value": "20.00" } }
Error Codes
Possible error codes are - ER000, ER007, ER010, ER017, ER021, ER022, ER023
For more details refer to Error Codes section below.
Operation: Save a Card
This operation enables you to save a card.
This API call debits Rs 0.01 from the user’s card.
Functional Behaviour
POST | /v1.0/sodexo/sources/save |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
requestId | Transaction Request ID Take care of the following allowed naming conventions for defining requestId: |
failureUrl | Requester’s URL where Zeta will redirect on failure of authentication |
successUrl | Requester’s URL where Zeta will redirect on successful authentication |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "requestId": "req_spar_vbdjkahffoasdh874627wqufid", "failureUrl": "http://merchant-site/cardsavefailed.php", "successUrl": "http://merchant-site/cardsavesuccess.php" }
Output Parameters
Parameters | Description |
---|---|
requestId | Same as in request payload |
redirectUserTo | URL where requester should redirect the user to complete the card save flow. |
{ "requestId": "req_spar_vbdjkahffoasdh8746", "redirectUserTo": "https://ecom.zetaapps.in/v1.0/sodexo/transactions/initiate?q=8o32hjsfad930uklfsajdfo" }
Error Codes
Possible error codes are - ER000, ER007, ER010, ER013, ER017, ER019, ER023
For more details refer to Error Codes section below.
Operation: Remove a Saved Card
This operation enables you to remove a saved card.
Functional Behaviour
POST | /v1.0/sodexo/sources/unsave |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
sourceId | Source ID of the saved card. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" "Content-Type" : "application/json" }
{ "sourceId": "src_wqe47hxfjksor89y4" }
Output Parameters
Parameters | Description |
---|---|
status | SUCCESS or FAILURE |
{ "status": "SUCCESS", "sourceId": "src_wqe47hxfjksor89y4" }
Error Codes
Possible error codes are - ER000, ER007, ER013, ER017, ER019
For more details refer to Error Codes section below.
Operation: Retrieve Bulk Transaction Details
This operation enables you to retrieve details of Bulk Transactions via Token Generation Request ID.
Functional Behaviour
GET | /v1.0/sodexo/transactions/token_request_id?tokenRequestIds={requestIds} |
Input Parameters
Parameters | Descriptionm |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Content-Type | application/json must be the content type. |
{ "apiKey" : "7687fyjasdhf98yfiasdkfjhdsgilouafoih==" "Content-Type" : "application/json" }
Output Parameters
Parameters | Description |
---|---|
transactionId | Transaction ID generated by Zeta |
requestId | This is generated by the requester and is globally unique. Zeta will reject a duplicate transaction ID. |
amount | Possible values supported for currencies “INR” for now. Value is in Rupees . |
sourceId | Source ID can be passed optionally when token is created with a saved source. If the sourceId is passed, then Zeta doesn't prompt the user to enter the card details and directly allows user to enter the authentication page. Source - is a representation of customer’s instrument like card and so on using which he/she pays to the merchant. A source provides convenience for a customer so as not to type in the card details every time while completing a transaction. If the customer chooses to get the card details saved (along with a set of permissions like getBalance and others) during a transaction, then the get transaction details API response returns the sourceId. This sourceId can be saved by merchant for showing the saved cards to the customer. |
transactionState | WAITING_FOR_SOURCE, WAITING_FOR_CONSENT, CANCELLED, CANCELLED_BY_USER_AGENT, WAITING_FOR_AUTHORIZATION, AUTHORIZED, CLEARANCE_INITIATED, CLEARED, UNAUTHORIZED, REFUND_INITIATED, REFUND_FAILED, REFUND_COMPLETED, REFUND_DROPPED |
failureReason | Reason in case of failure |
transactionReceipt | Transaction receipt object with receiptID, payerInfo, payeeInfo and other details. |
retrievalReferenceNumber | The retrievalReferenceNumber (RR Number) for the transaction. Its always a 12-digit number. |
{ "Jio20": { "transactionId": "txn_09246d1e-be29-4a15-8bfc-a2e5aa4b953e", "requestId": "Jiotest109", "amount": { "currency": "INR", "value": "0.01" }, "purposes": [ { "purpose": "FOOD", "amount": { "currency": "INR", "value": "0.01" } } ], "sourceId": "src_6576f5db-a199-46b6-80cf-98dbbe96021e", "transactionState": "CLEARANCE_INITIATED", "failureReason": null, "requestTime": 1512646668576, "transactionReceipt": { "authorisedAmount": null, "debits": null, "credits": null, "receiptID": null, "payeeInfo": { "name": "JIO", "location": "Bangalore", "type": "EXTERNAL_BUSINESS" }, "payerInfo": null, "authorisationTime": null }, "retrievalReferenceNumber": "000000001599" }, "Jio21": null, "Jio19": null }
Transaction States
The following transaction statuses are shown to the merchant side post Zeta authorization:
State | Description |
---|---|
WAITING_FOR_SOURCE | Transaction is waiting for user identification vectors. For example, card details, phone number and so on. |
WAITING_FOR_CONSENT | Waiting to validate users' authenticity via OTP, PIN and so on. |
CANCELLED - | Cancelled by the requester by calling Cancel a transaction API. |
CANCELLED_BY_USER_AGENT | Cancelled by user by clicking on 'Cancel' option provided on Zeta hosted client pages. |
WAITING_FOR_AUTHORIZATION | User entered the authentication factor. Waiting for transaction to get authorized. Transaction in this state should not be considered as authorized. If a transaction is in 'WAITING_FOR_AUTHORIZATION' state for more that 30 seconds it will get auto-reversed in 3 days, if in case money got debited. |
AUTHORIZED | Transaction is authorised by the processor. |
CLEARANCE_INITIATED | This is an already authorised transaction and the clearance phase for this transaction has already initiated |
CLEARED | Cleared transaction. Only authorized transactions enter this state. |
UNAUTHORIZED | Transaction is unauthorized by the processor. See getTransactionDetails API response to know the reason for failure under the 'failureReason' field. |
REFUND_INITIATED | Refund for transaction in AUTHORIZED or WAITING_FOR_AUTHORIZATION states has been initiated. For transaction in AUTHORIZED state, refund initiation happens when the client calls the refund API. For transaction in WAITING_FOR_AUTHORIZATION state, an 'auto-reversal' of this transaction is attempted which marks the transaction as REFUND_INITIATED |
REFUND_FAILED | Refund has failed. This rarely happens, when the transaction stuck in 'WAITING_FOR_AUTHORIZATION' was not authorized by the processor in the initial authorization attempt. |
REFUND_COMPLETED | Refund of the transaction is processed successfully. |
REFUND_DROPPED | Refund is dropped after fixed automated N number of attempts to get transaction refunded. In rare cases, if refund is required for a valid use-case, it needs to be handled through manual process. |
To resolve any transaction related issues, you may need to share the transaction status displayed at your end with Zeta.
On this page:
- No labels