application/problem+json media type:
type– A URI that identifies the error in the Lerian error catalog. Built ashttps://errors.lerian.studio/v1/<code>.title– The HTTP status text (for example,Unprocessable Entity).status– The HTTP status code.detail– A human-readable explanation of this occurrence. On a5xxresponse Consignado sanitizes the detail tointernal error, so an internal cause stays out of the body. Branch oncodeand on the status instead.code– A stable identifier for the error. The tables below list theCLT-NNNNcodes. Some operations answer a named code of their own, such asCURSOR_EXPIREDon the registration inventory sweep. A request that fails schema validation carries nocode: it answers422with the detailvalidation failed, or400when the body cannot be parsed, and theerrorslist names each field.errors– Optional list of individual error details, each with alocation, amessage, and avalue.upstream– Dataprev’s own error, when the gateway relays one. It holds Dataprev’scodeandmessage, and it survives the5xxsanitization that clearsdetail. See Dataprev reason codes.refusal– On a bid refusal: the reason the gateway recorded for the bid, with itssource,field,rule, anddetail. A refusal from Dataprev also carries Dataprev’scode.
400: Bad request
401: Unauthorized
403: Forbidden
404: Not found
409: Conflict
CLT-0007 with the detail an identical request is already in flight marks a request the gateway has not finished. Retry that request under the same idempotency key.
Command conflicts answer a named code in place of CLT-0007, so a client can tell them apart. Read code and detail together before you retry. These code spellings are part of the wire contract and do not change.
After
DATAPREV_CREDENTIAL_REQUIRED, upload the tenant’s Dataprev certificate, OAuth credentials, and requester code, then send the request again.
410: Gone
The paginated registration inventory sweep issues a cursor with a limited retry window.
413: Request entity too large
422: Unprocessable entity
A command sent again under an idempotency key that an earlier request already spent can answer one of four named codes. The earlier request can already have reached Dataprev. Do not send the command again, under this key or a new one. Read the current state of the record the command changes.
429: Too many requests
Wait for the time the
Retry-After header gives, then send the request again.
500: Internal server error
501: Not implemented
A
501 answers an operation your deployment has not enabled. The routes stay mounted, so the answer arrives per request rather than as a missing path. Contract artifact downloads, contract corrections, disbursement confirmation, cessão registration, bid submission, and operations that reach Dataprev answer 501 until your deployment enables them.
The detail reads internal error, because Consignado sanitizes the detail on a 5xx response. Branch on the status.
503: Service unavailable
When Dataprev produced the fault, the response also carries
upstream with Dataprev’s own code and message.
Dataprev reason codes
Consignado relays Dataprev’s reason codes rather than mapping them onto codes of its own. That keeps a refusal readable against what Dataprev said. Read each reason code against Dataprev’s specification, not against this page. Dataprev can publish a code this page does not list, and the gateway still delivers it to you. They reach you in two places. On a refusal. The
upstream member carries Dataprev’s own code and message. A refusal with several codes lists them comma-separated. The member holds Dataprev’s codes and sentences, bounded in length, rather than a response body. A 422 carries it for a deterministic rejection, and a 503 carries it for a retry-later fault.
On contract and margin responses. Several response fields pair a Dataprev reason code with Dataprev’s own label for it. A margin read publishes blockType and ineligibilityReason, which spell the pair code and description. A contract read publishes motivo_exclusao, origem_averbacao, origem_exclusao, portabilidade_situacao, and situacao_bloqueio_garantia, which spell it codigo and descricao. Each field holds a numeric code and the text Dataprev returned beside it.
Treat the set as open. Map the reason codes your integration acts on, and pass the rest through with their labels, so a code you have not mapped yet stays readable to an operator.
