Listar los planes
GET/v1/plans
Planes del entorno de la API key (pgm_test_ → sandbox, pgm_live_ →
producción), más recientes primero. Sin status lista ACTIVE y
ARCHIVED; para mostrar precios a tus usuarios, filtra status=ACTIVE.
Autenticación: Authorization: Bearer <API key>.
Parámetros
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
status | query | string | Filtra por estado (sin distinguir mayúsculas); sin filtro, todos. Otro valor → 422 invalid_status. Valores: |
limit | query | integer | Tamaño de página (1–100, por defecto 50). Por defecto: |
starting_after | query | string | Id ( pln_…) del último plan de la página anterior; otro formato → 422 invalid_cursor; excluyente con ending_before (422 invalid_cursor). |
ending_before | query | string | Id ( pln_…) del primer plan de la página actual, para pedir la anterior (más recientes); excluyente con starting_after (422 invalid_cursor). Mismo orden (más recientes primero); has_more indica si hay más antes de esta página. |
Respuestas
200Página de planes.
Esquema PlanList
| Campo | Tipo | Descripción |
|---|---|---|
dataobligatorio | array<Plan> | |
data[].idobligatorio | string | Ejemplo: |
data[].environmentobligatorio | string | Valores: |
data[].nameobligatorio | string | Ejemplo: |
data[].descriptionobligatorio | string | |
data[].amount_in_centsobligatorio | integer (int64) | Precio en centavos (entero; $49.900 COP = 4990000). Inmutable.Ejemplo: |
data[].currencyobligatorio | string | Valores: |
data[].interval_unitobligatorio | string | MVP: solo MONTH. Valores: |
data[].interval_countobligatorio | integer | MVP: solo 1. |
data[].trial_daysobligatorio | integer | |
data[].statusobligatorio | string | Valores: |
data[].created_atobligatorio | string (date-time) | RFC 3339 en UTC. |
data[].updated_atobligatorio | string (date-time) | RFC 3339 en UTC. |
data[].archived_atobligatorio | string (date-time) | null | |
has_moreobligatorio | boolean |
Errores
- 400
JSON mal formado o tipos inválidos (p. ej. decimales donde va un entero) (
codeinvalid_body).- 401
Credencial ausente, inválida, expirada o revocada (
codeunauthorized).- 422
La entrada no cumple las reglas (
typeinvalid_request;paramindica el campo).- 429
Demasiadas peticiones (
typerate_limited,coderate_limited): más de 100 peticiones por segundo con la misma API key. Reintenta cuando indiqueRetry-After.- Otros
Error con el formato estándar.
Todos con el formato de error estándar.
curl https://api.paygumi.com/v1/plans \
-H "Authorization: Bearer pgm_test_..."{
"data": [
{
"id": "pln_01JB86R800ABCDEFGHJKMNPQRS",
"environment": "SANDBOX",
"name": "Pro",
"description": "string",
"amount_in_cents": 4990000,
"currency": "COP",
"interval_unit": "DAY",
"interval_count": 1,
"trial_days": 0,
"status": "ACTIVE",
"created_at": "2026-11-01T05:00:00Z",
"updated_at": "2026-11-01T05:00:00Z",
"archived_at": "2026-11-01T05:00:00Z"
}
],
"has_more": false
}