Skip to main content
Baobyte AML Suite
Documentation contents

API

Errors

One problem shape everywhere, a stable type to branch on, a request id to quote — and several refusals that are the system working rather than failing.

Every error response is an RFC 9457 problem detail — including validation failures. There is no second error shape to handle, and no endpoint that returns a bare string on failure.

Problem detail
{
  "type":       "https://.../problems/validation-failed",  // stable; clients match on this
  "title":      "Validation failed",
  "status":     422,
  "detail":     "The submitted answers do not satisfy the form in force.",
  "instance":   "/v1/customers",
  "request_id": "01J...",                                   // quote this to support
  "errors": [
    { "field": "answers.source_of_funds", "code": "required", "message": "..." }
  ]
}

Match on type, not on titlePermalink to this section

The type URI is a stable, machine-readable identifier and is part of the contract. Titles and details are human-readable and may be reworded. A client branching on the title string is a client that breaks on a copy edit.

The request idPermalink to this section

Every problem carries a request id that appears in the application logs and in the audit trail. Quoting it to support turns 'a call failed this morning' into a single record. Log it on the client side for any non-2xx.

Reading a refusalPermalink to this section

Several statuses on this API mean 'the platform declines to pretend', and are worth handling distinctly rather than as generic failures.

Report transport unavailable
Returned by the legacy submit operation. The report exists, is valid and is approved — but its schema is not confirmed authoritative, so the platform will not record it as filed. This is a conflict, not a server fault, and retrying will not clear it.
Provider not configured
An identity-verification or watchlist adapter was called and none is registered. It is explicitly not a pass and not a soft failure; a caller that treats it as either has defeated the point of the distinction.
Step-up required
The operation needs re-authentication now, not a session from earlier. The problem names the requirement so a client can prompt.
Approval required
The change was accepted as a proposal rather than applied. Someone other than the caller must approve it.