Consultar el detalle de paquetes
Devuelve los paquetes de la cuenta uno por uno — cuántas piezas trae cada uno, cuántas ya se usaron y la ventana en la que es válido.
De cada tipo obtienes el paquete vigente más el último que venció, así que el mismo type
aparece más de una vez. Distínguelos con active, no supongas una fila por tipo.
Autenticación
signmage Cada petición lleva Authorization: signmage {webId}:{firma}, donde firma es el Base64 de
HMAC-SHA256(apiKey, cadenaFirmada).
Qué va dentro de cadenaFirmada depende de la petición:
| Petición | cadenaFirmada |
|---|---|
GET | La URI completa incluyendo el query string, exactamente como se envía |
POST con JSON | El cuerpo JSON, re-serializado compacto (sin espacios ni salto de línea final) |
POST multipart | El SHA-256 en Base64 del archivo, que además se manda en el header Content-SHA256 |
Dos detalles que conviene resolverlos desde el principio:
- En
GET, la URI se firma tal como se envía, así que el orden y el encoding de los parámetros importan. - En
POST, la comparación se hace contra tu JSON re-serializado en forma compacta. Manda JSON compacto y canónico para que las firmas coincidan.
Una firma que no coincide devuelve 401 con el cuerpo vacío. Como la misma respuesta cubre un
web ID desconocido, una llave inactiva y una firma que no coincide, revisa las tres cosas al
diagnosticar.
En: header
Cuerpo de la respuesta
application/json
application/json
curl -X GET "https://example.com/api/account/detail"[ { "type": "DOCUMENTS", "assignedAt": "2023-05-30T00:00:00Z", "expiresAt": "2025-05-30T00:00:00Z", "assignedItems": 1000, "consumedItems": 705, "active": false }, { "type": "TIMESTAMPS", "assignedAt": "2023-05-30T00:00:00Z", "expiresAt": "2025-05-30T00:00:00Z", "assignedItems": 1000, "consumedItems": 133, "active": false }, { "type": "WHATSAPP", "assignedAt": "2023-05-30T00:00:00Z", "expiresAt": "2025-05-30T00:00:00Z", "assignedItems": 100, "consumedItems": 6, "active": false }, { "type": "WHATSAPP", "assignedAt": "2023-05-30T00:00:00Z", "expiresAt": "2027-05-30T00:00:00Z", "assignedItems": 100, "consumedItems": 52, "active": true }, { "type": "IDENTITY_VERIFICATIONS", "assignedAt": "2024-09-25T00:55:47Z", "expiresAt": "2025-12-25T00:55:47Z", "assignedItems": 10, "consumedItems": 5, "active": false }, { "type": "DOCUMENTS", "assignedAt": "2025-05-30T12:30:16Z", "expiresAt": "2030-05-30T00:00:00Z", "assignedItems": 1000, "consumedItems": 792, "active": true }, { "type": "TIMESTAMPS", "assignedAt": "2025-05-30T12:30:16Z", "expiresAt": "2030-05-30T00:00:00Z", "assignedItems": 1000, "consumedItems": 79, "active": true }, { "type": "IDENTITY_VERIFICATIONS", "assignedAt": "2026-03-17T13:06:13Z", "expiresAt": "2027-03-17T13:06:13Z", "assignedItems": 500, "consumedItems": 129, "active": true }]