API v1 · Operativa

Venda recargas desde su propia aplicación

Recargas móviles, paquetes de datos, luz, agua, universidades e impuestos. Una sola integración, 59 servicios, y un ambiente de pruebas que no le cuesta un peso.

Basehttps://api.recarga.do
Versiónv1
MonedaDOP
FormatoJSON

Empiece por aquí

Elija el camino que se parezca a su caso. Los tres funcionan hoy contra el ambiente de pruebas, sin pedir permiso a nadie.

Pruébelo ahora mismo

Credenciales de prueba abiertas. No generan recargas ni cargos reales.

# Guarde sus credenciales en una variable
AUTH="Authorization: Bearer rk_sbx_8c4cacb52c6b8f65bf389480ce3f8891.sk_sbx_a8e4de1dbd5e135a4be191cfd8901f386e541279a6550b1d30af9fbeaa65bbd0"

# 1 · ¿En qué ambiente estoy?  →  "sandbox": true significa pruebas
curl -s https://api.recarga.do/v1/cuenta -H "$AUTH"

# 2 · ¿Cuánto puedo gastar?
curl -s https://api.recarga.do/v1/saldo -H "$AUTH"

# 3 · Hacer una recarga de prueba
curl -s -X POST https://api.recarga.do/v1/recargas \
  -H "$AUTH" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"service_id":1,"identifier":"8095551235","amount":100}'
En pruebas, el último dígito del número decide el resultado

Termine el identifier en 0 y obtendrá número inválido; en 1, rechazo; en 2, resultado pendiente; cualquier otro dígito da éxito. Así prueba todos los caminos de su código sin depender de la suerte.

Lo que hay que entender antes de integrar

Son tres ideas. Con estas tres, el resto de la documentación se lee sola.

1 · La clave de idempotencia evita cobrar dos veces

Al reintentar, use la MISMA clave — nunca una nueva

Si su conexión falla y reintenta, envíe la misma Idempotency-Key. Una clave nueva es una operación nueva: su cliente recibiría dos recargas y usted cobraría una. Genere la clave una sola vez, antes del primer intento, y guárdela junto a la orden en su base de datos.

2 · Su saldo tiene tres partes

CampoQué significa
saldo_disponibleLo que puede gastar ahora mismo
saldo_retenidoComprometido por operaciones en curso: ni cobrado ni gastable
saldo_actualLa suma de los dos. El dinero que aún le pertenece

El importe se reserva antes de procesar la operación. Si se rechaza, vuelve a su saldo. Si el resultado queda en duda, permanece retenido hasta resolverse. Nunca se cobra algo que no se entregó, ni se entrega algo sin respaldo de saldo.

3 · Una recarga puede terminar de cuatro maneras

201 · ÉxitoCobrado. Imprima el comprobante.
202 · PendienteRetenido, no cobrado. Muestre «verificando» y consulte. Nunca «fallida».
422 · RechazoDevuelto. Muestre el motivo; puede reintentar con clave nueva.
Timeout de redIndeterminado. Reintente con la misma clave.

Endpoints

Las rutas están en español. Los verbos GET y POST los define el protocolo HTTP y no se traducen: GET es consultar, POST es ejecutar una acción.

AcciónVerboRutaNotas
Ver si el servicio está activoGET/v1/estadoPúblico, sin credenciales
Ver versión y ambienteGET/v1/informacionPúblico, sin credenciales
Ver mi cuentaGET/v1/cuentaIndica si opera en pruebas o en producción
Consultar mi saldoGET/v1/saldoDisponible, retenido, límites y consumo
Ver categoríasGET/v1/categoriasTelefonía, electricidad, agua…
Ver qué puedo venderGET/v1/serviciosDe aquí sale el service_id
Ver paquetes de datosGET/v1/servicios/{id}/paquetesOperadoras móviles
Hacer una recargaPOST/v1/recargasExige Idempotency-Key
Anular una recargaPOST/v1/transacciones/{id}/anularExige Idempotency-Key
Ver mis ventasGET/v1/transaccionesPaginado y filtrable
Ver una ventaGET/v1/transacciones/{id}Detalle y estado
Imprimir el reciboGET/v1/transacciones/{id}/reciboSolo si la venta fue exitosa
¿Vio rutas en inglés en algún ejemplo antiguo?

Las equivalentes en inglés (/v1/balance, /v1/recharges…) siguen funcionando indefinidamente y hacen exactamente lo mismo. No hay que migrar nada.

Próximamente

Cómo se ve una venta completa

El recorrido típico en una caja, de principio a fin.

1
El cajero elige el servicio Desde el catálogo que usted cacheó de /v1/servicios. Refrésquelo cada pocas horas, no en cada venta.
2
Introduce el número y el monto Valide el rango del servicio en su propia aplicación: se ahorra un viaje al servidor y un error con el cliente delante.
3
Su sistema genera la clave de idempotencia y guarda la orden Una sola vez, antes de llamar. Es la pieza que evita el doble cobro.
4
Llama a POST /v1/recargas Y trata los cuatro desenlaces posibles. El 202 es el que más integraciones rompe.
5
Imprime el recibo y guarda los identificadores transaction_id y request_id. Sin ellos, soporte no puede ayudarle.

Descargas y referencia

Para empezar rápido

Referencia

Soporte

Cada respuesta incluye un request_id, también en la cabecera X-Request-Id. Guárdelo junto a cada venta en su sistema. Con ese identificador localizamos cualquier operación en segundos.

Al reportar una incidencia, incluya el request_id y, si aplica, el transaction_id.

59
servicios disponibles
10
categorías
13
endpoints
RD$ 0
costo del ambiente de pruebas

Cómo obtener sus credenciales

Todo lo de esta documentación funciona ahora mismo con las credenciales de prueba. Para vender de verdad hacen falta las suyas.

Paso 1

Pruebe primero

No hace falta registrarse ni pedir permiso. Las credenciales de prueba están en esta documentación y funcionan al instante: no cobran nada ni recargan ningún teléfono real.

Paso 2

Solicite las de producción

Cuando su integración funcione en pruebas, pida sus credenciales reales a su ejecutivo de cuenta de Recarga.do. Solo cambian las claves: los endpoints, los formatos y los códigos son idénticos.

Paso 3

Deposite saldo

El modelo es prepago: cada venta descuenta de su saldo. Compruébelo con GET /v1/saldo y vigile el campo saldo_bajo.

Si algo falla, tenga a mano dos datos Toda respuesta trae un request_id, y toda venta un transaction_id. Con esos dos se localiza la operación completa en segundos. Sin ellos, una incidencia puede tardar horas en reproducirse.