Gallo Pay

Developers/Referencia

Gallo Pay API

Referencia generada a partir del spec OpenAPI v1.0. Autenticación por x-api-key. Para la guía de integración (quick start, webhooks, errores) volvé a Developers.

Producción

https://api.gallo-pay.com

Sandbox

https://sandbox.api.gallo-pay.com

Versión

1.0

accounts

CVUs, alias, saldos y movimientos

POST/v1/accounts

Crear CVU (y alias opcional)

Da de alta una CVU para el titular indicado. Requiere Idempotency-Key. Emite el webhook `account.created`.

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateAccountDto · requerido

Campos

CampoTipoDescripción
cuit*stringej. "20370994049"
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)
aliasstringej. "gallo.juan.perez"
{
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez"
}

Respuesta 201 · AccountResponse

Campos

CampoTipoDescripción
id*stringej. "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40"
cvu*stringCVU generada por el banco (22 dígitos).
cuit*stringej. "20370994049"
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)ej. "F"
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | closed)ej. "active"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40",
  "cvu": "0000208200000000000147",
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "status": "active",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/accounts

Listar CVUs

Lista paginada de CVUs. `q` busca por CVU, alias, titular o CUIT.

Parámetros

NombreEnTipoNotas
limit*querystring
offset*querystring
q*querystring

Respuesta 200 · PaginatedAccounts

Campos

CampoTipoDescripción
total*numberTotal de registros que cumplen el filtro.
limit*numberTamaño de página aplicado (máx. 100).
offset*numberOffset actual.
items*AccountResponse[]
{
  "total": 137,
  "limit": 50,
  "offset": 0,
  "items": [
    {
      "id": "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40",
      "cvu": "0000208200000000000147",
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F",
      "alias": "gallo.juan.perez",
      "status": "active",
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/accounts/{cvu}

Obtener CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200 · AccountResponse

Campos

CampoTipoDescripción
id*stringej. "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40"
cvu*stringCVU generada por el banco (22 dígitos).
cuit*stringej. "20370994049"
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)ej. "F"
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | closed)ej. "active"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40",
  "cvu": "0000208200000000000147",
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "status": "active",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 404 — CVU inexistente
DELETE/v1/accounts/{cvu}

Dar de baja una CVU

Cierra la CVU. Emite el webhook `account.closed`.

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200 · AccountResponse

Campos

CampoTipoDescripción
id*stringej. "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40"
cvu*stringCVU generada por el banco (22 dígitos).
cuit*stringej. "20370994049"
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)ej. "F"
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | closed)ej. "active"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40",
  "cvu": "0000208200000000000147",
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "status": "active",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
PUT/v1/accounts/{cvu}/alias

Crear/actualizar alias de una CVU

Emite el webhook `account.alias.updated`.

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · SetAliasDto · requerido

Campos

CampoTipoDescripción
alias*stringej. "gallo.juan.perez"
{
  "alias": "gallo.juan.perez"
}

Respuesta 200 · AccountResponse

Campos

CampoTipoDescripción
id*stringej. "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40"
cvu*stringCVU generada por el banco (22 dígitos).
cuit*stringej. "20370994049"
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)ej. "F"
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | closed)ej. "active"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "3f6d9c1e-8b2a-4a1f-9c3e-6b7a1d2e5f40",
  "cvu": "0000208200000000000147",
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "status": "active",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 409 — Alias ya tomado
GET/v1/accounts/{cvu}/balance

Saldo del ledger para una CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200 · BalanceResponse

Campos

CampoTipoDescripción
cvu*stringej. "0000208200000000000147"
availableBalance*stringSaldo disponible para transferir (ARS).
heldBalance*stringSaldo retenido por transferencias en vuelo (ARS).
totalBalance*stringavailableBalance + heldBalance.
{
  "cvu": "0000208200000000000147",
  "availableBalance": "15230.50",
  "heldBalance": "500.00",
  "totalBalance": "15730.50"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/accounts/{cvu}/movements

Movimientos del ledger para una CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring
limit*querystring
offset*querystring

Respuesta 200

[
  {
    "id": "a1b2c3d4-0000-4000-8000-000000000000",
    "cvu": "0000208200000000000147",
    "type": "credit",
    "amount": "1500.00",
    "availableAfter": "15230.50",
    "heldAfter": "0.00",
    "referenceType": "webhook_credit",
    "referenceId": "evt-9f8e7d6c",
    "description": "Cash-in G1LMP68 from 0000208200000000000291",
    "createdAt": "2026-07-30T12:00:00.000Z"
  }
]

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/lookup/cbu/{cbu}

Resolver titular de una CBU/CVU

Parámetros

NombreEnTipoNotas
cbu*pathstring

Respuesta 200

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/lookup/alias/{alias}

Resolver titular de un alias

Parámetros

NombreEnTipoNotas
alias*pathstring

Respuesta 200

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida

transfers

Transferencias de salida (cash-out) en ARS

POST/v1/transfers

Crear transferencia de salida (cash-out) en ARS

Registra y envía una transferencia hacia una CBU/CVU destino. Requiere Idempotency-Key. El estado evoluciona pending → sent → confirmed | failed, emitiendo un webhook por cambio.

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateTransferDto · requerido

Campos

CampoTipoDescripción
cvuDebito*stringej. "0000208200000000000147"
cbuCredito*stringej. "0000208200000000000291"
cuitCredito*stringej. "20370994049"
titularCreditostringej. "JUAN PEREZ"
concepto*enum(ALQ | APC | BRH | BRN | CUO | ESE | EXP | FAC | HAB | HON | OIH | OIN | PRE | ROP | SEG | SIS | SON | VAR | PLF)ej. "VAR"
importe*numberej. 1500.5
descripcionstringej. "Pago servicio"
{
  "cvuDebito": "0000208200000000000147",
  "cbuCredito": "0000208200000000000291",
  "cuitCredito": "20370994049",
  "titularCredito": "JUAN PEREZ",
  "concepto": "VAR",
  "importe": 1500.5,
  "descripcion": "Pago servicio"
}

Respuesta 201 · TransferResponse

Campos

CampoTipoDescripción
id*stringej. "7c9e6679-7425-40de-944b-e07fc1f90ae7"
idTrxCliente*stringID de transacción correlativo asignado por Gallo Pay.
idTrxCoelsa*objectID de la operación en la red de pagos (una vez liquidada).
cvuDebito*stringej. "0000208200000000000147"
cuitDebito*stringej. "20370994049"
titularDebito*stringej. "JUAN PEREZ"
cbuCredito*stringej. "0000208200000000000291"
cuitCredito*stringej. "20111111112"
titularCredito*objectej. "MARIA GOMEZ"
concepto*stringConcepto BCRA.
importe*stringej. "1500.50"
descripcion*objectej. "Pago servicio"
status*enum(pending | sent | confirmed | failed | reversed)pending → sent → confirmed | failed | reversed. Cada cambio emite un webhook.
errorCoelsa*objectej. null
estadoCodigo*objectej. "00"
estadoDescripcion*objectej. "OK"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "idTrxCliente": "1024",
  "idTrxCoelsa": "G1LMP68NKVYE3XD2R7OEV4",
  "cvuDebito": "0000208200000000000147",
  "cuitDebito": "20370994049",
  "titularDebito": "JUAN PEREZ",
  "cbuCredito": "0000208200000000000291",
  "cuitCredito": "20111111112",
  "titularCredito": "MARIA GOMEZ",
  "concepto": "VAR",
  "importe": "1500.50",
  "descripcion": "Pago servicio",
  "status": "confirmed",
  "errorCoelsa": null,
  "estadoCodigo": "00",
  "estadoDescripcion": "OK",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 422 — Saldo insuficiente / rechazo de negocio
GET/v1/transfers

Listar transferencias

Lista paginada. Filtrable por `status` y búsqueda libre `q`.

Parámetros

NombreEnTipoNotas
limit*querystring
offset*querystring
status*querystring
q*querystring

Respuesta 200 · PaginatedTransfers

Campos

CampoTipoDescripción
total*numberTotal de registros que cumplen el filtro.
limit*numberTamaño de página aplicado (máx. 100).
offset*numberOffset actual.
items*TransferResponse[]
{
  "total": 137,
  "limit": 50,
  "offset": 0,
  "items": [
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "idTrxCliente": "1024",
      "idTrxCoelsa": "G1LMP68NKVYE3XD2R7OEV4",
      "cvuDebito": "0000208200000000000147",
      "cuitDebito": "20370994049",
      "titularDebito": "JUAN PEREZ",
      "cbuCredito": "0000208200000000000291",
      "cuitCredito": "20111111112",
      "titularCredito": "MARIA GOMEZ",
      "concepto": "VAR",
      "importe": "1500.50",
      "descripcion": "Pago servicio",
      "status": "confirmed",
      "errorCoelsa": null,
      "estadoCodigo": "00",
      "estadoDescripcion": "OK",
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/transfers/{id}

Obtener transferencia por id

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · TransferResponse

Campos

CampoTipoDescripción
id*stringej. "7c9e6679-7425-40de-944b-e07fc1f90ae7"
idTrxCliente*stringID de transacción correlativo asignado por Gallo Pay.
idTrxCoelsa*objectID de la operación en la red de pagos (una vez liquidada).
cvuDebito*stringej. "0000208200000000000147"
cuitDebito*stringej. "20370994049"
titularDebito*stringej. "JUAN PEREZ"
cbuCredito*stringej. "0000208200000000000291"
cuitCredito*stringej. "20111111112"
titularCredito*objectej. "MARIA GOMEZ"
concepto*stringConcepto BCRA.
importe*stringej. "1500.50"
descripcion*objectej. "Pago servicio"
status*enum(pending | sent | confirmed | failed | reversed)pending → sent → confirmed | failed | reversed. Cada cambio emite un webhook.
errorCoelsa*objectej. null
estadoCodigo*objectej. "00"
estadoDescripcion*objectej. "OK"
createdAt*stringej. "2026-07-30T12:00:00.000Z"
updatedAt*stringej. "2026-07-30T12:00:00.000Z"
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "idTrxCliente": "1024",
  "idTrxCoelsa": "G1LMP68NKVYE3XD2R7OEV4",
  "cvuDebito": "0000208200000000000147",
  "cuitDebito": "20370994049",
  "titularDebito": "JUAN PEREZ",
  "cbuCredito": "0000208200000000000291",
  "cuitCredito": "20111111112",
  "titularCredito": "MARIA GOMEZ",
  "concepto": "VAR",
  "importe": "1500.50",
  "descripcion": "Pago servicio",
  "status": "confirmed",
  "errorCoelsa": null,
  "estadoCodigo": "00",
  "estadoDescripcion": "OK",
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 404 — Transferencia inexistente

stats

GET/v1/stats

Dashboard stats

Respuesta 200

GET/v1/stats/timeseries

Daily transfer volume timeseries

Parámetros

NombreEnTipoNotas
days*querystring

Respuesta 200