Idempotency

Some Program API endpoints use the transactionId input parameter for idempotency. (In this context, "transaction" does not refer to a financial transaction but to the request/response pair of an API call.) For all endpoints but one, the transactionId is a max 60-character string, preferably a UUID. For the Create Adjustment endpoint the transactionId must be a 64-bit integer that is less than 9223372036854775807.

When endpoints use transactionId for idempotency, Galileo validates that a transactionId is unique per successful API call. If the request is identical to a previous combination of transactionId + providerId + endpoint, within the last 90 days, the endpoint returns status_code: 24 (Duplicate transaction). If you want to see the status code for the original successful request, use Get Call Status with the original transactionId for requestTransactionId, and the endpoint name in camelCase for requestMethodName

Keep in mind that with the reversal endpoints such as Reverse Payment, you pass the transactionId from the original call as the transactionId for the reverse call, such that a Create Payment call and a Reverse Payment call have the same transactionId. But because the system looks at a combination of transactionId + providerId + endpoint, the reverse transaction is not considered a duplicate.

If an API call is unsuccessful, the transactionId can be used again in future attempts. Once successful, the transactionId cannot be used again for 90 days.

Endpoints that use transactionId for idempotency

Activate Card
Add Account
Add Card
Assess Fee
Cancel ACH Transaction
Cancel Bill Payment
Create Account
Create Account Transfer
Create ACH Transaction
Create Adjustment
Create Bill Payment
Create Bulk Card Order
Create IVR Call
Create Payment
Create Provisioning Request
Create Single-Use Virtual Card
Create Virtual Card
Delete Account-Level Auth Control
Delete Account-Level MCC Control
Delete Account-Level Merchant Control
Force Pass CIP
Modify On-Demand Alert Status
Modify Pending Deposit Status
Modify Status
Move Card
Reset Card PIN Fail Count
Reverse Adjustment
Reverse Fee
Set Account Feature
Set Account-Level Auth Control
Set Account-Level MCC Controls
Set Account-Level Merchant Control
Start Enrollment
Update Account
Update Pending Merchant Credit

Endpoints that use other methods to avoid duplicates

  • Replace Lost/Stolen Card — If the card status is already L or S, or if a replacement card is being processed, the endpoint returns status_code: 638-03 or status_code: 638-05.

Endpoints without idempotency checks

There is no idempotency check for read-only endpoints such as Get Balance, Verify Account, or Search Biller Directory. Read-only endpoint names typically begin with one of these strings: get, verify, is or search.

Other endpoints that are not listed above also do not have idempotency checks.