# Recargar saldo (Stripe Checkout) > `POST https://api.cfdi.express/v1/billing/checkout_sessions` — Crea una sesión de Stripe Checkout para recargar saldo con tarjeta. Redirige al usuario a la URL que regresa. URL de esta página: https://cfdi.express/docs/api/recargar-saldo Autenticación: requiere API key (`Authorization: Bearer sk_test_…` o `sk_live_…`) La recarga mínima es de $100 MXN (10 000 centavos) y la máxima de $50 000 MXN (5 000 000 de centavos) por sesión. El saldo se acredita cuando Stripe confirma el pago vía webhook, no al crear la sesión. Consulta [las transacciones](https://cfdi.express/docs/api/transacciones) o [el saldo](https://cfdi.express/docs/api/saldo) para confirmar el abono. ### Cuerpo (JSON) | Campo | Tipo | Requerido | Descripción | |---|---|---|---| | `amountCentavos` | integer | sí | Monto a recargar en centavos MXN. Mínimo 10000 ($100), máximo 5000000 ($50,000). | ## Ejemplos ### cURL ```bash curl -X POST https://api.cfdi.express/v1/billing/checkout_sessions \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{ "amountCentavos": 50000 }' ``` ### Node.js ```javascript const res = await fetch( "https://api.cfdi.express/v1/billing/checkout_sessions", { method: "POST", headers: { Authorization: `Bearer ${process.env.CFDI_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ amountCentavos: 50000 }), // $500 MXN }, ); const session = await res.json(); // Manda al usuario a Stripe redirect(session.url); ``` ## Respuesta ### 201 Created ```json { "object": "checkout_session", "url": "https://checkout.stripe.com/c/pay/cs_live_a1B2c3...", "purchaseId": "pur5m9x2q7v1p8d3t6n0c4br", "checkoutSessionId": "cs_live_a1B2c3...", "amountCentavos": 50000, "currency": "MXN" } ``` ## Errores | Status | code | Cuándo aparece | |---|---|---| | 400 | `validation_error` | El monto está fuera del rango permitido. | | 401 | `unauthorized` | Falta el header Authorization o la llave es inválida. | | 503 | `billing_unavailable` | El cobro con tarjeta no está configurado en este ambiente. | ## Notas - En modo test no necesitas recargar: tu cuenta arranca con saldo de pruebas y el sandbox del PAC es gratis. ## Relacionados - [GET /v1/balance](https://cfdi.express/docs/api/saldo) — Consultar saldo - [POST /v1/billing/portal_sessions](https://cfdi.express/docs/api/portal-de-facturacion) — Portal de facturación - [GET /v1/billing/transactions](https://cfdi.express/docs/api/transacciones) — Transacciones de saldo --- Referencia completa: https://cfdi.express/docs/api · OpenAPI: https://api.cfdi.express/openapi.json · Llaves: https://dash.cfdi.express