Skip to navigation

Get charge status

Returns the status of a charge-card interaction.

Check result.result for approval, not status. A declined card still returns status: succeeded with no stage_errors, because the workflow completed as requested. result is the Payments API Charge response, merged with signature and stage_errors. Its own result field is A (Approved), B (Retry), or C (Declined).

Printing and emailing also run on a decline. If print_receipt or send_receipt was set, the merchant gets a receipt for the declined charge, so don’t treat “printed” or “emailed” as a signal that the card was approved.

The Charge response varies by gateway, so the fields shown in the examples are representative, not exhaustive. result.amount is the decimal-dollar string submitted on the request.

stage_errors keys

KeyPossible valuesWhen
readError messageThe read stage failed or was cancelled. The charge was never attempted.
signatureAlways "not supported"The terminal can’t capture signatures. Other signature failures surface as a read error.
chargeError messageThe charge couldn’t be attempted or completed because of a gateway fault. A decline never appears here.
print"not supported" or an error messageCompare against the literal "not supported" to tell “the terminal can’t print” apart from “the terminal tried and failed.”
otherError messageAny uncategorized error.

Authentication

AuthorizationBearer

Use a Payments API key as the bearer token: Authorization: Bearer <api_key>. Get a fresh key from Refresh API Keys.

Path parameters

device_idstringRequired

Hardware Serial Number (HSN) of the terminal, provided by your Integration Delivery lead.

interaction_idstringRequiredformat: "uuid"

The interaction_id returned when the interaction was created.

Query parameters

midstringOptional

Merchant ID. Required when your bearer token is an ISV token acting on behalf of a merchant. If the mid can't be resolved to an authorized account, the request returns 400.

Response

Interaction status
interaction_idstringformat: "uuid"
The interaction identifier.
statusenum
Status of the interaction.
Allowed values:
resultobject or null

null while pending. Check result.result for approval or decline.

updated_atstringformat: "date-time"
Time of the last status update.

Errors

401
Unauthorized Error
404
Not Found Error
429
Too Many Requests Error