Saltar al contenido

API DE REVÍSAME. Verificación de solicitantes de arrendamiento para plataformas socias. Revísame informa; el arrendador decide.

Revísame / desarrolladores

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) y moneda (MXN).
  • Al crear una verificación se reserva el monto; si termina emitida se confirma, si termina no_concluyente se libera.
  • Si el saldo no alcanza, POST responde 402 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.

  1. Cobra primero en tu Stripe. Crea y confirma el PaymentIntent del solicitante en MXN, por al menos el precio de tu plan.
  2. Crea la verificación con el identificador de ese pago:
    "cobro": { "modo": "connect", "payment_intent_id": "pi_…" }
  3. Revísame valida el pago antes de trabajar, con tu llave restringida: el PaymentIntent existe en tu cuenta, está succeeded, es en MXN, su monto es ≥ al precio de tu plan y no respaldó otra verificación. Si algo no cumple, POST responde 402 cobro_no_verificado: no se consulta ninguna fuente, no se crea verificación y no se transfiere nada.
  4. 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.
  5. no_concluyente no 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, saldo es null: no hay saldo que agotar. null no 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.

  1. Activa Connect en tu cuenta de Stripe

    Dashboard → Connect → Get started. Completa el platform profile (marketplace o servicios).

  2. Conecta la cuenta de Revísame por OAuth

    En Settings → Connect → Onboarding options → OAuth, habilita OAuth, copia tu client_id (ca_…) y registra un redirect_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 code recibido en POST https://connect.stripe.com/oauth/token y confirma que stripe_user_id sea el identificador de cuenta que Revísame te confirme por canal separado.

  3. Crea una llave restringida

    Solo con estos permisos:

    RecursoPermisoPara qué
    TransfersWriteCrear la transferencia al emitir.
    PaymentIntentsReadValidar el pago antes de trabajar.
    ChargesReadUsar el cargo como source_transaction.
    Connected accountsReadConfirmar la cuenta destino.

    Entrégala a Revísame por un canal seguro, nunca por chat ni por correo en claro.

  4. Integra

    Por cada verificación: cobra al solicitante, espera succeeded y envía cobro.modo = connect con su payment_intent_id. Maneja 402 cobro_no_verificado como un pago que no está en orden.

El bloque cobro de cada verificación

estatusSignificado
nullLa verificación sigue en_proceso.
cargadaModo consumo (paquete prepagado). Emitida; su precio ya se descontó de tu saldo.
transferencia_encoladaModo connect. Emitida; la transferencia a Revísame quedó registrada y está en cola.
transferidaModo 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_aplicadaNo 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.