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 Adjustment, you pass the transactionId
from the original call as the transactionId
for the reverse call, such that a Create Adjustment call and the corresponding Reverse Adjustment 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
transactionId
for idempotencyActivate 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 Create Wire Transaction 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
orS
, or if a replacement card is being processed, the endpoint returnsstatus_code: 638-03
orstatus_code: 638-05
. - Create Destination Account — Uses a combination of the UUID and the XID to ensure a duplicate destination account is not created.
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.