Un método de pago es la cuenta bancaria que tú (o tu usuario) registras para que los fondos puedan ser retirados de ella. Para retirar fondos del método de pago, necesitarás crear una solicitud de pago.

¿Usando Batch Imports?
Si estás usando nuestra función de Batch Imports, creamos automáticamente el método de pago durante el proceso.

# Flujo del Método de Pago

Cuando creas un método de pago, pasará por el siguiente flujo para ser:

- `active`: La institución financiera confirma los detalles de la cuenta bancaria y puedes retirar fondos de ella.
- `error`: La institución financiera no pudo confirmar la cuenta bancaria y no puedes retirar fondos de ella.


# Crear un método de pago

Puedes crear un método de pago utilizando cualquiera de nuestros:

- Dashboard
- API
- Importaciones por lotes


Importaciones por lotes y métodos de pago
Si estás utilizando nuestra funcionalidad de Importaciones por lotes, el Método de Pago se crea automáticamente. Para más información, consulta nuestro artículo dedicado a la Importación Masiva de Pagos Directos.

## A través del panel

Para crear un método de pago usando nuestro panel:

1. En tu panel de Débito Directo:
  1. Ve a **Métodos de Pago**.
  2. Haz clic en **Crear**.
2. En la ventana emergente **Crear Método de Pago**;
  1. Selecciona el **Cliente** al que se relaciona este método de pago.
  2. Selecciona el **Banco** donde se encuentra la cuenta del cliente.
  3. Selecciona el tipo de **Cuenta**: **Ahorros** para una cuenta CLABE, o **Tarjeta de Débito** para un número de tarjeta de débito.
  4. Proporciona el identificador de la cuenta: si seleccionaste **Ahorros**, ingresa la **CLABE** del cliente; si seleccionaste **Tarjeta de Débito**, ingresa el **número de tarjeta de débito**.
  5. Proporciona tu **Referencia** interna para este método de pago.
  6. Haz clic en **Crear**.



Éxito
Ahora necesitarás obtener el Consentimiento de tu usuario para que la cuenta sea debitada. Para más información, consulta nuestro artículo dedicado al Consentimiento.

## A través de la API

Para crear un método de pago usando nuestra API, solo necesitas hacer una solicitud POST para Crear un método de pago con el siguiente payload:


```json
{
  "customerId": "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c",
  "accountType": "savings",
  "accountNumber": "445566790",
  "bank": "mx_bancoppel",
  "reference": "SAVINGS_445566790"
}
```

| Parámetro | Tipo | Requerido | Descripción | Ejemplo |
|  --- | --- | --- | --- | --- |
| `customerId` | string (uuid) | Sí | El ID generado por Belvo para el cliente. | `0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c` |
| `accountType` | string (enum) | Sí | El tipo de cuenta bancaria o tarjeta. Puede ser `savings` (una cuenta CLABE) o `debit_card` (un número de tarjeta de débito). | `savings` |
| `accountNumber` | string | Sí | El número de cuenta bancaria o de tarjeta de débito. Para `savings`, proporciona el número de cuenta CLABE; para `debit_card`, proporciona el número de tarjeta de débito. | `"445566790"` |
| `bank` | string (enum) | Sí | La institución financiera donde se mantiene la cuenta bancaria. Para una lista completa de instituciones disponibles, consulta nuestro artículo dedicado a Instituciones. | `mx_bancoppel` |
| `reference` | string | Sí | Tu referencia interna para el método de pago. | `SAVINGS_445566790` |


`checking` tipo de cuenta obsoleto
El valor `checking` (también visto como `checkings`) para `accountType` está obsoleto y ya no debe usarse. Usa `savings` para una cuenta CLABE o `debit_card` para un número de tarjeta de débito.

Éxito
Ahora necesitarás obtener el Consentimiento de tu usuario para que la cuenta sea debitada. Para más información, consulta nuestro artículo dedicado a Consentimiento.

# Estados de Métodos de Pago

En el diagrama a continuación, te proporcionamos los estados por los que puede pasar un método de pago. Si has implementado webhooks, recibirás una notificación para los estados indicados en púrpura.


```mermaid
stateDiagram-v2
    classDef pending fill:#ADD8E6,color:#000,stroke:none
    classDef success fill:#2E8B57,color:#fff,stroke:none
    classDef failed fill:#CC3300,color:#fff,stroke:none
    classDef cancelled fill:#FFA500,color:#fff,stroke:none

    [*] --> pending_agreement_acceptance
    [*] --> active
    pending_agreement_acceptance --> pending_activation
    pending_agreement_acceptance --> active
    pending_agreement_acceptance --> [*] : Si el usuario no acepta el acuerdo
    pending_activation --> waiting_for_activation_response
    waiting_for_activation_response --> active
    waiting_for_activation_response --> error
    active --> inactive : Si la cuenta bancaria ya no está activa
    active --> [*]
    error --> [*]
    inactive --> [*]

    class pending_agreement_acceptance,pending_activation,waiting_for_activation_response pending
    class active success
    class error failed
    class inactive cancelled

    note right of active
        Webhook: payment_method_registration_successful
    end note
    note right of error
        Webhook: payment_method_registration_failed
    end note
    note right of inactive
        Webhook: payment_method_registration_canceled
    end note
```

## Estados

#### `initial`

Estado inicial cuando se crea el método de pago.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| - `pending_agreement_acceptance`

 | - Acuerdo del método de pago enviado al cliente

 |


#### `pending_agreement_acceptance`

El método de pago está pendiente de confirmación por parte del cliente. Esto se puede hacer enviando un acuerdo generado por nuestro recurso de API de Acuerdos.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| - `pending_activation`- `active`- Estado final - no hay más transiciones

 | - El cliente acepta el método de pago y se envía a la institución financiera para confirmación- (Socio Optimizado) Método de pago confirmado por el banco- El usuario no acepta el acuerdo

 |


#### `pending_activation`

El método de pago está programado para ser enviado a la institución financiera para ser confirmado.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| - `pending_activation_response`

 | - El método de pago es enviado a la institución financiera.

 |


#### `pending_activation_response`

La institución financiera está evaluando el método de pago.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| - `active`- `error`

 | - Método de pago confirmado por la institución financiera- La institución financiera devuelve un error (por ejemplo, la cuenta bancaria no existe)

 |


#### `active`

El método de pago está activo y los fondos pueden ser retirados.

**Nota**: El estado puede cambiar a `inactive` si el propietario cancela o elimina el método de pago dentro de su institución financiera.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| Estado final - no hay más transiciones (ver la nota arriba respecto al estado `inactive`). | - 
 |


#### `error`

La institución financiera no pudo confirmar el registro de la cuenta bancaria (generalmente debido a que el propietario proporcionó información incorrecta de la cuenta bancaria o un error en la institución financiera). El método de pago no puede ser utilizado.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| Estado final - no más transiciones | - 
 |


#### `inactive`

El cliente ha cancelado su cuenta bancaria o ha eliminado su acuerdo para el método de pago dentro de su institución financiera. El método de pago no se puede usar.

| Transiciones a | Disparador/Evento |
|  --- | --- |
| Estado final - no hay más transiciones | - 
 |