The IngoPay Gateway API Process Method supports Idempotency for safely retrying requests without accidentally performing the same operation twice, or creating a new transaction - either due to network interference or communication failures.
Occurrences such as network issues and timeouts may occur within downstream/upstream communications impacting our clients’ ability to receive a status response from Ingo Payments. In the event clients do not receive a response from their process payload request(s) to Ingo Payments, clients may safely re-attempt utilizing an Idempotent Method request which contains the same
participant_unique_id1
value as the original request. It is strongly suggested to throttle all Idempotent requests at a minimum of 3-4 seconds after your configured timeout stand-in response code setting as discussed with your Integration Manager.Additionally, there may be occurrences where clients have exhausted their maximum number of system-generated process Idempotent retry attempts to Ingo Payments without ever receiving a response. This scenario may be a leading indicator of a systemic outage, either planned or unplanned. Once all Idempotent process retry attempts have been exhausted, clients should ensure the impacted transaction request(s) are properly recorded with the proper assumption in their systems based upon the process method utilized. Clients should directly contact Ingo Payment Services for a manual investigation into all potentially impacted requests. Ingo Payment Services will perform a thorough review of each request providing potential options as next steps to minimize consumer impact as applicable.
A detailed review of timeout settings and configurable options will be discussed and documented by your assigned Integration Manager.
To perform an idempotent Process request:
Utilize the same participant_unique_id1
value as provided in the original request. If the original request was not received by Ingo, the Idempotent request will be accepted as an original transaction. If the original request was received prior by Ingo, an Idempotent response payload will be returned echoing the response of the original request and should be treated as a 'Success'. Any status change applicable to the resulting transaction will be communicated via reporting & reconciliation (i.e. returns and refunds).
Code | Message | Applicable Call | Description |
---|---|---|---|
101 | Success - Idempotent Response | Verify or Process | Returned when the received unique client assigned participant_unique_id1 value was processed successfully on a prior request. A new transaction is not processed. |
102 | Success - Pending Issuer Response | Process | Returned when response from issuer has not been received by the configured client level timeout |
104 | In Progress - Idempotent Response | Process | Returned when the received unique client assigned participant_unique_id1 value was previously received on a prior request and is currently processing. A new posting attempt to the destination account is not initiated. |
{
"status": 101,
"client_message": "Success - Idempotent",
"data": {
"estimated_posting_date": "MM/DD/20YY",
"estimated_posting_time": "Payment will post MM/DD/20YY",
"transaction_id": "1234567",
"request_timestamp": 1632343628,
"participant_unique_id1": "f31fbe31-346d-4564-bb38-71deabbe1c2d",
"participant_unique_id2": "c0359ece-3d5e-4e7a-b6c4-30e5ae4b6a67",
"customer_account_token": "72713920-c7fd-4045-ac76-ed3979b17910"
},
"time": "0.1374"
}
{
"status": 102,
"client_message": "Success - Pending Issuer Response",
"data": {
"estimated_posting_date": "MM/DD/20YY",
"estimated_posting_time": "Payment will post MM/DD/20YY",
"transaction_id": "1234567",
"request_timestamp": 1632343628,
"participant_unique_id1": "f31fbe31-346d-4564-bb38-71deabbe1c2d",
"participant_unique_id2": "c0359ece-3d5e-4e7a-b6c4-30e5ae4b6a67",
"customer_account_token": "72713920-c7fd-4045-ac76-ed3979b17910"
},
"time": "0.1374"
}
{
"status": 104,
"client_message": "Idempotent - Processing in progress",
"data": {
"estimated_posting_date": "MM/DD/20YY",
"estimated_posting_time": "Payment will post MM/DD/20YY",
"transaction_id": "1234567",
"request_timestamp": 1632343628,
"participant_unique_id1": "f31fbe31-346d-4564-bb38-71deabbe1c2d",
"participant_unique_id2": "c0359ece-3d5e-4e7a-b6c4-30e5ae4b6a67",
"customer_account_token": "72713920-c7fd-4045-ac76-ed3979b17910"
},
"time": "0.1374"
}