Operación · 09
Cobro
Revísame cobra por verificación emitida. Las verificaciones no_concluyente y las peticiones rechazadas no se cobran. El modo de cobro lo configura Revísame en tu cuenta; GET /v1/cuenta/consumo te dice cuál tienes y el precio de tu plan.
Consumo (prepago)
Tienes un saldo prepagado con Revísame. Cada verificación emitida lo descuenta.
Connect
Tú cobras al solicitante en tu Stripe; al emitirse la verificación, Revísame transfiere desde ese cobro el precio de tu plan a su cuenta.
Modo consumo
- Consulta tu saldo con
GET /v1/cuenta/consumo:saldo,monto_por_verificacion(precio de tu plan) ymoneda(MXN). - Al crear una verificación se reserva el monto; si termina
emitidase confirma, si terminano_concluyentese libera. - Si el saldo no alcanza,
POSTresponde402 consumo_agotado: no se ejecuta ni se cobra.
curl "$RAB/v1/cuenta/consumo" -H "Authorization: Bearer $RAB_LLAVE"
# { "tenant": "…", "modo": "consumo", "moneda": "MXN", "monto_por_verificacion": …, "saldo": … }
Modo connect
Modelo de Stripe separate charges and transfers: tu plataforma es el comercio ante el solicitante y la cuenta de Revísame está conectada a tu plataforma.
- Cobra primero en tu Stripe. Crea y confirma el PaymentIntent del solicitante en MXN, por al menos el precio de tu plan.
- Crea la verificación con el identificador de ese pago:
"cobro": { "modo": "connect", "payment_intent_id": "pi_…" } - Revísame valida el pago antes de trabajar, con tu llave restringida: el PaymentIntent existe en tu cuenta, está
succeeded, es enMXN, su monto es ≥ al precio de tu plan y no respaldó otra verificación. Si algo no cumple,POSTresponde402 cobro_no_verificado: no se consulta ninguna fuente, no se crea verificación y no se transfiere nada. - Al emitir, Revísame crea una transferencia desde tu cuenta hacia la de Revísame por el monto fijado al crear la verificación (el precio de tu plan en ese momento; un cambio de plan posterior no lo altera), con
source_transaction= el cargo de ese PaymentIntent. Así la transferencia queda atada al pago real y no depende de tu saldo disponible: Stripe la ejecuta cuando ese dinero esté disponible. Se crea una sola vez por verificación. no_concluyenteno transfiere. El cobro al solicitante sigue en tu cuenta; qué hacer con él (por ejemplo, reembolsarlo) lo decides tú.
- Un PaymentIntent respalda una sola verificación. Reenviar la misma petición (misma
Idempotency-Key, mismo cuerpo) es un reintento válido: no vuelve a validar ni a cobrar. - En modo connect,
saldoesnull: no hay saldo que agotar.nullno es un cero. - Reembolsos y contracargos del cobro al solicitante se debitan de tu cuenta de plataforma, como en cualquier cargo de Stripe.
Alta de connect (una sola vez)
Hazlo primero en modo de prueba de Stripe (llaves …_test_…) y después en modo live.
Activa Connect en tu cuenta de Stripe
Dashboard → Connect → Get started. Completa el platform profile (marketplace o servicios).
Conecta la cuenta de Revísame por OAuth
En Settings → Connect → Onboarding options → OAuth, habilita OAuth, copia tu
client_id(ca_…) y registra unredirect_uri. Envía a Revísame el enlace de conexión:https://connect.stripe.com/oauth/authorize?response_type=code&client_id=<ca_…>&scope=read_write&state=<valor aleatorio>Revísame lo autoriza con su cuenta existente. Canjea el
coderecibido enPOST https://connect.stripe.com/oauth/tokeny confirma questripe_user_idsea el identificador de cuenta que Revísame te confirme por canal separado.Crea una llave restringida
Solo con estos permisos:
Recurso Permiso Para qué Transfers Write Crear la transferencia al emitir. PaymentIntents Read Validar el pago antes de trabajar. Charges Read Usar el cargo como source_transaction.Connected accounts Read Confirmar la cuenta destino. Entrégala a Revísame por un canal seguro, nunca por chat ni por correo en claro.
Integra
Por cada verificación: cobra al solicitante, espera
succeededy envíacobro.modo = connectcon supayment_intent_id. Maneja402 cobro_no_verificadocomo un pago que no está en orden.
El bloque cobro de cada verificación
estatus | Significado |
|---|---|
null | La verificación sigue en_proceso. |
cargada | Modo consumo (paquete prepagado). Emitida; su precio ya se descontó de tu saldo. |
transferencia_encolada | Modo connect. Emitida; la transferencia a Revísame quedó registrada y está en cola. |
transferida | Modo connect. Reservado: hoy las consultas muestran transferencia_encolada también después de que la transferencia se completa. Confírmala en las transferencias de tu Dashboard de Stripe. |
no_aplicada | No se cobró. motivo_no_aplicada dice por qué (p. ej. recomendacion_no_emitida). |
El bloque es el mismo en la respuesta del POST, en GET, en el listado y en el webhook. Refleja el modo de cobro con que se emitió la verificación, aunque después cambie el modo de tu cuenta.
En una verificación emitida, monto y moneda son el precio que se fijó al crearla (por ejemplo 350.0 y MXN). En no_aplicada y en null vienen vacíos. Para conciliar, usa tu propio registro por solicitud_id y, en connect, las transferencias de tu Dashboard de Stripe.
El campo cobro.modo que envías sirve para tu conciliación; el modo que rige es el de tu cuenta.
Vigencia
Una verificación emitida se puede usar sin volver a cobrarse hasta vigencia_hasta. El periodo lo fija tu plan.