Transaction Initial Status

Retrieve the initial status of transactions submitted for a merchant.

This API helps resolve the "two generals" problem: when a request times out, or you get an unexpected error, you can't tell whether VeriCheck received it. Call this API to check whether the transaction was received.

You don't need to call it after every request. A successful response already includes the transaction ID and the same initial status this API returns. Use it only when you don't get a response or get an unexpected error.

Get transactions

Two forms of the endpoint are available.

MethodPathDescription
GET/{merchant_uuid}Returns the 250 most recent transactions for the merchant.
GET/{merchant_uuid}/{pointer}Returns all transactions created after the given pointer.

Path parameters

NameTypeDescription
merchant_uuidstringThe merchant's UUID. The merchant must be active.
pointerintegerOptional. The new_pointer value from a previous response. Only transactions newer than this are returned.

Example request

curl -u YOUR_API_KEY: \
  https://txn-initial-status.vericheck.com/MERCHANT_UUID

Poll for new transactions using the pointer from the last response:

curl -u YOUR_API_KEY: \
  https://txn-initial-status.vericheck.com/MERCHANT_UUID/12345

Example response

{
  "success": true,
  "new_pointer": 12345,

  "transactions": [
    {
    	"id":"txn_jsruCj",
    	"created_date":"2026-10-08 12:04:00",
    	"amount":1234,
    	"type":"credit",
    	"sec_code":"WEB",
    	"description":"Noodels",
    	"check_number":"",
    	"customer_name":"Bobby tab",
    	"routing_number":"123456789",
    	"account_number":"1234",
    	"account_type":"savings",
    	"status":"A",
    	"status_reason":"This transaction has been accepted"}
  ]
}

Response fields

FieldTypeDescription
successbooleantrue if the request succeeded.
new_pointerintegerPass this value as pointer on your next request to get only newer transactions. If there are no new transactions, the pointer you sent is returned unchanged.
transactionsarrayTransactions, newest first. Empty if there is nothing new.

Transaction object

FieldTypeDescription
idstringTransaction ID (txn_...). This is the same ID returned when the transaction or reversal was created.
created_datestringDate and time the transaction was created (YYYY-MM-DD HH:MM:SS).
amountnumberTransaction amount.
typestringdebit or credit. Reversals appear as credit transactions.
sec_codestringStandard Entry Class (SEC) code.
descriptionstringTransaction description.
check_numberstringCheck number, if provided.
customer_namestringCustomer name on the account.
routing_numberstringRouting number.
account_numberstringLast 4 digits of the account number only.
account_typestringAccount type.
statusstringInitial status. See below.
status_reasonstringReason for the status.

Status values

StatusMeaning
AAccepted. The transaction was received and accepted for processing.
DDeclined. status_reason explains why.
EErrored. status_reason explains why.

📘 A is the initial status only

A transaction that later settles, returns, or is voided still shows A here.

Confirming a reversal after a timeout

If a reversal request (PUT /transactions/{txn_id}/reverse) times out and you don’t know whether it was received:

Do not resend immediately.
Call this API and look for a new credit transaction that matches the original account (routing number and last 4 of the account number), the reversal amount, and a recent created_date.
Interpret the result:
status: "A": the reversal was received. Do not resend.
status: "D" or "E": the reversal failed. See status_reason. You can correct the problem and resend.
No matching credit: the reversal was not processed. It is safe to resend.

🚧 Reversal credits are not linked to the original transaction

The response does not include the original transaction’s ID. Match on account, amount, and dateErrors

Errors return HTTP 200 with success: false. Check the success field rather than the HTTP status.

{"success": false, "error": "AUTH_ERROR", "msg": ["Authorization Failed"]}

error msg Cause
AUTH_ERROR Authorization Required No API key was sent.
AUTH_ERROR Authorization Failed The API key was not recognized.
AUTH_ERROR Invalid Merchant UUID The merchant doesn’t exist or isn’t active.
AUTH_ERROR Invalid API Key for Merchant The API key belongs to a different group than the merchant.
SYSTEM_ERROR System Error Unexpected server error. Retry later.


Did this page help you?