Enviar transferencia
Incluye operaciones sensiblesEsta herramienta mueve dinero real. No envía el pago todavía: crea la intención en el portal Banca Cliente, que valida el destino y envía un código de 6 dígitos al correo del comercio (vigencia de 30 minutos). El pago se ejecuta sólo al llamar baas_confirm_transfer con ese código.
baas_send_transfer
Crea la intención de una transferencia desde la cuenta bancaria del comercio en el portal Banca Cliente (todavía no es el pago). El portal valida el destino y envía un código de 6 dígitos al correo del comercio; el pago se ejecuta sólo cuando se llama baas_confirm_transfer con ese código (vigencia de 30 minutos). Método por defecto: SINPE Móvil (destino por teléfono); para transferencia a cuenta, destinationAccountType=IBAN. baas_validate_destination es opcional para mostrar el titular antes; esta herramienta valida el destino por su cuenta.
Exige confirmación: Confirmaciones que exige Tilopay
Operación del API: POST /api/public/v1/transactions/payments — ver la página de la operación
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
amount | number | sí | Monto a transferir |
currency | string | sí | Moneda ISO 4217 (CRC, USD) |
contactName | string | — | Nombre del contacto guardado (alternativa a destinationAccountValue; uno de los dos es obligatorio) |
destinationAccountType | string (PHONE | IBAN) | — | PHONE = SINPE Móvil (por defecto), IBAN = transferencia a cuenta |
destinationAccountValue | string | — | Teléfono: se aceptan +50688887777, 506 8888-7777 u 88887777 y se normaliza a 8 dígitos; IBAN en mayúsculas sin espacios. Alternativa a contactName: uno de los dos es obligatorio. |
destinationName | string | — | Nombre del destinatario (si no se valida via contacto) |
detailReference | string | — | Concepto de la transferencia (mínimo 15 caracteres) |
assignmentId | string | — | No se usa en este flujo |
allowDuplicate | boolean | — | Solo true cuando el usuario confirmó literalmente que quiere repetir una transferencia idéntica reciente (por ejemplo 'sí, es otra'). Nunca se activa por iniciativa del agente. |
Devuelve
{ requires_transfer_code: true, channel: "email", via: "portal", resumen: { beneficiario_nombre, beneficiario_confirmado_por_banco, beneficiario_identificacion_enmascarada, entidad_financiera, destino_tipo, destino_legible, monto, moneda, concepto, origen, datos_no_informados[] }, requires_approval, message }
No devuelve intentId: la intención queda guardada en el servidor. Respuestas especiales: requires_duplicate_confirmation (mismo destino, monto y moneda en 120 s; repetir con allowDuplicate: true sólo si el usuario lo confirmó literalmente) y requires_open_intent_resolution (ya hay una intención abierta: confirmarla con baas_confirm_transfer o cancelarla con baas_cancel_transfer).
Última verificación: 2026-10-20