# Introducción

En este artículo te proporcionamos una visión detallada de los estados de las entidades y sus transiciones dentro del producto de pagos de Belvo.

## Cargos

Un **Cargo** representa el pago real que debe realizarse en la Red de Open Finance de Brasil. A continuación, describimos los diversos estados en el proceso de cargo, detallando las posibles transiciones entre estos estados y describiendo las condiciones bajo las cuales ocurren estas transiciones. Por favor, consulte la tabla a continuación para obtener una visión completa de cada estado y el flujo del proceso.

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

    [*] --> PENDING
    PENDING --> SCHEDULED
    PENDING --> SUCCEEDED
    PENDING --> CANCELED
    PENDING --> FAILED
    SCHEDULED --> SUCCEEDED
    SCHEDULED --> CANCELED
    SCHEDULED --> FAILED
    SUCCEEDED --> [*]
    CANCELED --> [*]
    FAILED --> [*]

    class PENDING,SCHEDULED pending
    class SUCCEEDED success
    class CANCELED cancelled
    class FAILED failed
```

| Estado  | Descripción | Transiciones A  | Disparador/Evento |
|  --- | --- | --- | --- |
| `CREATED` | Estado inicial cuando se crea el cargo. | - `PENDING`

 | - El cargo se inicia pero aún no ha sido procesado por la red de OF

 |
| `PENDING` | El cargo está esperando más acciones o programación. | - `SCHEDULED`
- `SUCCEEDED`
- `CANCELED`
- `FAILED`

 | - El cargo está programado para ser procesado
- El cargo ha sido procesado exitosamente en la red de OF
- El cargo es cancelado por la red de OF mientras está pendiente
- El cargo falla en la red de OF mientras está pendiente.

 |
| `SCHEDULED` | El cargo está programado para ser procesado en una fecha futura. | - `SUCCEEDED`
- `CANCELED`
- `FAILED`

 | - El cargo se procesa exitosamente
- El cargo es cancelado mientras está programado
- El cargo falla mientras está programado.

 |
| `SUCCEEDED` | El cargo ha sido procesado exitosamente. | (Estado final - no hay más transiciones) | Ninguno |
| `CANCELED` | El cargo ha sido cancelado. | (Estado final - no hay más transiciones) | Ninguno |
| `FAILED` | El cargo ha fallado. | (Estado final - no hay más transiciones) | Ninguno |


## Inscripción

Una **Inscripción** representa la autorización del dispositivo de un usuario en la Red de Open Finance con su institución (requerido para Pagos Biométricos). A continuación, describimos los diversos estados en el proceso de Inscripción, detallando las posibles transiciones entre estos estados y describiendo las condiciones bajo las cuales ocurren estas transiciones. Por favor, consulte la tabla a continuación para obtener una visión completa de cada estado y el flujo del proceso.

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

    [*] --> PENDING
    PENDING --> SUCCEEDED
    PENDING --> FAILED
    SUCCEEDED --> CANCELLED : User or institution cancels enrollment
    SUCCEEDED --> [*]
    CANCELLED --> [*]
    FAILED --> [*]

    class PENDING pending
    class SUCCEEDED success
    class CANCELLED cancelled
    class FAILED failed
```

| Estado  | Descripción | Transiciones A  | Disparador/Evento |
|  --- | --- | --- | --- |
| Inicial | Estado inicial de la Inscripción. | - `PENDING`

 | - La carga útil de la Inscripción es aceptada y está esperando confirmación por parte del usuario.

 |
| `PENDING` | La Inscripción ha sido creada y ahora está esperando Autorización del usuario. | - `SUCCEEDED`
- `FAILED`

 | - El usuario ha aceptado la Inscripción y fue registrada exitosamente en la red así como en la institución.
- La Inscripción falló, ya sea por error del usuario, de la red o de la institución.

 |
| `SUCCEEDED` | Los procesos de Inscripción se completaron exitosamente. | - `CANCELED`

 | - El usuario canceló la Inscripción.

 |
| `FAILED` | El proceso de Inscripción falló. | (Estado final - no hay más transiciones) | Ninguno |
| `CANCELED` | El usuario canceló la Inscripción. | (Estado final - no hay más transiciones) | Ninguno |


## Autorización de Pago

Una **Autorización de Pago** es el consentimiento que tu usuario te da para cargar (debitando dinero de) sus cuentas. A continuación, describimos los diversos estados en el proceso de Autorización de Pago, detallando las posibles transiciones entre estos estados y describiendo las condiciones bajo las cuales ocurren estas transiciones. Por favor, consulta la tabla a continuación para obtener una visión completa de cada estado y el flujo del proceso.

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

    [*] --> AWAITING_AUTHORIZATION
    [*] --> FAILED
    AWAITING_AUTHORIZATION --> AUTHORIZED
    AWAITING_AUTHORIZATION --> PARTIALLY_ACCEPTED
    AWAITING_AUTHORIZATION --> FAILED
    AUTHORIZED --> CONSUMED
    AUTHORIZED --> REVOKED : Pix Automatico Only
    AUTHORIZED --> FAILED : Rejected Single or Scheduled Payment
    PARTIALLY_ACCEPTED --> AUTHORIZED
    PARTIALLY_ACCEPTED --> FAILED
    CONSUMED --> [*]
    REVOKED --> [*]
    FAILED --> [*]

    class AWAITING_AUTHORIZATION,PARTIALLY_ACCEPTED pending
    class AUTHORIZED success
    class REVOKED cancelled
    class FAILED failed
    class CONSUMED consumed
```

| Estado  | Descripción | Transiciones A  | Disparador/Evento |
|  --- | --- | --- | --- |
| *INICIAL* | Estado inicial cuando se crea la Autorización de Pago. | - `AWAITING_AUTHORIZATION`
- `FAILED`

 | - La red acepta la carga útil de la Autorización de Pago.
- La red rechaza (falla) la carga útil de la Autorización de Pago.

 |
| `AWAITING_AUTHORIZATION` | La Autorización de Pago está esperando la confirmación del usuario en la institución. | - `AUTHORIZED`
- `PARTIALLY_ACCEPTED`
- `FAILED`

 | - El usuario ha confirmado la Autorización de Pago.
- El usuario confirmó la Autorización de Pago, sin embargo, la cuenta bancaria requiere una autorización de otra parte.
- La autorización falló (el usuario puede no haber aceptado la autorización).

 |
| `PARTIALLY_ACCEPTED` | El usuario confirmó la Autorización de Pago, sin embargo, la cuenta bancaria requiere una autorización de otra parte. La Institución notificará a las partes relevantes para aprobar la autorización. | - `AUTHORIZED`
- `FAILED`

 | - Todos los usuarios han confirmado la Autorización de Pago.
- La autorización falló (el usuario puede no haber aceptado la autorización).

 |
| `AUTHORIZED` | El usuario (o todos los usuarios) han confirmado la Autorización de Pago. | - `CONSUMED`
- `REVOKED`
- `FAILED`

 | - El período de autorización (o número de transacciones) ha finalizado.
- El usuario ha revocado la autorización.

 |
| `CONSUMED` | El período de autorización (o número de transacciones) ha finalizado. | (Estado final - no hay más transiciones) | Ninguno |
| `REVOKED` | El usuario ha revocado la autorización. | (Estado final - no hay más transiciones) | Ninguno |
| `FAILED` | La Autorización de Pago ha fallado. | (Estado final - no hay más transiciones) | Ninguno |


## Intenciones de Pago

Una **Intención de Pago** contiene toda la información necesaria para procesar un pago en la Red de Open Finance de Brasil. A continuación, describimos los diversos estados en el proceso de Intención de Pago, detallando las posibles transiciones entre estos estados y describiendo las condiciones bajo las cuales ocurren estas transiciones. Por favor, consulte la tabla a continuación para obtener una visión completa de cada estado y el flujo del proceso.

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

    [*] --> REQUIRES_ACTION
    REQUIRES_ACTION --> PROCESSING
    REQUIRES_ACTION --> FAILED
    PROCESSING --> SUCCEEDED
    PROCESSING --> SCHEDULED
    PROCESSING --> CANCELED
    PROCESSING --> FAILED
    SCHEDULED --> SCHEDULE_FINISHED
    SCHEDULED --> CANCELED
    SCHEDULE_FINISHED --> [*]
    SUCCEEDED --> [*]
    CANCELED --> [*]
    FAILED --> [*]

    class REQUIRES_ACTION,PROCESSING,SCHEDULED pending
    class SUCCEEDED,SCHEDULE_FINISHED success
    class CANCELED cancelled
    class FAILED failed
```

| Estado  | Descripción | Transiciones A  | Disparador/Evento |
|  --- | --- | --- | --- |
| Creado y Confirmado | Estado inicial cuando la Intención de Pago es creada y confirmada por el usuario en el flujo del cliente. | - `REQUIRES_ACTION`

 | - La intención de pago es creada y confirmada.

 |
| `REQUIRES_ACTION` | La Intención de Pago requiere una acción adicional. | - `PROCESSING`
- `FAILED`

 | - La intención de pago contiene toda la información requerida
- La intención de pago falla (por ejemplo, el usuario no otorgó su consentimiento en la aplicación bancaria).

 |
| `PROCESSING` | La Intención de Pago está siendo procesada. | - `SCHEDULED`
- `SUCCEEDED`
- `CANCELED`
- `FAILED`

 | - La intención de pago pasa al estado programado
- La intención de pago se procesa con éxito
- La intención de pago es cancelada
- La intención de pago falla.

 |
| `SCHEDULED` | La Intención de Pago está programada para ser procesada. | - `SCHEDULE_FINISHED`
- `CANCELED`

 | - La intención de pago completó los pagos programados
- La intención de pago es cancelada.

 |
| `SCHEDULE_FINISHED` | La Intención de Pago ha finalizado el procesamiento programado. Solo se usa si no se completó el 100% de un programa. De lo contrario, el estado final es `SUCCEEDED`. | (Estado final - no hay más transiciones) | Ninguno |
| `SUCCEEDED` | La Intención de Pago ha sido procesada con éxito. | (Estado final - no hay más transiciones) | Ninguno |
| `CANCELED` | La Intención de Pago ha sido cancelada. | (Estado final - no hay más transiciones) | Ninguno |
| `FAILED` | La Intención de Pago ha fallado. | (Estado final - no hay más transiciones) | Ninguno |