Modelo de pago (acuerdo, sesión, partner)
Para recibir pagos con la API Productos manejas tres piezas: el acuerdo, la sesión y —si repartes— el partner.
El acuerdo de pago (agreement)
Define cómo recibes el dinero. Lo creas una vez y lo reutilizas en muchas sesiones.
{
"title": "Acuerdo sin Split",
"description": "Sin distribución de fondos",
"split": false,
"payment_methods": { "immediate_debit": true, "crypto": false, "mobile_payment": true },
"default_bank_account_id": "uuid_sofitasa_001",
"rules": [{ "origin_bank_code": "0105", "destination_bank_account_id": "uuid_mercantil_007" }]
}
payment_methods— qué métodos aceptas (débito inmediato, pago móvil, cripto).default_bank_account_id— a qué cuenta se acredita por defecto.split+rules— si el pago se reparte entre varios receptores según el banco de origen. → Split.
La sesión de pago
Cada pago concreto es una sesión, creada sobre un acuerdo. SPIDI te devuelve una payment_url y un status que arranca en pending. Dos orígenes:
- Botón — el pago ocurre dentro de tu web/app. → Botón web.
- Solicitud — un enlace que envías por un canal externo. → Solicitud.
Y dos variantes: Split (reparto) y Paradas (URL permanente por cliente para pagos recurrentes). → Paradas.
El partner
Cuando repartes un pago, el partner es el receptor que recibe su parte. Se registra una vez y se usa en los acuerdos de reparto (split-receiving). → Split.
Cómo encaja todo
partner (opcional, si repartes)
│
agreement (cómo recibes: métodos, cuenta, reparto)
│
sesión (Botón | Solicitud) ──► payment_url + status: pending
│
└─► dos tiempos: débito (paid) y acreditación → ver Transacción a dos tiempos