Ciclo de vida del pago
Cada pago pasa por una serie de estados:Liquidación
Cuando un pago se marca comopaid, el proceso de liquidación comienza automáticamente:
- Se deduce la comisión de la plataforma
- Se calcula la comisión del partner (si aplica)
- El monto neto se transfiere a la cuenta de recepción del merchant
- Se envía webhook con
settlement_status: "paid"
Montos
Todos los montos en la API están en la unidad más pequeña de la moneda:1000USD = $10.00settlement_amountde1000= 10.00 USDC
Crear un pago
El
amount.value está en la unidad más pequeña de la moneda. Para USD, esto significa centavos.
Entonces 1000 = $10.00.checkout_id y un qrCode (URI SEP-7) que el cliente puede escanear con cualquier wallet de Stellar.
Idempotencia
Los reintentos de red y los envíos duplicados pueden crear pagos duplicados. Para quePOST /payments sea seguro de reintentar, envía un encabezado Idempotency-Key — una cadena única (máximo 255 caracteres) que identifica la solicitud lógica:
- Si una solicitud con la misma clave se reenvía después de que la primera se completó, se devuelve la respuesta del pago original — no se crea un segundo pago.
- Si la solicitud original aún se está procesando, el reintento recibe 409. El 409 siempre es transitorio — usa un retroceso exponencial corto (p. ej. reintenta tras 1s, luego 2s).
- Reutilizar una clave con un cuerpo de solicitud distinto devuelve 422 (indica un error del cliente).
- Una clave de más de 255 caracteres devuelve 400.
order-1234). Los plugins oficiales de e-commerce (WooCommerce, PrestaShop, Odoo) lo hacen automáticamente, usando el pedido como clave.
Si omites el encabezado, cada solicitud crea un nuevo pago.