List Retained TED IN Messages
Use this endpoint to list the inbound JD messages that this service neither credited nor returned, oldest first, so an operator can see what is stuck, why, for how long, and how much money is behind it.
By default (state=open) the list shows only what is still open. A retention closed through Close Unsettled TED IN Credit leaves this list and every retained gauge, which lets an alert on those numbers clear. state=closed or state=all bring the closed rows back, each with its outcome, its note, and the person who wrote it.
Six retention reasons are written. A person ends four of them:
UNRECOGNIZED_TYPE: the message type is not one that this service consumes.ACCOUNT_NOT_OWNED: the recipient account is not one that this service owns.CLASSIFICATION_FAILED: the credit carries an amount that nothing can credit.RECIPIENT_NOT_FOUND_RETURN_UNAUTHORIZED: the recipient was not found, and the tenant has not authorized the automatic return to the clearing house.
Two end by themselves and carry drained: false:
LEDGER_ROUTE_UNRESOLVED: no ledger routing binding answers the organization, ledger, and transfer type that the credit was refused for (TED_OUTfor a chargeback compensation, which debits the beneficiary).RECIPIENT_AMBIGUOUS_ORGANIZATIONS: the recipient sits in several of the tenant’s own organizations under the receiving ISPB.
These two are written only when the tenant’s database carries the current migrations. Before that, a routing hold writes no row and appears on no list, so an empty list does not prove that no credit is held. The poller asks their question again on every cycle. When the configuration answers it, the credit lands and the row leaves this list with no operator action, so the close endpoint refuses them with BTF-0217. That check does not see a recipient re-homed in CRM: after such a repair, call Replay TED IN Backlog, which re-drives every held row once. A credit held because the ISPB-to-organization binding could not be read writes no row and is not listed here. It lands by itself once the read recovers.
The reason filter also accepts ACCOUNT_UNASSIGNED, AMBIGUOUS_CONTROL_ID, and OWNERSHIP_DECISION_UNAVAILABLE. No row carries these reasons, so a filter on one of them returns an empty list.
Returning funds is irreversible; retention is not. Nothing from the original message is rendered: contentBytes says how much is held without showing any of it. A closed row carries the operator’s note verbatim. The note is free text that a member of staff wrote about their own decision, 10 to 500 characters, never derived from the message and not sanitized. The retained records kept on the undeliverable side are listed by List Undeliverable TED IN Credits with status=RETAINED.
This is a read-only administrative endpoint. It does not require the X-Organization-Id header. In multi-tenant deployments the list is scoped to the caller’s resolved tenant database.
Autorizaciones
JWT Bearer token authentication. The tenantId is derived from the bearer token or authenticated request context and is not supplied through X-Organization-Id.
Parámetros de consulta
Filter by retention reason.
UNRECOGNIZED_TYPE, ACCOUNT_NOT_OWNED, ACCOUNT_UNASSIGNED, RECIPIENT_NOT_FOUND_RETURN_UNAUTHORIZED, CLASSIFICATION_FAILED, AMBIGUOUS_CONTROL_ID, LEDGER_ROUTE_UNRESOLVED, RECIPIENT_AMBIGUOUS_ORGANIZATIONS, OWNERSHIP_DECISION_UNAVAILABLE Closure window. open (default) is what is still stuck and what every retained gauge counts; closed is what an operator already settled, with who, when, and how; all is both.
open, closed, all Maximum number of records to return.
1 <= x <= 200Number of records to skip for pagination. Advance it by the returned value of the previous page.
x >= 0
