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
| Currency | Rail | Reference to send | Format |
|---|---|---|---|
| BRL | Pix | End-to-end ID (endToEndId on the payer's receipt) | 32 alphanumeric characters starting with E, e.g. E35713491202507231922504844586AF |
| ARS | Transferencias 3.0 (Coelsa) | Coelsa transfer ID | Up to 64 characters: letters, digits, ., _ or -, e.g. Z4K6DVNOPXMX4RE195J8LQ |
How it works
- Call
GET /v1/troubleshooting/deposits/with thecurrencyand thereferencefrom the payer's receipt. - The response carries a single
resultfield 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
Oand the digit0get mixed up. For BRL, Infinia also tries the common O/0 variations of the reference. When the match came from a corrected reference,typo_correctedistrueandmatched_referenceholds the reference that actually matched.Coelsa IDs are matched exactly: two different ARS transfers can have IDs that differ by nothing more than an
Oagainst a0, 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"| Parameter | Required | Description |
|---|---|---|
currency | Yes | BRL or ARS. Selects the rail and how the reference is validated. |
reference | Yes | The 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
result | Meaning | What to do |
|---|---|---|
CREDITED | The transfer was credited to one of your accounts. movement identifies the credit. | Nothing to do. Reconcile using the movement ID. |
PAYOUT | The reference belongs to a transfer you sent, not one you received (ARS only). | Look it up under your payouts instead. |
OTHER_COMPANY | The 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. |
PENDING | The rail knows the transfer but the funds have not settled yet. | Wait. For ARS, the payer must approve the transfer before expires_at. |
REJECTED | The rail declined the transfer. reason and description explain why. | The funds were not credited. Share the reason with the payer so they can retry. |
EXPIRED | The ARS transfer expired without the payer's approval. | Ask the payer to initiate a new transfer. |
NOT_CREDITED | The rail reports the transfer as settled, but there is no credit in your account. | Contact support quoting the reference. |
LOOKUP_FAILED | The 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.
| Field | Description |
|---|---|
currency | BRL or ARS. |
reference | The reference exactly as you sent it. |
matched_reference | The reference that matched. Differs from reference only when a typo was corrected. |
typo_corrected | true 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. |
result | One of the values in the table above. |
reason | The 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. |
description | Human-readable explanation of the result, in English. |
amount | Amount of the transfer as reported by the rail. Compare it with the payer's receipt to detect tampering. |
sender | Payer details as reported by the rail: full_name, document_number, bank_code, bank_name, account_number. |
rail_date | When the rail registered the transfer (ISO 8601, UTC). |
expires_at | For ARS transfers awaiting approval, when they expire (ISO 8601, UTC). |
movement | The 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 status | When |
|---|---|
400 | The reference does not have a valid format for the selected rail, or the currency is not enabled for your company. The message explains which. |
404 | Neither Infinia nor the rail has any record of the reference. |
401 | Invalid credentials. |
500 | An 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
404means 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
- Troubleshooting API Reference
- Virtual Accounts / Deposits
- Virtual accounts by geography — rails and identifiers per country
Updated about 9 hours ago

