Planes
Catalogo de planes y estado de suscripcion.
GET /billing/plans
Publico, sin autenticacion — usalo para renderizar tu propia pagina de precios.
curl https://api.placia.net/v1/billing/plans{
"success": true,
"data": [
{ "code": "free", "name": "Free", "price_monthly_usd": "0.00", "requests_month_quota": 500, "burst_per_minute": 10 },
{ "code": "pro", "name": "Pro", "price_monthly_usd": "19.00", "requests_month_quota": 50000, "burst_per_minute": 60 },
{ "code": "business", "name": "Business", "price_monthly_usd": "99.00", "requests_month_quota": -1, "burst_per_minute": 300 }
]
}requests_month_quota: -1 significa ilimitado.
GET /billing/me
Requiere JWT de sesion. Devuelve el plan y estado de suscripcion del usuario autenticado.
curl https://api.placia.net/v1/billing/me \
-H "Authorization: Bearer <jwt_de_sesion>"{
"success": true,
"data": {
"subscription_plan": "pro",
"subscription_status": "active",
"subscription_ends_at": "2026-08-24 22:54:06",
"billing_cycle": "monthly"
}
}POST /billing/checkout/init
Requiere JWT de sesion. Resuelve el gateway recurrente para el pais del usuario
(dLocal Go, Mercado Pago o Wompi segun payment_provider_configs) y devuelve lo
que el frontend necesita para montar el widget de tarjeta embebido de ese gateway
— nunca se redirige a una pagina del proveedor.
curl -X POST https://api.placia.net/v1/billing/checkout/init \
-H "Authorization: Bearer <jwt_de_sesion>" \
-H "Content-Type: application/json" \
-d '{"plan_code": "pro", "billing_cycle": "monthly"}'POST /billing/checkout/confirm
Requiere JWT de sesion. Cobra el primer cargo tras la tokenizacion en el frontend, guarda el token reutilizable y activa el plan.
Gateways de pago
Cobertura white-label con 4 gateways LatAm: dLocal Go (fallback regional
amplio), Mercado Pago (AR/BR/CL/CO/MX/PE/UY), Wompi (Colombia) y
Bold.co (Colombia, solo pago puntual — no soporta renovacion automatica).
El patron es "tokenize + recharge": la tarjeta se tokeniza en nuestra propia
pagina y el cobro recurrente lo orquesta nuestro cron (bin/cron-billing-renew.php)
contra el token guardado, nunca contra una pagina alojada por el proveedor.