Deposit Lookup

Trace an incoming deposit by its payment-rail reference to learn whether it was credited, rejected, is still pending, or never happened, and spot fraudulent vouchers.

What is the Deposit Lookup?

When a payer tells you they sent funds to one of your virtual accounts and you cannot find the credit, the Deposit Lookup lets you trace the transfer using the reference on the payer's receipt. In one call you learn whether the deposit was credited, is still pending, was rejected, or never happened.

It also helps you spot fraudulent vouchers: a receipt whose reference the rail has no record of was never a real transfer, and a receipt whose amount does not match the amount the rail reports has been tampered with.

The lookup is read-only and works with read-only API keys.


📘

Supported today for BRL deposits received over Pix and ARS deposits received over Transferencias 3.0. Other currencies will use the same endpoint and response as they are added.


Supported rails and references

CurrencyRailReference to sendFormat
BRLPixEnd-to-end ID (endToEndId on the payer's receipt)32 alphanumeric characters starting with E, e.g. E35713491202507231922504844586AF
ARSTransferencias 3.0 (Coelsa)Coelsa transfer IDUp to 64 characters: letters, digits, ., _ or -, e.g. Z4K6DVNOPXMX4RE195J8LQ

How it works

  1. Call GET /v1/troubleshooting/deposits/ with the currency and the reference from the payer's receipt.
  2. The response carries a single result field that tells you what happened to the transfer, plus the details available for that case.
📘

Pix end-to-end IDs are often transcribed by hand and the letter O and the digit 0 get mixed up. For BRL, Infinia also tries the common O/0 variations of the reference. When the match came from a corrected reference, typo_corrected is true and matched_reference holds the reference that actually matched.

Coelsa IDs are matched exactly: two different ARS transfers can have IDs that differ by nothing more than an O against a 0, so guessing between them would be unsafe. Send the reference exactly as it appears on the receipt.


Request

curl -u "$API_KEY_USER:$API_KEY_PASSWORD" \
  "https://app2test.infiniaweb.com/infinia_api/v1/troubleshooting/deposits/?currency=BRL&reference=E35713491202507231922504844586AF"
ParameterRequiredDescription
currencyYesBRL or ARS. Selects the rail and how the reference is validated.
referenceYesThe rail reference of the transfer, as shown on the payer's receipt.

The lookup is scoped to the authenticated company and its sub-companies. To run it as a specific sub-company, send its ID in the X-Company-Id header, as with any other endpoint.


Understanding the result

resultMeaningWhat to do
CREDITEDThe transfer was credited to one of your accounts. movement identifies the credit.Nothing to do. Reconcile using the movement ID.
PAYOUTThe reference belongs to a transfer you sent, not one you received (ARS only).Look it up under your payouts instead.
OTHER_COMPANYThe transfer was credited to an Infinia account outside your company structure. No further details are disclosed.The payer most likely used the wrong destination details. Ask them to check the account they paid to.
PENDINGThe rail knows the transfer but the funds have not settled yet.Wait. For ARS, the payer must approve the transfer before expires_at.
REJECTEDThe rail declined the transfer. reason and description explain why.The funds were not credited. Share the reason with the payer so they can retry.
EXPIREDThe ARS transfer expired without the payer's approval.Ask the payer to initiate a new transfer.
NOT_CREDITEDThe rail reports the transfer as settled, but there is no credit in your account.Contact support quoting the reference.
LOOKUP_FAILEDThe rail could not resolve the reference right now.Check the reference with the payer and retry in a few minutes.

Response

Every field is always present; fields that do not apply to the result are null.

FieldDescription
currencyBRL or ARS.
referenceThe reference exactly as you sent it.
matched_referenceThe reference that matched. Differs from reference only when a typo was corrected.
typo_correctedtrue when the match came from an O/0 correction. Only Pix end-to-end IDs are corrected that way, so for ARS this is always false.
resultOne of the values in the table above.
reasonThe rail's status or rejection code, as the rail reports it (for example SENDER_NOT_ALLOWED, INICIADO, CP001). On LOOKUP_FAILED it is PROVIDER_UNAVAILABLE when the rail could not be reached at all. null when not applicable.
descriptionHuman-readable explanation of the result, in English.
amountAmount of the transfer as reported by the rail. Compare it with the payer's receipt to detect tampering.
senderPayer details as reported by the rail: full_name, document_number, bank_code, bank_name, account_number.
rail_dateWhen the rail registered the transfer (ISO 8601, UTC).
expires_atFor ARS transfers awaiting approval, when they expire (ISO 8601, UTC).
movementThe credit or debit in your account: id, account_id, amount, currency, created_at. Only for CREDITED and PAYOUT.

Credited deposit

The response identifies the credit in your account; sender and rail details are null. This example was sent with the letter O in place of a 0.

{
  "status": "success",
  "data": {
    "currency": "BRL",
    "reference": "E357134912025072319225O4844586AF",
    "matched_reference": "E35713491202507231922504844586AF",
    "typo_corrected": true,
    "result": "CREDITED",
    "reason": null,
    "description": null,
    "amount": null,
    "sender": null,
    "rail_date": null,
    "expires_at": null,
    "movement": {
      "id": "19683520",
      "account_id": "5123",
      "amount": 900.00,
      "currency": "BRL",
      "created_at": "2026-07-23T19:25:41Z"
    }
  }
}

Rejected deposit

The rail declined the transfer. PENDING and EXPIRED responses have the same shape.

{
  "status": "success",
  "data": {
    "currency": "BRL",
    "reference": "E18236120202508191411X4TP9Z0KQ2M",
    "matched_reference": "E18236120202508191411X4TP9Z0KQ2M",
    "typo_corrected": false,
    "result": "REJECTED",
    "reason": "SENDER_NOT_ALLOWED",
    "description": "The sender is not allowed to fund this account.",
    "amount": 1500.00,
    "sender": {
      "full_name": "MARIA DA SILVA",
      "document_number": "123.456.789-09",
      "bank_code": "18236120",
      "bank_name": "Nu Pagamentos",
      "account_number": "12345678-9"
    },
    "rail_date": "2026-08-19T14:11:07Z",
    "expires_at": null,
    "movement": null
  }
}

Settled but not credited

The rail reports the transfer as settled and Infinia has no matching credit. Contact support with the reference.

{
  "status": "success",
  "data": {
    "currency": "ARS",
    "reference": "Z4K6DVNOPXMX4RE195J8LQ",
    "matched_reference": "Z4K6DVNOPXMX4RE195J8LQ",
    "typo_corrected": false,
    "result": "NOT_CREDITED",
    "reason": "ACREDITADO",
    "description": "The rail reports this transfer as settled but it has not been credited to your account. Contact support quoting the reference.",
    "amount": 250000.00,
    "sender": {
      "full_name": "JUAN PEREZ",
      "document_number": "20-12345678-9",
      "bank_code": "011",
      "bank_name": "Banco de la Nación Argentina",
      "account_number": "0110599520000001234567"
    },
    "rail_date": "2026-09-05T13:02:00Z",
    "expires_at": "2026-09-08T13:02:00Z",
    "movement": null
  }
}

Errors

HTTP statusWhen
400The reference does not have a valid format for the selected rail, or the currency is not enabled for your company. The message explains which.
404Neither Infinia nor the rail has any record of the reference.
401Invalid credentials.
500An unexpected error on our side. The transfer was not looked up, so retry; if it persists, contact support with the trace_id from the response.
⚠️

A 404 means there is no record of the reference anywhere. Double-check it with the payer: a voucher whose reference does not exist is a strong sign of a fabricated receipt. If the payer's bank confirms the transfer was completed, contact support with the reference and the receipt.


Good to know

  • Lookups can take several seconds. Set your client timeout accordingly.
  • The endpoint traces incoming transfers to your virtual accounts. For the status of a transfer you sent, use the Payouts API.
  • Sender details are included for pending, rejected, expired and not-credited transfers. A credited deposit is identified by its movement instead.

Learn more


Did this page help you?