Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
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.
Note |
---|
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
| /v1.0/sodexo/transactions |
Input Parameters
Parameters | Description | |||||
---|---|---|---|---|---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. | |||||
requestId | Transaction Request ID
| |||||
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 |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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" } |
Info | ||
---|---|---|
| ||
Possible error codes are - ER000, ER007, ER011, ER012, ER013, ER014, ER015, ER016, ER017, ER019, ER024 |
Operation: Create a Transaction with SourceInfo
Note |
---|
This API is exclusive to PCI DSS payment flow. |
This operation enables you to authorize a transaction.
Functional Behaviour
| /v1.0/sodexo/transactions/createWithSourceInfo |
Input Parameters
Parameters | Description | ||
---|---|---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. | ||
requestId | Transaction Request ID
| ||
sourceInfo | type: This will be static value "CARD" expiry: in MMYY format. Example "0926" cvv: the three digit CVV2 | ||
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 | ||
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 getSource API. Please refer https://bit.ly/2EfPU6l to get details regarding the API. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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
| /v1.0/sodexo/transactions/{transactionId}/cancel |
Input Parameter
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Headers: { "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
Output Parameters
Parameters | Description |
---|---|
cancellationStatus | SUCCESS, FAILED |
reason | Reason in case of cancellation failure |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "transactionId" : "txn_hfsadh98iadsofi", "cancellationStatus" : "SUCCESS", "reason" : null } |
Info | ||
---|---|---|
| ||
Possible error codes are - ER000, ER007, ER008, ER010, ER023 |
Operation: Get Transaction Details
This operation enables you to retrieve the transaction details.
Note |
---|
This API should be used only for Purchase transactions and not for Refund transactions. |
Functional Behaviour
|
|
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Headers: { "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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 } } |
Info | ||
---|---|---|
| ||
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
| /v1.0/sodexo/sources/{sourceId} |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Headers: { "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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" } ] } |
Info | ||
---|---|---|
| ||
Possible error codes are - ER000, ER007, ER013, ER014, ER017, ER019 |
Operation: Refund a Transaction
Div | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Operation: Save a Card
This operation enables you to save a card.
Note |
---|
This API call debits Rs 0.01 from the user’s card. |
Functional Behaviour
| /v1.0/sodexo/sources/save |
Input Parameters
Parameters | Description | ||
---|---|---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. | ||
requestId | Transaction Request ID
| ||
failureUrl | Requester’s URL where Zeta will redirect on failure of authentication | ||
successUrl | Requester’s URL where Zeta will redirect on successful authentication |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "requestId": "req_spar_vbdjkahffoasdh8746", "redirectUserTo": "https://ecom.zetaapps.in/v1.0/sodexo/transactions/initiate?q=8o32hjsfad930uklfsajdfo" } |
Info | ||
---|---|---|
| ||
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
| /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 |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "apiKey" : "w9e75yifheq09tyehqriofhy0q349htorehtlGJKHu095338kehqo" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "sourceId": "src_wqe47hxfjksor89y4" } |
Output Parameters
Parameters | Description |
---|---|
status | SUCCESS or FAILURE |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "status": "SUCCESS", "sourceId": "src_wqe47hxfjksor89y4" } |
Info | ||
---|---|---|
| ||
Possible error codes are - ER000, ER007, ER013, ER017, ER019 For more details refer to Error Codes section below. |
Operation: Get Token Details
This operation enables you to retrieve the details of a Token.
Functional Behaviour
| /v1.0/sodexo/tokens/ { tokenId } |
Input Parameters
Parameters | Description |
---|---|
apiKey | apiKey will be shared by Zeta with requester during the on-boarding process. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Headers: { "apiKey" : "7687fyjasdhf98yfiasdkfjhdsgilouafoih==" } |
Output Parameters
Parameters | Description |
---|---|
tokenId | Token ID generated by Zeta |
requestId | Transaction Request ID This is generated by the requester. Should be globally unique. Zeta will reject a duplicate transaction ID. |
transactionId | Transaction ID generated by Zeta |
amount | Possible values supported for currencies “INR” for now. Value is in Rupees. |
tokenStatus | CHARGED, CHARGE_FAILED, CHARGEABLE, CANCELLED, TIMEDOUT, UNCHARGEABLE |
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. |
failureReason | Reason in case of failure |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "tokenId": "token_8bb897b3-d7f7-4c5c-bc68-45d719d7c6a7", "requestId": "Jio21", "transactionId": null, "createdAt": 1512999823462, "amount": { "currency": "INR", "value": "0.01" }, "tokenStatus": "CANCELLED", "sourceId": "src_6576f5db-a199-46b6-80cf-98dbbe96021e", "failureReason": null, "pinAttempts": 1 } |
Operation:
RetieveRetrieve 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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
Headers: { "apiKey" : "7687fyjasdhf98yfiasdkfjhdsgilouafoih==" } |
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. |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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. |
Note |
---|
To resolve any transaction related issues, you may need to share the transaction status displayed at your end with Zeta. |
Panel | ||||||
---|---|---|---|---|---|---|
|