Saltar al contenido
Última actualización

Introducción a la Validación de Centavos

La validación de centavos es un método que Belvo utiliza para confirmar que una cuenta bancaria existe y es propiedad de un individuo o entidad específica.

ProveedorBelvoClienteProveedorBelvoClienteBelvo valida la información en el CEP contra la información proporcionada al crear el clienteBelvo actualiza el estado del Método de PagoCrear un cliente1201 - Cliente Creado2Crear un método de pago3201 - Método de Pago Creado4Enviar "centavo" a la cuenta bancaria registrada5CEP generado6Belvo envía el estado del Método de Pago7
ProveedorBelvoClienteProveedorBelvoClienteBelvo valida la información en el CEP contra la información proporcionada al crear el clienteBelvo actualiza el estado del Método de PagoCrear un cliente1201 - Cliente Creado2Crear un método de pago3201 - Método de Pago Creado4Enviar "centavo" a la cuenta bancaria registrada5CEP generado6Belvo envía el estado del Método de Pago7

El flujo general de la validación de centavos de Belvo es:

  1. Creas un cliente y un método de pago.
  2. Belvo envía un “centavo” utilizando SPEI a la cuenta especificada cuando creaste el método de pago.
  3. Se genera un Comprobante Electrónico de Pago (CEP) para la transacción y Belvo recupera los datos del documento.
  4. Belvo compara la información del propietario del CEP con la información que proporcionaste al crear el cliente para verificar la cuenta dada.

Validación de centavo para Métodos de Pago (API)

  1. Creas un cliente.

  2. Creas un Método de Pago para el cliente.

  3. El estado del Método de Pago se establece en pending_agreement_acceptance.

  4. Una vez que se acepta el acuerdo, el estado del Método de Pago se establece en pending_validation.

  5. Belvo envía el "centavo" a la cuenta registrada en el Paso 2.

  6. Se genera un Comprobante Electrónico de Pago (CEP) para la transacción y Belvo recupera los datos del documento.

  7. Belvo compara el documentType y documentNumber proporcionados en el Paso 1 con la información proporcionada en el CEP.

    1. Si la información es la misma, el estado del Método de Pago se establece en active. Recibes el webhook payment_method_registration_successful con la siguiente información:

      Penny Validation Success
      {
        "eventType": "payment_method_update",
        "eventCode": "payment_method_registration_successful",
        "datetime": "2022-01-01T12:34:56.789Z",
        "details": {
          "id": "3118128a-6792-4b06-bd61-4acf6f6ad6b5",
          "reference": "your_reference_here",
          "status": "active",
          "failedReason": null,
          "failedMessage": null,
          "cep": {
            "name": "Juan Perez",
            "document": "PELJ900101ABC",
            "url": "https://example.com/cep/3118128a-6792-4b06-bd61-4acf6f6ad6b5.pdf",
            "accountType": "savings",
            "bank": "mx_bancoppel",
            "accountNumber": "012345678901234567"
          }
        }
      }
    2. Si la información no es la misma, el estado del Método de Pago se establece en error. Recibes el webhook payment_method_registration_failed con la siguiente información de error:

      Penny Validation Error
      {
        "eventType": "payment_method_update",
        "eventCode": "payment_method_registration_failed",
        "datetime": "2022-01-01T12:34:56.789Z",
        "details": {
          "id": "3118128a-6792-4b06-bd61-4acf6f6ad6b5",
          "reference": "your_reference_here",
          "status": "error",
          "failedReason": "account_validation_failed",
          "failedMessage": "Account owner validation was not successful",
          "cep": {
            "name": "Juan Perez",
            "document": "PELJ900101ABC",
            "url": "https://example.com/cep/3118128a-6792-4b06-bd61-4acf6f6ad6b5.pdf",
            "accountType": "savings",
            "bank": "mx_bancoppel",
            "accountNumber": "012345678901234567"
          }
        }
      }

Cuando están disponibles, ambos webhooks pueden incluir un objeto cep opcional en details. Este objeto contiene los datos del CEP que Belvo recuperó durante la validación de centavo: name (nombre del titular de la cuenta), document (RFC del titular de la cuenta), url (URL del documento CEP), accountType (tipo de cuenta del beneficiario), bank (institución contraparte) y accountNumber (número de cuenta del beneficiario).

Validación de Penny usando Importaciones por Lote

  1. Envías tu CSV para Importación Masiva de Pagos por Débito Directo.
  2. Si es necesario, Belvo crea los clientes asociados para cada fila en tu CSV.
  3. Belvo crea un Método de Pago para cada nuevo cliente (es decir, para cualquier cliente que no estaba previamente registrado con la misma información).
  4. El estado del Método de Pago se establece en pending_validation.
  5. Belvo envía el “penny" a la cuenta registrada en el Paso 3.
  6. Se genera un Comprobante Electrónico de Pago (CEP) para la transacción y Belvo recupera los datos del documento.
  7. Belvo compara el documentType y documentNumber proporcionados al crear el cliente con la información proporcionada en el CEP.
    1. Si la información es la misma, el estado del Método de Pago se establece en active.
    2. Si la información no es la misma, el estado del Método de Pago se establece en failed. En nuestra interfaz, verás la razón del fallo (validation_failed) junto con un mensaje detallando la razón detrás del fallo (Account owner validation was not successful).

Solicitudes de Pago con Métodos de Pago Adhoc

  1. Creas un cliente (ver referencia de la API).

  2. Creas una Solicitud de Pago con un Método de Pago Adhoc para el cliente (ver referencia de la API).

  3. El estado de la Solicitud de Pago se establece en pending_validation.

  4. Belvo envía el “centavo" a la cuenta registrada en el Paso 2.

  5. Se genera un Comprobante Electrónico de Pago (CEP) para la transacción y Belvo recupera los datos del documento.

  6. Belvo compara el documentType y documentNumber proporcionados en el Paso 1 con la información proporcionada en el CEP.

    1. Si la información es la misma, el estado de la Solicitud de Pago se establece en initial.

    2. Si la información no es la misma, el estado de la Solicitud de Pago se establece en failed. Recibirás un webhook payment_request_failed con la siguiente información de fallo:

      {
        "eventType": "payment_request_update",
        "eventCode": "payment_request_failed",
        "datetime": "2022-01-01T12:34:56.789Z",
        "details": {
          "id": "3118128a-6792-4b06-bd61-4acf6f6ad6b5", // El paymentRequestId
          "reference": "your_reference_here",
          "status": "failed",
          "failedReason": "account_validation_failed",
          "failedMessage": "La validación del propietario de la cuenta no fue exitosa"
        }
      }

-->