Página de endpoint
Cada endpoint de API tiene su propia página. La estructura es estricta — cada página sigue el mismo formato para que los desarrolladores puedan escanear de manera predecible.
Título
Usa un título corto y claro que quepa en una línea en la tabla de contenidos. Sigue el patrón de verbos estándar basado en el método HTTP:
| Method | Verb | Example |
|---|---|---|
POST | Create | Create an account |
GET | List | List accounts |
GET (by ID) | Retrieve | Retrieve an account |
PATCH | Update | Update an account |
DELETE | Delete / Deactivate | Delete an account |
Descripción
Una a dos oraciones. Qué hace el endpoint y cuándo usarlo. Sin contexto, sin motivación.
Prerrequisitos
Lista lo que se requiere para usar el endpoint:
- Método de autenticación
- Permisos o roles requeridos
- Entidades que deben existir primero (ej., “Requires an existing organization and ledger”)
Parámetros
Agrupa por ubicación. Usa una tabla separada para cada grupo:Header parameters
Path parameters
Query parameters (cuando aplique)
| Parameter | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer token |
| Parameter | Type | Required | Description |
|---|---|---|---|
organization_id | string | Yes | UUID of the organization |
ledger_id | string | Yes | UUID of the ledger |
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
limit | integer | No | Maximum number of results | 10 |
cursor | string | No | Pagination cursor | — |
Cuerpo de la solicitud
Documenta todos los campos en una sola tabla con estas columnas:
Para objetos anidados, usa una subsección (H4) con su propia tabla:
| Field | Type | Required | Description | Possible values | Default | Constraints | Example |
|---|---|---|---|---|---|---|---|
name | string | Yes | Name of the account | — | — | MaxLength: 100 | "Main Account" |
type | string | Yes | Account type | deposit, savings, external | — | — | "deposit" |
assetCode | string | Yes | Currency or asset code | — | — | ISO 4217 or custom | "BRL" |
alias | string | No | Human-readable identifier | — | — | Must start with @ | "@revenue" |
status object
| Field | Type | Required | Description | Possible values |
|---|---|---|---|---|
code | string | Yes | Status code | ACTIVE, INACTIVE, BLOCKED |
description | string | No | Reason for the status | — |
Ejemplo de solicitud
Un comando
curl completo y realista. Usa placeholders solo para IDs ({organization_id}), nunca para valores de campos.Respuesta exitosa
Incluye el código de estado HTTP y un cuerpo de respuesta completo.Para respuestas
201 Created204 No Content, indica explícitamente que no se devuelve cuerpo.Respuestas de error
Lista cada error posible que el endpoint puede devolver. Todos los errores siguen el formato estándar de errores de Lerian.
Incluye un ejemplo de cuerpo de respuesta de error:
| Status | Code | Description |
|---|---|---|
400 | INVALID_REQUEST | Missing or invalid required field |
404 | LEDGER_NOT_FOUND | Ledger does not exist |
409 | ALIAS_ALREADY_EXISTS | An account with this alias already exists in the ledger |
422 | ASSET_NOT_FOUND | The specified asset code does not exist in this ledger |
Modelo de errores
Todas las APIs de Lerian siguen un formato estándar de errores. Documéntalo una vez y referéncialo desde cada página de endpoint.
Respuesta estándar de error
| Field | Type | Description |
|---|---|---|
code | string | Machine-readable error code (uppercase, snake_case) |
message | string | Human-readable description |
details | object | Additional context (field name, value, constraints). Optional. |
Convenciones de códigos de estado HTTP
| Status | Meaning | When to use |
|---|---|---|
400 | Bad Request | Malformed request, missing required fields, invalid values |
401 | Unauthorized | Missing or invalid authentication |
403 | Forbidden | Authenticated but insufficient permissions |
404 | Not Found | Resource does not exist |
409 | Conflict | Duplicate resource (alias, idempotency key) |
422 | Unprocessable Entity | Valid syntax but failed business rules |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Unexpected server failure |
Reglas de escritura para referencia de API
Estas reglas aplican a toda la documentación de referencia de API. Complementan las directrices generales de voz y tono.
Hacer
- Comienza las descripciones con un verbo: “Creates”, “Returns”, “Deletes”
- Usa
formato de códigopara todos los nombres de campo, valores, endpoints y métodos HTTP - Documenta cada campo, incluso los opcionales
- Incluye valores de ejemplo realistas — nunca
"string"o"example" - Muestra la solicitud y respuesta completas, no fragmentos
- Lista cada error posible, no solo los comunes
No hacer
- No expliques contexto de negocio o motivación — eso pertenece a las guías
- No uses
<Tip>,<Note>o<Warning>en descripciones de endpoints — resérvalos solo para prerrequisitos o detalles importantes - No uses voz narrativa (“you might want to”, “consider using”)
- No describas campos con “This field is used to…” — indica directamente lo que hace
- No omitas casos de error porque son “improbables”
Patrones de componentes
Las páginas de referencia de API usan un conjunto más reducido de componentes que las guías.
| Componente | Cuándo usarlo |
|---|---|
<Accordion> | Especificaciones OpenAPI colapsables, listas extendidas de errores |
<CodeGroup> | Múltiples formatos de solicitud/respuesta (curl + ejemplos de SDK) |
<Note> | Prerrequisitos, comportamiento específico de versión |
<Warning> | Cambios incompatibles, avisos de deprecación |
<Danger> | Operaciones irreversibles (hard delete, pérdida de datos) |
| Tablas | Parámetros, campos, errores — siempre en tablas, nunca en prosa |

