Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.bloobank.com/llms.txt

Use this file to discover all available pages before exploring further.

Handling errors in code

try {
  await client.pixOut({
    /* ... */
  });
} catch (err) {
  const status = err.response?.error?.status;
  switch (status) {
    case "SIGNATURE_INVALID":
      console.error("Check canonical string and low-S normalization");
      break;
    case "TIMESTAMP_SKEW_EXCEEDED":
      console.error("Clock drift — sync via NTP");
      break;
    case "REPLAY_DETECTED":
      console.error("Generate a new X-Access-Request-Id and retry");
      break;
    default:
      throw err;
  }
}

Retry policy

  • 5xx and network errors: retry with exponential backoff (e.g., 1 s, 2 s, 4 s, 8 s — max 5 attempts).
  • 401 SIGNATURE_INVALID / TIMESTAMP_SKEW_EXCEEDED: fix the root cause before retrying.
  • 401 REPLAY_DETECTED: generate a new X-Access-Request-Id (and a fresh timestamp) before retrying.
  • 403 RBAC_DENY: do not retry — fix permissions in the Dashboard.
  • 400 validation errors: do not retry — fix the request payload.