Saltar al contenido principal

VA Payments

Los VA payments generan una instrucción dedicada de cuenta virtual que tu integrador puede mostrar directamente dentro de su propio producto. En vez de redirigir al pagador a un checkout hosteado de Basilic, recibís inmediatamente el CVU y el alias para presentar vos mismo las instrucciones de transferencia.

Qué es un VA payment

  • Un VA payment es un flujo API-only de cobro por transferencia bancaria.
  • Basilic crea el registro del pago, reserva la cuenta receptora y devuelve el CVU / alias para mostrarle al pagador.
  • Tu servidor puede consultar el ciclo de vida con GET /api/v1/va-payments y GET /api/v1/va-payments/{id} o reaccionar a callbacks cuando estén configurados.
  • Actualmente, los VA payments solo están soportados en Argentina y únicamente para instrucciones de transferencia en ARS.

Flujo de VA payment

Qué podés controlar

  • Lock mode por tiempo, monto o ambos.
  • Ventana de expiración mediante ttlSeconds.
  • Identificación opcional del cliente con clientId, clientTaxId y clientName.
  • Entrega de callbacks a tu backend mediante callbackUrl.
  • Referencias externas y metadata para conciliar en tus propios sistemas.

Payload del callback

Cuando llega una transferencia y Basilic la matchea a un VA payment, hace un POST a la callbackUrl que configuraste.

Payload del webhook:

{
"eventId": "uuid",
"vaPaymentId": "uuid",
"eventType": "va_payment.received",
"status": "completed",
"payload": {
"vaPaymentId": "uuid",
"operationId": "internal-op-id",
"incomingAmount": 4970.00,
"total": 5000.00,
"totalWithoutTaxes": 4970.00,
"taxes": 30.00,
"receivedAmount": 4970.00,
"remainingAmount": 0
},
"createdAt": "2026-05-18T12:00:00Z"
}

Campos del payload:

CampoDescripción
payload.incomingAmountMonto neto recibido después de impuestos (campo pre-existente, igual a totalWithoutTaxes)
payload.totalMonto bruto antes de impuestos
payload.totalWithoutTaxesMonto neto después de impuestos (igual a incomingAmount)
payload.taxesImpuestos retenidos por el proveedor. total - taxes = incomingAmount
payload.receivedAmountMonto acreditado al VA payment (puede diferir si el pago fue parcial o excedió el monto esperado)
payload.remainingAmountMonto pendiente de recibir. 0 cuando está completamente pagado

En la mayoría de las transferencias no hay retenciones y total === incomingAmount con taxes === 0. Para transferencias argentinas con retenciones impositivas, estos campos contienen el desglose.