{
  "item": [
    {
      "name": "Empresas",
      "description": "",
      "item": [
        {
          "id": "350b9dfa-621f-4832-83a1-8a9050cd2ed2",
          "name": "Lista las empresas del tenant con sus series del ambiente de la clave",
          "request": {
            "name": "Lista las empresas del tenant con sus series del ambiente de la clave",
            "description": {
              "content": "Permite resolver `company_id` y las series sin entrar al back office. Lista todas las empresas del tenant, aunque la clave tenga una por defecto, ordenadas por creación. No devuelve certificados, credenciales ni otros secretos.\n\nRequiere el scope `companies:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "companies"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "439"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "019b102a-747b-40be-a9ab-a6dd01702108",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n      \"ruc\": \"20100066603\",\n      \"legal_name\": \"Empresa de Ejemplo S.A.C.\",\n      \"trade_name\": \"Ejemplo\",\n      \"status\": \"draft\",\n      \"environments_ready\": {\n        \"test\": true,\n        \"live\": false\n      },\n      \"series\": [\n        {\n          \"id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6d\",\n          \"establishment_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6c\",\n          \"environment\": \"test\",\n          \"document_type\": \"boleta\",\n          \"code\": \"B001\",\n          \"is_default\": true\n        },\n        {\n          \"id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6e\",\n          \"establishment_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6c\",\n          \"environment\": \"test\",\n          \"document_type\": \"factura\",\n          \"code\": \"F001\",\n          \"is_default\": true\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee28aab1-00b1-44d9-9fa1-0624697517be",
              "name": "Solicitud mal formada. Códigos: `invalid_cursor` y `bad_request`, cuando un parámetro no tiene el formato de su tipo, como `limit=abc`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"invalid_cursor\",\n    \"message\": \"El cursor no es válido.\",\n    \"param\": \"cursor\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f5819d4-e008-40af-a3c7-34005d921005",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff2e8953-81f5-4ebd-9fc6-7f1adb6d7791",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope companies:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0243f9c4-c5c0-4653-b5d6-5811301d8912",
              "name": "`limit_invalid`: `limit` está fuera del rango de 1 a 200.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"limit_invalid\",\n    \"message\": \"El límite debe estar entre 1 y 200.\",\n    \"param\": \"limit\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "52f7986d-a772-4435-9e1e-a94b474041e7",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e7916745-d84c-4d3b-a6db-40bfcfd87bac",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "companies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    },
    {
      "name": "Comprobantes",
      "description": "",
      "item": [
        {
          "id": "a7701221-efc7-4a95-b23f-4418b3760666",
          "name": "Emite una boleta o una factura",
          "request": {
            "name": "Emite una boleta o una factura",
            "description": {
              "content": "Responde de inmediato con el número, el PDF y el QR; el envío a SUNAT es asíncrono, y su resultado se consulta en `sunat_status` y `sunat.response_code`, nunca como un error HTTP de esta operación. La plataforma recalcula todos los importes. Una solicitud rechazada no consume número.\n\nRequiere el scope `documents:write`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": []
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                  "type": "text/plain"
                },
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "2c32ee61-9887-46cc-ad80-c6733c3955c0",
              "name": "Documento emitido y numerado. Con `Idempotent-Replayed: true`, es la respuesta guardada de la solicitud original.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"boleta\",\n  \"series\": \"B001\",\n  \"number\": 125,\n  \"full_number\": \"B001-125\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12,\n      \"unit_value\": 10.1694915254,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 10.17,\n      \"igv_amount\": 1.83,\n      \"line_total\": 12\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 10.17,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 1.83,\n    \"total\": 12,\n    \"amount_in_words\": \"DOCE CON 00/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-17T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|03|B001|125|1.83|12.00|2026-10-09|1|45678912|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": null,\n  \"credit_note\": null,\n  \"debit_note\": null,\n  \"external_id\": \"venta-98231\",\n  \"replaces_document_id\": null,\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  },\n  \"created_at\": \"2026-10-09T14:03:21.482913Z\",\n  \"updated_at\": \"2026-10-09T14:03:21.482913Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "33591331-aa31-4c65-a6d6-1f1d1feab660",
              "name": "Documento emitido y numerado. Con `Idempotent-Replayed: true`, es la respuesta guardada de la solicitud original.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"factura\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Servicio mensual\",\n      \"quantity\": 2,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 100\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"factura\",\n  \"series\": \"F001\",\n  \"number\": 42,\n  \"full_number\": \"F001-42\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Servicio mensual\",\n      \"quantity\": 2,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 118,\n      \"unit_value\": 100,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 200,\n      \"igv_amount\": 36,\n      \"line_total\": 236\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 200,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 36,\n    \"total\": 236,\n    \"amount_in_words\": \"DOSCIENTOS TREINTA Y SEIS CON 00/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-13T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|01|F001|42|36.00|236.00|2026-10-09|6|20131312955|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": null,\n  \"credit_note\": null,\n  \"debit_note\": null,\n  \"external_id\": null,\n  \"replaces_document_id\": null,\n  \"metadata\": null,\n  \"created_at\": \"2026-10-09T14:03:21.482913Z\",\n  \"updated_at\": \"2026-10-09T14:03:21.482913Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9aabde94-063a-46eb-a3f1-4f353e62e18a",
              "name": "Documento emitido y numerado. Con `Idempotent-Replayed: true`, es la respuesta guardada de la solicitud original.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"factura\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\"\n  },\n  \"detraction\": {\n    \"code\": \"037\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Servicio de estacionamiento mensual\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 1000\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5d\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"factura\",\n  \"series\": \"F001\",\n  \"number\": 43,\n  \"full_number\": \"F001-43\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Servicio de estacionamiento mensual\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 1180,\n      \"unit_value\": 1000,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 1000,\n      \"igv_amount\": 180,\n      \"line_total\": 1180\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 1000,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 180,\n    \"total\": 1180,\n    \"amount_in_words\": \"MIL CIENTO OCHENTA CON 00/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-13T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|01|F001|43|180.00|1180.00|2026-10-09|6|20131312955|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5d/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5d/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": null,\n  \"credit_note\": null,\n  \"debit_note\": null,\n  \"external_id\": null,\n  \"replaces_document_id\": null,\n  \"metadata\": null,\n  \"created_at\": \"2026-10-09T14:05:02.771046Z\",\n  \"updated_at\": \"2026-10-09T14:05:02.771046Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "beba792a-556b-433b-b613-231135d3758c",
              "name": "Solicitud mal formada. Códigos: `invalid_json`, `bad_request`, `idempotency_key_required`, `idempotency_key_invalid`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"idempotency_key_required\",\n    \"message\": \"Falta la cabecera Idempotency-Key.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f69bd1b0-fd24-4c02-abe9-8b0caa666aed",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b9a09f0d-e6e3-426b-8a2e-e243f5ac78a1",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:write que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90eea4cc-e8d1-4268-b0b5-4707a01df7cd",
              "name": "Conflicto con un documento existente. `idempotency_in_progress` se reintenta con la misma clave unos segundos después. `external_id_conflict` no se reintenta: `document_id` señala el documento existente. `document_already_replaced` tampoco: `document_id` señala el reemplazo.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"idempotency_in_progress\",\n    \"message\": \"La solicitud con esta Idempotency-Key todavía se está procesando. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f136596b-5616-4ba0-8ff2-91c1cf01f13d",
              "name": "`payload_too_large`: el cuerpo supera 256 KiB.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"payload_too_large\",\n    \"code\": \"payload_too_large\",\n    \"message\": \"El cuerpo supera el tamaño máximo: 256 KiB, o 2 MiB al subir un certificado, un logo o un CDR.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ef9d7c0-c1dd-4b75-83a7-b150d6e96cfd",
              "name": "`unsupported_media_type`: el cuerpo no llega con `Content-Type: application/json`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unsupported_media_type\",\n    \"code\": \"unsupported_media_type\",\n    \"message\": \"El cuerpo debe enviarse con Content-Type application/json.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dc920b38-1139-4660-86f6-4c94113222a6",
              "name": "Datos no válidos: `error.param` señala el campo y `errors` lista todos los problemas si hay varios. El cuerpo corregido se envía con la misma `Idempotency-Key`, salvo en `idempotency_key_reused`: esa clave ya es de otra solicitud y repetirla devuelve el mismo error, así que se envía el cuerpo original o se usa una clave nueva.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"customer_document_required\",\n    \"message\": \"Una boleta mayor a S/ 700.00 requiere identificar al cliente con un documento admitido.\",\n    \"param\": \"customer.document_number\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "032c94de-ce40-4abf-bcf3-61cc753f2633",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58dc41b8-222b-4ac0-b7c8-6fdbf249fb8d",
              "name": "Falla transitoria, como `database_unavailable`, `storage_unavailable` o `encryption_unavailable`. Se reintenta con la misma `Idempotency-Key` y una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": []
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"boleta\",\n  \"external_id\": \"venta-98231\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\"\n  },\n  \"items\": [\n    {\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12\n    }\n  ],\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  }\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a3fd3c2d-e751-4c0a-9292-d0bfb08440fa",
          "name": "Lista los documentos del ambiente de la clave",
          "request": {
            "name": "Lista los documentos del ambiente de la clave",
            "description": {
              "content": "Por defecto, el más reciente primero. Para sincronizar de forma incremental, usa `order=updated_at`, guarda el último `updated_at` visto, consulta desde ese valor con un solape de 2 minutos y descarta los repetidos por `id`. Los filtros se combinan. Sin `items` ni `qr_image`.\n\nRequiere el scope `documents:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "company_id",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                    "type": "text/plain"
                  },
                  "key": "type",
                  "value": "nota_debito"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                    "type": "text/plain"
                  },
                  "key": "status",
                  "value": "void_requested"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                    "type": "text/plain"
                  },
                  "key": "sunat_status",
                  "value": "pending"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por serie, como `B001`.",
                    "type": "text/plain"
                  },
                  "key": "series",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "issue_date_from",
                  "value": "1992-10-23"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "issue_date_to",
                  "value": "1992-10-23"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                    "type": "text/plain"
                  },
                  "key": "external_id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "created_from",
                  "value": "2006-05-21T13:32:19.170Z"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "created_to",
                  "value": "2006-05-21T13:32:19.170Z"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "updated_from",
                  "value": "2006-05-21T13:32:19.170Z"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "updated_to",
                  "value": "2006-05-21T13:32:19.170Z"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                    "type": "text/plain"
                  },
                  "key": "order",
                  "value": "updated_at"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                    "type": "text/plain"
                  },
                  "key": "limit",
                  "value": "439"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                    "type": "text/plain"
                  },
                  "key": "cursor",
                  "value": "string"
                }
              ],
              "variable": []
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "8cdfe270-1259-4e47-97e8-b0fbf58cb7ae",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a\",\n      \"object\": \"document\",\n      \"environment\": \"test\",\n      \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n      \"type\": \"boleta\",\n      \"series\": \"B001\",\n      \"number\": 125,\n      \"full_number\": \"B001-125\",\n      \"issue_date\": \"2026-10-09\",\n      \"currency\": \"PEN\",\n      \"customer\": {\n        \"document_type\": \"dni\",\n        \"document_number\": \"45678912\",\n        \"name\": \"Juan Pérez\",\n        \"address\": null,\n        \"email\": null\n      },\n      \"totals\": {\n        \"taxable\": 10.17,\n        \"exempt\": 0,\n        \"unaffected\": 0,\n        \"discount\": 0,\n        \"igv\": 1.83,\n        \"total\": 12,\n        \"amount_in_words\": \"DOCE CON 00/100 SOLES\"\n      },\n      \"status\": \"issued\",\n      \"sunat_status\": \"pending\",\n      \"delivery_status\": \"none\",\n      \"sunat\": {\n        \"response_code\": null,\n        \"description\": null,\n        \"notes\": [],\n        \"deadline_at\": \"2026-10-17T04:59:59.000000Z\",\n        \"submitted_at\": null,\n        \"accepted_at\": null,\n        \"reconciliation_required\": false\n      },\n      \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n      \"qr_text\": \"20100066603|03|B001|125|1.83|12.00|2026-10-09|1|45678912|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n      \"links\": {\n        \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/pdf\",\n        \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/xml\",\n        \"cdr\": null\n      },\n      \"affected_document_id\": null,\n      \"credit_note\": null,\n      \"debit_note\": null,\n      \"external_id\": \"venta-98231\",\n      \"replaces_document_id\": null,\n      \"metadata\": {\n        \"placa\": \"ABC-123\"\n      },\n      \"created_at\": \"2026-10-09T14:03:21.482913Z\",\n      \"updated_at\": \"2026-10-09T14:03:21.482913Z\"\n    }\n  ],\n  \"next_cursor\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15781f1b-08fb-42a5-9a53-50c9bb82eda6",
              "name": "Solicitud mal formada. Códigos: `invalid_cursor` y `bad_request`, cuando un parámetro no tiene el formato de su tipo, como `limit=abc`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"invalid_cursor\",\n    \"message\": \"El cursor no es válido para este orden.\",\n    \"param\": \"cursor\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4bcb9b47-a799-42ec-b57e-03aaf303a6e2",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "688bfaf8-73be-4f7c-8ae4-7b0f05152b96",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "662bbcf6-3ccc-4453-8371-723fd76a9b11",
              "name": "Parámetros no válidos: `error.param` señala cuál y `errors` lista todos los problemas si hay varios. Códigos: `filter_invalid`, `limit_invalid`, `field_invalid_characters`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"filter_invalid\",\n    \"message\": \"El filtro admite: factura, boleta, nota_credito, nota_debito.\",\n    \"param\": \"type\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fb5b51e4-821a-4163-be6c-b8212f124903",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4df11021-a8d5-4cd0-92f8-721559e28492",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por empresa emisora, por su UUID; uno mal escrito responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "company_id",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por tipo de comprobante. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `factura`: factura electrónica.\n- `boleta`: boleta de venta electrónica.\n- `nota_credito`: nota de crédito sobre una factura o una boleta.\n- `nota_debito`: nota de débito sobre una factura o una boleta. (This can only be one of factura,boleta,nota_credito,nota_debito)",
                        "type": "text/plain"
                      },
                      "key": "type",
                      "value": "nota_debito"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado interno. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `issued`: emitido, numerado y con XML firmado. Es el estado inicial y el habitual.\n- `void_requested`: se pidió anularlo y se espera que SUNAT acepte la baja.\n- `voided`: SUNAT aceptó la anulación. Es un estado final.\n- `expired`: se confirmó que no hubo un envío válido dentro del plazo. (This can only be one of issued,void_requested,voided,expired)",
                        "type": "text/plain"
                      },
                      "key": "status",
                      "value": "void_requested"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por estado fiscal. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `pending`: pendiente de informar a SUNAT: una factura y sus notas se envían solas, y una boleta y sus notas van en el resumen diario. Se puede entregar al cliente aclarando que falta la validación.\n- `submitted`: enviado, o conciliando un resultado desconocido. No se reemite mientras el resultado sea incierto.\n- `accepted`: aceptado por SUNAT.\n- `accepted_with_observations`: aceptado con observaciones, que están en `sunat.notes`.\n- `rejected`: rechazado; el motivo está en `sunat.description` y el número no se reutiliza. Una factura o una boleta se corrige emitiendo otro documento con `replaces_document_id`. Una nota de crédito se corrige emitiendo otra nota, porque `replaces_document_id` no aplica y la rechazada no cuenta en el saldo del afectado.\n- `deadline_missed`: se confirmó que no hubo un envío válido en plazo. Contacta a soporte antes de pedir una baja o emitir otro documento. (This can only be one of pending,submitted,accepted,accepted_with_observations,rejected,deadline_missed)",
                        "type": "text/plain"
                      },
                      "key": "sunat_status",
                      "value": "pending"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por serie, como `B001`.",
                        "type": "text/plain"
                      },
                      "key": "series",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión desde. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_from",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Fecha de emisión hasta. Fecha `YYYY-MM-DD` de Lima, incluida en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "issue_date_to",
                      "value": "1992-10-23"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Filtra por el identificador del integrador; sirve para recuperar una emisión. Uno en blanco responde `422 filter_invalid`.",
                        "type": "text/plain"
                      },
                      "key": "external_id",
                      "value": "string"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Creación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "created_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación desde. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_from",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Última modificación hasta. Timestamp RFC 3339, incluido en el rango; una fecha mal escrita responde `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "updated_to",
                      "value": "2006-05-21T13:32:19.170Z"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Cambia el orden. Un valor que no existe responde `422 filter_invalid` con su `param`.\n\n- `updated_at`: por última modificación ascendente, para sincronizar. (This can only be one of updated_at)",
                        "type": "text/plain"
                      },
                      "key": "order",
                      "value": "updated_at"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "Tamaño de la página, de 1 a 200; por defecto 50. Fuera de ese rango responde `422 limit_invalid`, y un valor que no es un número, `400 bad_request`.",
                        "type": "text/plain"
                      },
                      "key": "limit",
                      "value": "439"
                    },
                    {
                      "disabled": true,
                      "description": {
                        "content": "El `next_cursor` de la página anterior. Es opaco y vale solo para el orden con el que se generó: otro responde `400 invalid_cursor`.",
                        "type": "text/plain"
                      },
                      "key": "cursor",
                      "value": "string"
                    }
                  ],
                  "variable": []
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6671e7ca-3b06-446a-8c0a-9d1803e929eb",
          "name": "Emite una nota de crédito sobre un documento aceptado",
          "request": {
            "name": "Emite una nota de crédito sobre un documento aceptado",
            "description": {
              "content": "El afectado debe ser una factura o una boleta `issued`, con `sunat_status` en `accepted` o `accepted_with_observations` (`422 affected_document_not_accepted`, `422 affected_document_not_supported`). Ni el total ni lo gravado, lo exonerado o lo inafecto, cada uno por separado, pueden superar lo que queda del afectado después de sus notas no rechazadas (`422 credit_note_exceeds_affected`). El cliente y la moneda son los del afectado, y la nota va a SUNAT por el canal de este, con su plazo.\n\nRequiere el scope `documents:write`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "credit-notes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                  "type": "text/plain"
                },
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "d40ec61d-11ed-48ed-8c63-f757f78e7b13",
              "name": "Documento emitido y numerado. Con `Idempotent-Replayed: true`, es la respuesta guardada de la solicitud original.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5c\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"nota_credito\",\n  \"series\": \"FC01\",\n  \"number\": 7,\n  \"full_number\": \"FC01-7\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Servicio mensual\",\n      \"quantity\": 2,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 118,\n      \"unit_value\": 100,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 200,\n      \"igv_amount\": 36,\n      \"line_total\": 236\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 200,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 36,\n    \"total\": 236,\n    \"amount_in_words\": \"DOSCIENTOS TREINTA Y SEIS CON 00/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-13T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|07|FC01|7|36.00|236.00|2026-10-09|6|20131312955|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5c/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5c/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b\",\n  \"credit_note\": {\n    \"reason_code\": \"anulacion_operacion\",\n    \"reason\": \"Anulación de la operación\"\n  },\n  \"debit_note\": null,\n  \"external_id\": null,\n  \"replaces_document_id\": null,\n  \"metadata\": null,\n  \"created_at\": \"2026-10-09T15:42:10.204518Z\",\n  \"updated_at\": \"2026-10-09T15:42:10.204518Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "942cb5df-7b31-4c79-a2c5-ccd5d4914663",
              "name": "Solicitud mal formada. Códigos: `invalid_json`, `bad_request`, `idempotency_key_required`, `idempotency_key_invalid`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"idempotency_key_required\",\n    \"message\": \"Falta la cabecera Idempotency-Key.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e95eb04-e73f-4007-9d3c-2c8869cf10df",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4cadff9e-969c-40e5-b794-42df46ee5e0e",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:write que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "385404f9-0e84-4ea4-a0c6-816b6ed2f38b",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2571b52e-05b3-483d-96f7-90211a37ff37",
              "name": "Conflicto con un documento existente. `idempotency_in_progress` se reintenta con la misma clave unos segundos después. `external_id_conflict` no se reintenta: `document_id` señala el documento existente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"idempotency_in_progress\",\n    \"message\": \"La solicitud con esta Idempotency-Key todavía se está procesando. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c62823e2-d6f3-4301-ab40-71b336965fb2",
              "name": "`payload_too_large`: el cuerpo supera 256 KiB.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"payload_too_large\",\n    \"code\": \"payload_too_large\",\n    \"message\": \"El cuerpo supera el tamaño máximo: 256 KiB, o 2 MiB al subir un certificado, un logo o un CDR.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fb7f5da9-e72c-4048-924e-9ec626973074",
              "name": "`unsupported_media_type`: el cuerpo no llega con `Content-Type: application/json`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unsupported_media_type\",\n    \"code\": \"unsupported_media_type\",\n    \"message\": \"El cuerpo debe enviarse con Content-Type application/json.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c21d0b14-daa4-478f-aee4-0ca512e4d98b",
              "name": "Datos no válidos: `error.param` señala el campo y `errors` lista todos los problemas si hay varios. El cuerpo corregido se envía con la misma `Idempotency-Key`, salvo en `idempotency_key_reused`: esa clave ya es de otra solicitud y repetirla devuelve el mismo error, así que se envía el cuerpo original o se usa una clave nueva.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"affected_document_not_accepted\",\n    \"message\": \"El documento a modificar debe estar emitido y aceptado por SUNAT, con observaciones o sin ellas.\",\n    \"param\": \"id\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "df43126a-0e28-4b95-86ba-01afaf6dfb7b",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1bf76496-be65-4d05-8da2-bc546203f604",
              "name": "Falla transitoria, como `database_unavailable`, `storage_unavailable` o `encryption_unavailable`. Se reintenta con la misma `Idempotency-Key` y una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "credit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"anulacion_operacion\",\n  \"reason\": \"Anulación de la operación\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d456b3d0-686f-42d7-bf77-14fd5dbaab64",
          "name": "Emite una nota de débito sobre un documento aceptado",
          "request": {
            "name": "Emite una nota de débito sobre un documento aceptado",
            "description": {
              "content": "Cobra de más sobre una venta ya emitida, como intereses por mora o un importe que quedó corto. El afectado debe ser una factura o una boleta `issued`, con `sunat_status` en `accepted` o `accepted_with_observations` (`422 affected_document_not_accepted`, `422 affected_document_not_supported`). La nota no tiene tope. El cliente, la moneda y la tasa del IGV son los del afectado, y la nota va a SUNAT por el canal de este, con su plazo, y se anula por el mismo camino.\n\nRequiere el scope `documents:write`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "debit-notes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                  "type": "text/plain"
                },
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "cb1ca2f3-c4dc-4c76-90ef-3beb83eb8e9c",
              "name": "Documento emitido y numerado. Con `Idempotent-Replayed: true`, es la respuesta guardada de la solicitud original.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5e\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"nota_debito\",\n  \"series\": \"FD01\",\n  \"number\": 3,\n  \"full_number\": \"FD01-3\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 11.8,\n      \"unit_value\": 10,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 10,\n      \"igv_amount\": 1.8,\n      \"line_total\": 11.8\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 10,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 1.8,\n    \"total\": 11.8,\n    \"amount_in_words\": \"ONCE CON 80/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-13T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|08|FD01|3|1.80|11.80|2026-10-09|6|20131312955|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5e/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5e/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b\",\n  \"credit_note\": null,\n  \"debit_note\": {\n    \"reason_code\": \"intereses_mora\",\n    \"reason\": \"Pago recibido 15 días después del vencimiento\"\n  },\n  \"external_id\": null,\n  \"replaces_document_id\": null,\n  \"metadata\": null,\n  \"created_at\": \"2026-10-09T16:02:31.118204Z\",\n  \"updated_at\": \"2026-10-09T16:02:31.118204Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a6230a66-46eb-4926-a77b-044950cc1e9e",
              "name": "Solicitud mal formada. Códigos: `invalid_json`, `bad_request`, `idempotency_key_required`, `idempotency_key_invalid`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"idempotency_key_required\",\n    \"message\": \"Falta la cabecera Idempotency-Key.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4753aca1-367b-42f5-9c34-22b9d8284fba",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5a6a4dd9-23a2-4e8b-9a64-a113e3a49096",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:write que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "981a3ca4-6a5f-4696-914f-0fbe256d1938",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d671d8a9-6351-415d-8167-cb113a2c3c95",
              "name": "Conflicto con un documento existente. `idempotency_in_progress` se reintenta con la misma clave unos segundos después. `external_id_conflict` no se reintenta: `document_id` señala el documento existente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"idempotency_in_progress\",\n    \"message\": \"La solicitud con esta Idempotency-Key todavía se está procesando. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "52d8f97f-def4-456f-85cd-e3d9f34879b2",
              "name": "`payload_too_large`: el cuerpo supera 256 KiB.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"payload_too_large\",\n    \"code\": \"payload_too_large\",\n    \"message\": \"El cuerpo supera el tamaño máximo: 256 KiB, o 2 MiB al subir un certificado, un logo o un CDR.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6d42c7a5-a567-4fb3-8454-2e2611889706",
              "name": "`unsupported_media_type`: el cuerpo no llega con `Content-Type: application/json`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unsupported_media_type\",\n    \"code\": \"unsupported_media_type\",\n    \"message\": \"El cuerpo debe enviarse con Content-Type application/json.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "92842089-199f-4b1f-8892-7e60c19ddc0f",
              "name": "Datos no válidos: `error.param` señala el campo y `errors` lista todos los problemas si hay varios. El cuerpo corregido se envía con la misma `Idempotency-Key`, salvo en `idempotency_key_reused`: esa clave ya es de otra solicitud y repetirla devuelve el mismo error, así que se envía el cuerpo original o se usa una clave nueva.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"affected_document_not_accepted\",\n    \"message\": \"El documento a modificar debe estar emitido y aceptado por SUNAT, con observaciones o sin ellas.\",\n    \"param\": \"id\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5f90992-c88d-430e-8f8a-da4e986bfb14",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e4942315-2df9-43bf-80f2-60572b6a2f43",
              "name": "Falla transitoria, como `database_unavailable`, `storage_unavailable` o `encryption_unavailable`. Se reintenta con la misma `Idempotency-Key` y una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "debit-notes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento afectado. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason_code\": \"intereses_mora\",\n  \"reason\": \"Pago recibido 15 días después del vencimiento\",\n  \"items\": [\n    {\n      \"description\": \"Intereses por mora\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_value\": 10\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ae103520-bb07-4076-bbd2-02f7cc44b36d",
          "name": "Lee un documento",
          "request": {
            "name": "Lee un documento",
            "description": {
              "content": "El documento completo, con ítems, estados y enlaces.\n\nRequiere el scope `documents:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "e2679a97-18e5-475c-a970-66905220a343",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"boleta\",\n  \"series\": \"B001\",\n  \"number\": 125,\n  \"full_number\": \"B001-125\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"dni\",\n    \"document_number\": \"45678912\",\n    \"name\": \"Juan Pérez\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Estacionamiento 2 horas\",\n      \"quantity\": 1,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 12,\n      \"unit_value\": 10.1694915254,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 10.17,\n      \"igv_amount\": 1.83,\n      \"line_total\": 12\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 10.17,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 1.83,\n    \"total\": 12,\n    \"amount_in_words\": \"DOCE CON 00/100 SOLES\"\n  },\n  \"status\": \"issued\",\n  \"sunat_status\": \"pending\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": null,\n    \"description\": null,\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-17T04:59:59.000000Z\",\n    \"submitted_at\": null,\n    \"accepted_at\": null,\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|03|B001|125|1.83|12.00|2026-10-09|1|45678912|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5a/xml\",\n    \"cdr\": null\n  },\n  \"affected_document_id\": null,\n  \"credit_note\": null,\n  \"debit_note\": null,\n  \"external_id\": \"venta-98231\",\n  \"replaces_document_id\": null,\n  \"metadata\": {\n    \"placa\": \"ABC-123\"\n  },\n  \"created_at\": \"2026-10-09T14:03:21.482913Z\",\n  \"updated_at\": \"2026-10-09T14:03:21.482913Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8b1fcbb2-6423-4c44-91ea-9718ea3fef57",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45bbe995-2b24-4a23-8101-018d88771539",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5dbcfedb-450e-4308-b95c-ac7fa1cadadb",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cff39db1-dd09-4420-af52-be63ea2fd2a5",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d64bcb32-ac86-4e4d-b06f-adf3b34aa17e",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1886f5eb-6297-4497-911a-73738e12cd28",
          "name": "Descarga el XML firmado",
          "request": {
            "name": "Descarga el XML firmado",
            "description": {
              "content": "Descarga `{ruc}-{tipo}-{serie}-{número}.xml`, disponible en todo documento emitido. `{tipo}` es el código de SUNAT: `01` en factura, `03` en boleta y `07` en nota de crédito.\n\nRequiere el scope `documents:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "xml"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/xml"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "d14cd94a-b595-45da-b607-1dd20849be1a",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/xml"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/xml"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<element>(string)</element>",
              "cookie": [],
              "_postman_previewlanguage": "xml"
            },
            {
              "id": "fab151df-9a82-4031-b206-bc1556ac5a63",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58712f80-4a50-4743-bb73-75799b4c61e0",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d2139ad-8058-40ac-a21f-8ba3cdaed742",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e62d8533-f92d-4744-937a-a666a2c213a6",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "89bd7dab-7b3a-4aaa-a15a-86e0afdc618e",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "xml"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "135c6786-a11f-4bb1-a0aa-31fd2e6b934c",
          "name": "Descarga el PDF",
          "request": {
            "name": "Descarga el PDF",
            "description": {
              "content": "Descarga `{ruc}-{tipo}-{serie}-{número}.pdf`, o `{ruc}-{tipo}-{serie}-{número}-ticket.pdf` en formato ticket, disponible en todo documento emitido. `{tipo}` es el código de SUNAT: `01` en factura, `03` en boleta y `07` en nota de crédito. El de un comprobante `test` lleva la marca «PRUEBA – SIN VALOR FISCAL».\n\nRequiere el scope `documents:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "pdf"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "description": {
                    "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                    "type": "text/plain"
                  },
                  "key": "format",
                  "value": "a4"
                }
              ],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/pdf"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "77dda5f3-b8ad-4ee1-9f7b-0b171076be4d",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/pdf"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/pdf"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "8a10ad3c-057e-4d7d-a676-333241a5f35e",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4ea95315-e78a-4d70-8647-4f8344a42128",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "117cc19c-10fa-4617-a6cf-ab62f620107e",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3614c0e9-e9e2-4744-9dcb-d529f37eb265",
              "name": "`pdf_format_invalid`: `format` no es `a4` ni `ticket`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"pdf_format_invalid\",\n    \"message\": \"El formato del PDF debe ser a4 o ticket.\",\n    \"param\": \"format\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4c5fabef-6794-4091-b031-a6920e9fa99e",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f11d592d-b7b3-4d25-a460-093eaafb8508",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "pdf"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "description": {
                        "content": "Formato del PDF. Otro valor responde `422 pdf_format_invalid`.\n\n- `a4`: hoja A4, el formato por defecto.\n- `ticket`: rollo de 80 mm para impresora térmica. (This can only be one of a4,ticket)",
                        "type": "text/plain"
                      },
                      "key": "format",
                      "value": "a4"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b01508d9-d31f-4cef-bf16-8ae65f844c50",
          "name": "Descarga el CDR de SUNAT",
          "request": {
            "name": "Descarga el CDR de SUNAT",
            "description": {
              "content": "Descarga `R-{ruc}-{tipo}-{serie}-{número}.zip`, la constancia tal como la devolvió SUNAT. `{tipo}` es el código de SUNAT: `01` en factura, `03` en boleta y `07` en nota de crédito. Responde `409 cdr_not_available` mientras SUNAT no haya respondido, y también en una boleta aceptada con una revisión manual de su resumen, que no tiene CDR. Para saber si un documento es válido, mira `sunat_status`.\n\nRequiere el scope `documents:read`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "cdr"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "application/zip"
              }
            ],
            "method": "GET",
            "body": {},
            "auth": null
          },
          "response": [
            {
              "id": "b1d1750d-816a-4218-8df5-9e23550ca985",
              "name": "Solicitud correcta.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/zip"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/zip"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "string",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "0fe0b168-e57a-40bc-8688-6beadf1f7ef8",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91bb836f-7d1d-4a7d-beb0-242cb0073423",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:read que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f48f36ff-22a1-4441-b124-216922714b3c",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c9932fa1-9a79-4c0e-982b-8adff1d5bfe6",
              "name": "`cdr_not_available`: el documento no tiene CDR. Vuelve a pedirlo cuando SUNAT responda; una boleta aceptada con una revisión manual de su resumen no lo tiene.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"cdr_not_available\",\n    \"message\": \"El documento no tiene CDR: SUNAT todavía no respondió o, en una boleta, se confirmó en SUNAT sin la constancia de su resumen.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a62ab57c-a23b-45e5-8ada-a90f0b567d71",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "75c50e67-2ab2-40ab-8116-89abf47d4c5d",
              "name": "Falla transitoria, como `database_unavailable` o `storage_unavailable`. Se reintenta con una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "cdr"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "GET",
                "body": {}
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e122c84c-1887-4ace-a909-b367ec80f23a",
          "name": "Solicita la baja de un documento aceptado",
          "request": {
            "name": "Solicita la baja de un documento aceptado",
            "description": {
              "content": "Solo documentos ya aceptados por SUNAT; uno pendiente, con resultado desconocido o fuera de plazo responde `409 document_not_voidable`, y uno ya anulado o en anulación, `409 document_already_voided`. Una factura o una nota sobre factura se admite hasta 3 horas antes del fin del séptimo día de su emisión; una boleta o una nota sobre boleta, si SUNAT recibe el resumen dentro de los 7 días de su emisión. El resultado llega por `status` y `sunat_status`, y por los webhooks `document.voided` o `document.void_rejected`.\n\nRequiere el scope `documents:write`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "void"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "disabled": false,
                "description": {
                  "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                  "type": "text/plain"
                },
                "key": "Idempotency-Key",
                "value": "{{$guid}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "44a4538e-1775-4d6d-aec6-8c580695ca91",
              "name": "Baja solicitada: el documento queda en `status = void_requested`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "`true` cuando la respuesta es la guardada de una solicitud anterior con la misma `Idempotency-Key`.",
                    "type": "text/plain"
                  },
                  "key": "Idempotent-Replayed",
                  "value": "string"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b\",\n  \"object\": \"document\",\n  \"environment\": \"test\",\n  \"company_id\": \"0192f0b1-2d4c-7a1e-8b3f-1c2d3e4f5a6b\",\n  \"type\": \"factura\",\n  \"series\": \"F001\",\n  \"number\": 42,\n  \"full_number\": \"F001-42\",\n  \"issue_date\": \"2026-10-09\",\n  \"currency\": \"PEN\",\n  \"customer\": {\n    \"document_type\": \"ruc\",\n    \"document_number\": \"20131312955\",\n    \"name\": \"Cliente S.A.C.\",\n    \"address\": null,\n    \"email\": null\n  },\n  \"items\": [\n    {\n      \"line_number\": 1,\n      \"product_code\": null,\n      \"description\": \"Servicio mensual\",\n      \"quantity\": 2,\n      \"unit\": \"ZZ\",\n      \"unit_price\": 118,\n      \"unit_value\": 100,\n      \"tax_affectation\": \"gravado\",\n      \"igv_rate\": 18,\n      \"line_value\": 200,\n      \"igv_amount\": 36,\n      \"line_total\": 236\n    }\n  ],\n  \"totals\": {\n    \"taxable\": 200,\n    \"exempt\": 0,\n    \"unaffected\": 0,\n    \"discount\": 0,\n    \"igv\": 36,\n    \"total\": 236,\n    \"amount_in_words\": \"DOSCIENTOS TREINTA Y SEIS CON 00/100 SOLES\"\n  },\n  \"status\": \"void_requested\",\n  \"sunat_status\": \"accepted\",\n  \"delivery_status\": \"none\",\n  \"sunat\": {\n    \"response_code\": \"0\",\n    \"description\": \"La Factura numero F001-42, ha sido aceptada\",\n    \"notes\": [],\n    \"deadline_at\": \"2026-10-13T04:59:59.000000Z\",\n    \"submitted_at\": \"2026-10-09T14:03:25.102938Z\",\n    \"accepted_at\": \"2026-10-09T14:03:27.562910Z\",\n    \"reconciliation_required\": false\n  },\n  \"hash\": \"2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_text\": \"20100066603|01|F001|42|36.00|236.00|2026-10-09|6|20131312955|2/tssig+2hIBSmZyIT0CWMhsTMnRKmApc0tdWRsDs4U=\",\n  \"qr_image\": \"data:image/png;base64,iVBORw0KGgo=\",\n  \"links\": {\n    \"pdf\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b/pdf\",\n    \"xml\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b/xml\",\n    \"cdr\": \"/v1/documents/0192f1a2-7c3e-7d4b-9a8f-2b6c1d0e4f5b/cdr\"\n  },\n  \"affected_document_id\": null,\n  \"credit_note\": null,\n  \"debit_note\": null,\n  \"external_id\": null,\n  \"replaces_document_id\": null,\n  \"metadata\": null,\n  \"created_at\": \"2026-10-09T14:03:21.482913Z\",\n  \"updated_at\": \"2026-10-09T16:10:04.318204Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f77d3330-d17e-448e-99ef-a2cf630e6a55",
              "name": "Solicitud mal formada. Códigos: `invalid_json`, `bad_request`, `idempotency_key_required`, `idempotency_key_invalid`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"idempotency_key_required\",\n    \"message\": \"Falta la cabecera Idempotency-Key.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "24102d95-af6c-4d26-ac45-2fbdff646368",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e8276825-544a-477d-a5f0-0cf1720a57a9",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:write que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "425a18b4-a5ff-4010-b0f2-b7d6d567e547",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "75b7667e-29e2-4b03-a9a4-b70f6e044787",
              "name": "Conflicto con el estado del documento. `idempotency_in_progress` se reintenta con la misma clave unos segundos después. `document_not_voidable` y `document_already_voided` no se reintentan mientras ese estado no cambie.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"document_not_voidable\",\n    \"message\": \"El documento todavía no está aceptado por SUNAT: se anula después de que lo acepte, o no se anula si lo rechazó.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d3cf6e9-100f-45da-b0b8-5aa3e2e73d56",
              "name": "`payload_too_large`: el cuerpo supera 256 KiB.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"payload_too_large\",\n    \"code\": \"payload_too_large\",\n    \"message\": \"El cuerpo supera el tamaño máximo: 256 KiB, o 2 MiB al subir un certificado, un logo o un CDR.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eeee82e9-b942-409a-8e7b-ddbde13ed276",
              "name": "`unsupported_media_type`: el cuerpo no llega con `Content-Type: application/json`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unsupported_media_type\",\n    \"code\": \"unsupported_media_type\",\n    \"message\": \"El cuerpo debe enviarse con Content-Type application/json.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f07abd35-4980-4ac4-8177-d6085d0dc9a8",
              "name": "Datos no válidos: `error.param` señala el campo y `errors` lista todos los problemas si hay varios. El cuerpo corregido se envía con la misma `Idempotency-Key`, salvo en `idempotency_key_reused`: esa clave ya es de otra solicitud y repetirla devuelve el mismo error, así que se envía el cuerpo original o se usa una clave nueva.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"field_required\",\n    \"message\": \"El campo es obligatorio.\",\n    \"param\": \"reason\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "49f125eb-97ba-45dd-a106-c4938ed66985",
              "name": "`rate_limited`: se superó el límite de 600 solicitudes por minuto por clave o 1200 por IP. Se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"rate_limited\",\n    \"message\": \"Demasiadas solicitudes. Reintente después de los segundos que indica Retry-After.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cbb30554-8586-4490-ac3c-87210ef044c4",
              "name": "Falla transitoria, como `database_unavailable`, `storage_unavailable` o `encryption_unavailable`. Se reintenta con la misma `Idempotency-Key` y una espera creciente.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "void"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se anula. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": false,
                    "description": {
                      "content": "(Required) Identifica la operación para reintentarla sin duplicarla durante 24 horas desde la respuesta final; se recomienda un UUID. De 1 a 128 caracteres `[A-Za-z0-9._:-]`. Sin ella responde `400 idempotency_key_required`, y con otro formato, `400 idempotency_key_invalid`. La misma clave con otra solicitud responde `422 idempotency_key_reused`, y con la primera aún en curso, `409 idempotency_in_progress`.",
                      "type": "text/plain"
                    },
                    "key": "Idempotency-Key",
                    "value": "{{$guid}}"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Error en los datos del cliente\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8aebd269-0af1-4c3e-8010-c1df8bea5328",
          "name": "Envía el comprobante por correo",
          "request": {
            "name": "Envía el comprobante por correo",
            "description": {
              "content": "Encola el envío del PDF A4 y el XML al correo del cliente del documento o al de `email`, a nombre de la empresa y con su correo como respuesta. Responde de inmediato: `status` queda en `pending` y el correo sale en segundos, o al día siguiente si la plataforma llegó a su tope diario de correos a clientes. Hasta 5 envíos por documento y día de Lima (`429 document_email_limit_reached`). No depende de la opción de envío automático de la empresa, pero sigue su regla: una factura o una nota sobre factura se envía cuando SUNAT la acepta, y antes responde `409 document_email_document_not_accepted`; uno rechazado, fuera de plazo, anulado o en anulación responde `409 document_email_document_invalid`, y si eso pasa mientras espera, queda en `skipped`. En `test`, el asunto empieza con `[PRUEBA]` y el envío cuenta para el tope de 20 correos diarios de la cuenta: pasado ese tope, queda en `skipped`.\n\nRequiere el scope `documents:write`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "documents",
                ":id",
                "email"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "type": "any",
                  "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                  "key": "id",
                  "disabled": false,
                  "description": {
                    "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                    "type": "text/plain"
                  }
                }
              ]
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
              "options": {
                "raw": {
                  "headerFamily": "json",
                  "language": "json"
                }
              }
            },
            "auth": null
          },
          "response": [
            {
              "id": "6abfaf42-9b23-4b40-8582-4754f5caa183",
              "name": "Envío encolado, con `status = pending`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"id\": \"0192f1a2-9d14-7a61-b3c2-5e8f7a6b4c3d\",\n  \"recipient\": \"compras@cliente.example\",\n  \"origin\": \"manual\",\n  \"status\": \"pending\",\n  \"error\": null,\n  \"created_at\": \"2026-10-09T16:20:41.507311Z\",\n  \"sent_at\": null\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45d0a7bb-564e-4926-a1e2-1bc8afb77727",
              "name": "Solicitud mal formada. Códigos: `invalid_json` y `bad_request`. No se reintenta sin corregirla.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"bad_request\",\n    \"code\": \"invalid_json\",\n    \"message\": \"El cuerpo no es un JSON válido.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ece1172b-bb9d-43b1-ad51-3c7bf4fca04a",
              "name": "Sin una API key válida. Códigos: `unauthorized`, `invalid_api_key`, `revoked_api_key`, `expired_api_key`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unauthorized\",\n    \"code\": \"invalid_api_key\",\n    \"message\": \"La API key no es válida.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b126bf33-8abf-446d-a033-c0fbbb8fc694",
              "name": "La clave no puede operar. Códigos: `forbidden` (no tiene el scope), `tenant_suspended`, `plan_without_api` (el plan de la cuenta no incluye la API), `account_not_activated` (emisión en `live` de una cuenta que Boletura todavía no activó).",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"forbidden\",\n    \"code\": \"forbidden\",\n    \"message\": \"La API key no tiene el scope documents:write que exige este endpoint.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "556a2974-f6e5-4d63-bbff-1d163b28189f",
              "name": "`not_found`: no existe en el tenant y ambiente de la clave.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"not_found\",\n    \"code\": \"not_found\",\n    \"message\": \"El documento no existe.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8c2cb332-2759-4859-b59a-f51ed9eee763",
              "name": "Conflicto con el estado del documento. `document_email_document_not_accepted`: SUNAT todavía no aceptó la factura o la nota sobre factura; se reintenta cuando `sunat_status` sea `accepted` o `accepted_with_observations`. `document_email_document_invalid`: SUNAT lo rechazó, venció su plazo de envío, o está anulado o en anulación; no se reintenta mientras ese estado no cambie.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"conflict\",\n    \"code\": \"document_email_document_not_accepted\",\n    \"message\": \"SUNAT todavía no aceptó el comprobante: una factura o una nota sobre factura se envía por correo cuando SUNAT la acepta.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bce4da7a-197f-4569-af3b-3d898d971825",
              "name": "`payload_too_large`: el cuerpo supera 256 KiB.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 413,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"payload_too_large\",\n    \"code\": \"payload_too_large\",\n    \"message\": \"El cuerpo supera el tamaño máximo: 256 KiB, o 2 MiB al subir un certificado, un logo o un CDR.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9647ae59-0118-43f0-a55e-52c7cd7f8f83",
              "name": "`unsupported_media_type`: el cuerpo no llega con `Content-Type: application/json`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unsupported Media Type",
              "code": 415,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unsupported_media_type\",\n    \"code\": \"unsupported_media_type\",\n    \"message\": \"El cuerpo debe enviarse con Content-Type application/json.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "43a37acc-426e-40b5-8d5b-9e1d97aa5efa",
              "name": "Datos no válidos: `error.param` señala el campo. Códigos: `document_email_recipient_required`, cuando el documento no tiene correo del cliente y no se envía `email`; `document_email_customer_email_invalid`, cuando no se envía `email` y el correo del cliente del documento está mal escrito, y los de un `email` mal escrito.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"validation_error\",\n    \"code\": \"document_email_recipient_required\",\n    \"message\": \"El comprobante no tiene correo del cliente: indica a qué correo enviarlo.\",\n    \"param\": \"email\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6cfa0b7c-1a86-41e4-9927-562954cd2970",
              "name": "`document_email_limit_reached`: el documento ya se envió 5 veces hoy a pedido; se reintenta al día siguiente de Lima. También `rate_limited`, si se superó el límite de solicitudes, que se reintenta después de `Retry-After`.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos que conviene esperar antes de reintentar.",
                    "type": "text/plain"
                  },
                  "key": "Retry-After",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"rate_limited\",\n    \"code\": \"document_email_limit_reached\",\n    \"message\": \"El comprobante ya se envió 5 veces hoy a pedido: vuelve a intentarlo mañana.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "20eadd2e-d61e-41cb-8b82-70cf8ad21cfb",
              "name": "Falla transitoria, como `database_unavailable`. Se reintenta con una espera creciente; un reintento después de una respuesta perdida puede enviar el correo otra vez.",
              "originalRequest": {
                "url": {
                  "path": [
                    "v1",
                    "documents",
                    ":id",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "description": {
                        "content": "(Required) UUID del documento que se envía. Uno que no existe en el tenant y ambiente de la clave, o que no es un UUID, responde `404 not_found`.",
                        "type": "text/plain"
                      },
                      "type": "any",
                      "value": "e483cd73-97c2-410d-e535-0664d9d58853",
                      "key": "id"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "Accept",
                    "value": "application/json"
                  },
                  {
                    "description": {
                      "content": "Added as a part of security scheme: bearer",
                      "type": "text/plain"
                    },
                    "key": "Authorization",
                    "value": "Bearer <token>"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"compras@cliente.example\"\n}",
                  "options": {
                    "raw": {
                      "headerFamily": "json",
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "El del cliente si tiene de 1 a 128 caracteres `[A-Za-z0-9._-]`; si no, uno generado. Es el `request_id` de los errores.",
                    "type": "text/plain"
                  },
                  "key": "X-Request-Id",
                  "value": "string"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes admitidas en la ventana de un minuto, de la clave o de la IP.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Limit",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Solicitudes que quedan en la ventana.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Remaining",
                  "value": "27"
                },
                {
                  "disabled": true,
                  "description": {
                    "content": "Segundos hasta la ventana siguiente.",
                    "type": "text/plain"
                  },
                  "key": "RateLimit-Reset",
                  "value": "27"
                }
              ],
              "body": "{\n  \"error\": {\n    \"type\": \"unavailable\",\n    \"code\": \"database_unavailable\",\n    \"message\": \"La base de datos no está disponible. Reintente en unos segundos.\",\n    \"request_id\": \"req_0192f1a27c3e7d4b9a8f2b6c1d0e4f5a\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ]
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "type": "any",
        "value": "{{bearerToken}}",
        "key": "token"
      }
    ]
  },
  "event": [],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.boletura.com"
    },
    {
      "key": "bearerToken",
      "value": "",
      "type": "string",
      "description": "Tu API key de test (bol_test_…)"
    }
  ],
  "info": {
    "_postman_id": "c7d07c7a-659e-4611-bb12-c224a3176443",
    "name": "Boletura API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "API para emitir boletas, facturas y notas de crédito y de débito electrónicas válidas ante SUNAT y entregar su PDF y su XML al instante. La plataforma se encarga del envío, los resúmenes diarios, las bajas y el almacenamiento; la API no pide UBL ni catálogos, salvo la unidad de medida y el código de detracción.\n\nLa API key elige el ambiente: `test` usa SUNAT beta y `live`, SUNAT producción. El envío a SUNAT es asíncrono: el resultado llega a `sunat_status` y por webhook. Fechas `YYYY-MM-DD` de Lima, timestamps RFC 3339 en UTC e importes como números JSON.\n\nEsta referencia no describe los webhooks: sus eventos, su cuerpo y la verificación de la firma están en la guía [Webhooks y sincronización](https://docs.boletura.com/guias/webhooks/) del portal de documentación.\n\nContact Support:\n Name: Soporte de Boletura\n Email: soporte@boletura.com",
      "type": "text/plain"
    }
  }
}