Pay

Developers/Referencia

Gallo Pay API

Referencia generada a partir del spec OpenAPI v1.0. Autenticación por x-api-key. Descargá el contrato en /openapi.json o volvé a la guía de Developers.

Homologación / dev

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

Producción

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

Sandbox / homologación

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

Versión

1.0

Índice

accounts

CVUs, alias, saldos y movimientos (`/v1`)

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"
pepbooleanPersona expuesta políticamente
postalCodestringej. "1425"
documentTypestringej. "DNI"
documentNumberstringej. "30123456"
nationalitystringej. "AR"
commercialUsebooleanUso comercial de la cuenta (Apartado B)
{
  "cuit": "20370994049",
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "alias": "gallo.juan.perez",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false
}

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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
status*querystring
sort*querystring
order*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",
      "titulares": [
        {
          "cuit": "20370994049",
          "titular": "JUAN PEREZ",
          "tipoPersona": "F"
        }
      ],
      "alias": "gallo.juan.perez",
      "status": "active",
      "isTreasury": false,
      "sweepEnabled": true,
      "visibleBalance": "15230.50",
      "ledgerAvailable": "0.00",
      "pep": false,
      "postalCode": "1425",
      "documentType": "DNI",
      "documentNumber": "30123456",
      "nationality": "AR",
      "commercialUse": false,
      "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 (incluye límites efectivos y uso)

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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}/limits

Límites efectivos de una CVU (mismo snapshot que GET account)

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200

Errores

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

Actualizar límites de CVU (null = hereda PSP/plataforma)

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · UpdateLimitsDto · requerido

Campos

CampoTipoDescripción
maxTransferAmountobjectMáximo por operación ARS. null = hereda.
dailyTransferLimitobjectTope diario ARS. null = hereda.
monthlyTransferLimitobjectTope mensual ARS. null = hereda.
commissionPercentobjectComisión % override. null = hereda PSP/comprobante.
commissionFixedobjectComisión fija ARS override. null = hereda PSP/comprobante.
{
  "maxTransferAmount": {},
  "dailyTransferLimit": {},
  "monthlyTransferLimit": {},
  "commissionPercent": {},
  "commissionFixed": {}
}

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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
POST/v1/accounts/{cvu}/suspend

Suspender CVU (bloquea salientes; cash-in sigue)

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · SuspendAccountDto · requerido

Campos

CampoTipoDescripción
reasonstringej. "Revisión de compliance"
{
  "reason": "Revisión de compliance"
}

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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
POST/v1/accounts/{cvu}/reactivate

Reactivar CVU suspendida

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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
PATCH/v1/accounts/{cvu}/identidad

Actualizar titular / tipo persona / cotitulares

Sincroniza titular y tipoPersona con la entidad financiera. Cotitulares se persisten en Gallo (SIRCUPA). titulares[0] debe ser el CUIT de la CVU.

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · UpdateAccountIdentidadDto · requerido

Campos

CampoTipoDescripción
titular*stringej. "JUAN PEREZ"
tipoPersona*enum(F | J)ej. "F"
titulares*TitularIdentidadDto[]Lista completa de titulares. [0] debe coincidir con el CUIT de la CVU (titular principal).
{
  "titular": "JUAN PEREZ",
  "tipoPersona": "F",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ]
}

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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
PATCH/v1/accounts/{cvu}/kyc

Actualizar datos KYC / Padrón BCRA de una CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · UpdateAccountKycDto · requerido

Campos

CampoTipoDescripción
pepobjectej. false
postalCodestringej. "1425"
documentTypestringej. "DNI"
documentNumberstringej. "30123456"
nationalitystringej. "AR"
commercialUsebooleanej. false
{
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false
}

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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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"
titularesunknown[]Titulares / cotitulares (SIRCUPA). [0] = titular principal.
alias*objectAlias CBU, null si no fue asignado.
status*enum(active | suspended | closed)ej. "active"
isTreasury*booleantrue si esta CVU es tesorería (`tenants.treasuryCvu`) o recaudadora de comisiones (`tenants.commissionCvu`).
sweepEnabledbooleanPSP con modo sweep (CVU primera recaudadora) activo.
visibleBalanceobjectSaldo visible: posición cliente si sweep+usuario; ledger si tesorería o modo standard.
ledgerAvailableobjectLedger disponible de la CVU (≈0 en usuario con sweep). Solo útil con sweep.
pep*objectej. false
postalCode*objectej. "1425"
documentType*objectej. "DNI"
documentNumber*objectej. "30123456"
nationality*objectej. "AR"
commercialUse*booleanej. false
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",
  "titulares": [
    {
      "cuit": "20370994049",
      "titular": "JUAN PEREZ",
      "tipoPersona": "F"
    }
  ],
  "alias": "gallo.juan.perez",
  "status": "active",
  "isTreasury": false,
  "sweepEnabled": true,
  "visibleBalance": "15230.50",
  "ledgerAvailable": "0.00",
  "pep": false,
  "postalCode": "1425",
  "documentType": "DNI",
  "documentNumber": "30123456",
  "nationality": "AR",
  "commercialUse": false,
  "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). En modo sweep (CVU usuario) = posición cliente.
heldBalance*stringSaldo retenido por transferencias en vuelo (ARS).
totalBalance*stringavailableBalance + heldBalance.
modeenum(standard | sweep)
treasuryCvuobject
cvuAvailableBalancestringLedger disponible real de la CVU (≈0 si sweep + usuario).
customerLiabilitiesobjectPasivo total de clientes (solo CVU tesorería).
freeBalanceobjecttreasuryAvailable - customerLiabilities (informativo; puede ser negativo).
isTreasurybooleantrue si esta CVU es tesorería o recaudadora de comisiones del PSP.
{
  "cvu": "0000208200000000000147",
  "availableBalance": "15230.50",
  "heldBalance": "500.00",
  "totalBalance": "15730.50",
  "mode": "standard",
  "treasuryCvu": {},
  "cvuAvailableBalance": "string",
  "customerLiabilities": {},
  "freeBalance": {},
  "isTreasury": true
}

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
type*querystring
from*querystring
to*querystring
q*querystring
sort*querystring
order*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
POST/v1/accounts/{cvu}/tags

Add segment tag to CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · AccountTagDto · requerido

Campos

CampoTipoDescripción
tag*stringej. "vip"
{
  "tag": "vip"
}

Respuesta 201

DELETE/v1/accounts/{cvu}/tags/{tag}

Remove segment tag from CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring
tag*pathstring

Respuesta 200

transfers

Transferencias de salida / P2P interno (`/v1`)

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"
isInternal*booleantrue = liquidada solo con comprobantes de ledger (CVU→CVU mismo PSP).
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",
  "isInternal": false,
  "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
desde*querystring
hasta*querystring
cvu*querystring
importeMin*querystring
importeMax*querystring
sort*querystring
order*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",
      "isInternal": false,
      "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/summary

KPIs de transferencias según filtros

Totales, desglose por estado y top CUIT destino para el mismo filtro que el listado (status, q, desde, hasta, tenantId).

Parámetros

NombreEnTipoNotas
status*querystring
q*querystring
desde*querystring
hasta*querystring
cvu*querystring
importeMin*querystring
importeMax*querystring

Respuesta 200

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/v1/transfers/by-coelsa/{idCoelsa}

Buscar cash-out o cash-in por id la red de pagos

Reemplazo de ConciliarTransferenciaEntrante. 404 = no hay operación en este tenant (no es error de integración). Prioridad: transfer local → aviso de crédito → la entidad financiera.

Parámetros

NombreEnTipoNotas
idCoelsa*pathstring

Respuesta 200 · CoelsaLookupResponse

Campos

CampoTipoDescripción
idCoelsa*stringej. "G1LMP68NKVYE3XD2R7OEV4"
source*enum(transfer | cash_in | coinag)transfer = cash-out local; cash_in = aviso de crédito; la entidad financiera = banco, sin fila Gallo.
transferobject
cashInobject
bankobjectDetalle la entidad financiera cuando no hay fila local.
{
  "idCoelsa": "G1LMP68NKVYE3XD2R7OEV4",
  "source": "transfer",
  "transfer": {},
  "cashIn": {},
  "bank": {}
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 404 — id la red de pagos inexistente en este tenant
GET/v1/transfers/{id}/timeline

Timeline de estados de una transferencia

Trace completo con timestamps, deltas en ms y estados (pending → sent → confirmed | failed | reversed) incluyendo respuestas del banco y reconciliaciones.

Parámetros

NombreEnTipoNotas
id*pathstring
format*querystring

Respuesta 200 · TransferTimelineResponse

Campos

CampoTipoDescripción
transferId*string
idTrxCliente*string
status*string
createdAt*string
updatedAt*string
totalElapsedMs*numberDuración total en ms
transfer*TransferSnapshot
points*TransferTimelinePoint[]Línea de tiempo unificada: lifecycle + ledger + audit + webhooks banco + outbox
events*TransferTimelinePoint[]
counts*objectConteos por canal
{
  "transferId": "string",
  "idTrxCliente": "string",
  "status": "string",
  "createdAt": "string",
  "updatedAt": "string",
  "totalElapsedMs": 3500,
  "transfer": {
    "id": "string",
    "tenantId": "string",
    "idTrxCliente": "string",
    "idTrxCoelsa": {},
    "bankDebitoId": {},
    "cvuDebito": "string",
    "cuitDebito": "string",
    "titularDebito": "string",
    "cbuCredito": "string",
    "cuitCredito": "string",
    "titularCredito": {},
    "concepto": "string",
    "importe": "string",
    "descripcion": {},
    "status": "string",
    "errorCoelsa": {},
    "estadoCodigo": {},
    "estadoDescripcion": {},
    "createdAt": "string",
    "updatedAt": "string"
  },
  "points": [
    {
      "id": "string",
      "channel": "lifecycle",
      "seq": 1,
      "elapsedMs": 1247,
      "deltaMs": 312,
      "fromStatus": {},
      "toStatus": {},
      "type": "bank_response",
      "source": "bank",
      "estadoCodigo": {},
      "estadoDescripcion": {},
      "message": {},
      "outcome": {},
      "detail": {},
      "at": "string"
    }
  ],
  "events": [
    {
      "id": "string",
      "channel": "lifecycle",
      "seq": 1,
      "elapsedMs": 1247,
      "deltaMs": 312,
      "fromStatus": {},
      "toStatus": {},
      "type": "bank_response",
      "source": "bank",
      "estadoCodigo": {},
      "estadoDescripcion": {},
      "message": {},
      "outcome": {},
      "detail": {},
      "at": "string"
    }
  ],
  "counts": {
    "lifecycle": 6,
    "ledger": 2,
    "audit": 1,
    "bank_webhook": 0,
    "outbound": 2
  }
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 404 — Transferencia inexistente
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"
isInternal*booleantrue = liquidada solo con comprobantes de ledger (CVU→CVU mismo PSP).
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",
  "isInternal": false,
  "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

ledger-comprobantes

Tipos y comprobantes de ledger nativos (`/v1`)

GET/v1/voucher-types

Listar tipos de comprobante

Incluye tipos de sistema (hold/transfer/crédito/etc.) y tipos custom del tenant.

Respuesta 200

[
  {
    "id": {},
    "legacyId": {},
    "tenantId": {},
    "code": "string",
    "name": "string",
    "sense": "credit",
    "active": true,
    "system": true
  }
]

Errores

  • 401 — API key ausente o inválida
POST/v1/voucher-types

Crear tipo de comprobante custom (credit|debit)

Request body · CreateVoucherTypeDto · requerido

Campos

CampoTipoDescripción
code*stringej. "PROMO_REINTEGRO"
name*stringej. "Reintegro por promoción"
sense*enum(credit | debit | hold | release | confirm_hold)ej. "credit"
{
  "code": "PROMO_REINTEGRO",
  "name": "Reintegro por promoción",
  "sense": "credit"
}

Respuesta 201 · VoucherTypeResponse

Campos

CampoTipoDescripción
idobjectNull for system (built-in) types
legacyIdobjectNumeric id for wallet API (custom only)
tenantIdobject
code*string
name*string
sense*enum(credit | debit | hold | release | confirm_hold)
active*boolean
system*boolean
{
  "id": {},
  "legacyId": {},
  "tenantId": {},
  "code": "string",
  "name": "string",
  "sense": "credit",
  "active": true,
  "system": true
}

Errores

  • 401 — API key ausente o inválida
PATCH/v1/voucher-types/{code}

Activar/desactivar tipo custom

Parámetros

NombreEnTipoNotas
code*pathstring

Request body · ToggleVoucherTypeDto · requerido

Campos

CampoTipoDescripción
active*boolean
{
  "active": true
}

Respuesta 200

Errores

  • 401 — API key ausente o inválida
DELETE/v1/voucher-types/{code}

Eliminar tipo custom

Parámetros

NombreEnTipoNotas
code*pathstring

Respuesta 204

Errores

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

Listar comprobantes de una CVU

Proyección legible de ledger_movements (sentido, tipo, saldos después).

Parámetros

NombreEnTipoNotas
cvu*pathstring
limit*querystring
offset*querystring
type*querystring
referenceType*querystring
from*querystring
to*querystring
q*querystring
sort*querystring
order*querystring

Respuesta 200

[
  {
    "id": "string",
    "cvu": "string",
    "amount": "string",
    "availableAfter": "string",
    "heldAfter": "string",
    "totalAfter": "string",
    "sense": "credit",
    "voucherTypeCode": "string",
    "voucherTypeName": "string",
    "idExterno": "string",
    "referenceType": "string",
    "referenceId": "string",
    "ledgerType": "string",
    "description": {},
    "createdAt": "string"
  }
]

Errores

  • 401 — API key ausente o inválida
POST/v1/accounts/{cvu}/comprobantes

Crear comprobante de ajuste

Solo tipos custom del tenant. Idempotente por idExterno + sentido (credit/debit).

Parámetros

NombreEnTipoNotas
cvu*pathstring

Request body · CreateComprobanteDto · requerido

Campos

CampoTipoDescripción
voucherTypeCode*stringCódigo de tipo de comprobante custom del tenant (no tipos de sistema).
amount*numberImporte positivo en ARS
idExterno*stringId externo del PSP (idempotencia de este ajuste).
descriptionstringej. "Promo verano CVU"
{
  "voucherTypeCode": "PROMO_REINTEGRO",
  "amount": 150.5,
  "idExterno": "promo-2026-08-0042",
  "description": "Promo verano CVU"
}

Respuesta 201 · ComprobanteResponse

Campos

CampoTipoDescripción
id*string
cvu*string
amount*string
availableAfter*string
heldAfter*string
totalAfter*string
sense*enum(credit | debit | hold | release | confirm_hold)
voucherTypeCode*string
voucherTypeName*string
idExterno*string
referenceType*string
referenceId*string
ledgerType*string
description*object
createdAt*string
{
  "id": "string",
  "cvu": "string",
  "amount": "string",
  "availableAfter": "string",
  "heldAfter": "string",
  "totalAfter": "string",
  "sense": "credit",
  "voucherTypeCode": "string",
  "voucherTypeName": "string",
  "idExterno": "string",
  "referenceType": "string",
  "referenceId": "string",
  "ledgerType": "string",
  "description": {},
  "createdAt": "string"
}

Errores

  • 401 — API key ausente o inválida
GET/v1/comprobantes/internal

Listar comprobantes internos (global)

Ajustes manuales y liquidaciones P2P internas (INTERNAL_P2P_IN/OUT) de todas las CVU, paginado.

Parámetros

NombreEnTipoNotas
limit*querystring
offset*querystring
desde*querystring
hasta*querystring
cvu*querystring
tipo*querystring
importeMin*querystring
importeMax*querystring
sort*querystring
order*querystring

Respuesta 200

Errores

  • 401 — API key ausente o inválida
GET/v1/comprobantes/by-external/{idExterno}

Consultar ajuste por idExterno

Solo comprobantes de tipo adjustment.

Parámetros

NombreEnTipoNotas
idExterno*pathstring

Respuesta 200 · ComprobanteResponse

Campos

CampoTipoDescripción
id*string
cvu*string
amount*string
availableAfter*string
heldAfter*string
totalAfter*string
sense*enum(credit | debit | hold | release | confirm_hold)
voucherTypeCode*string
voucherTypeName*string
idExterno*string
referenceType*string
referenceId*string
ledgerType*string
description*object
createdAt*string
{
  "id": "string",
  "cvu": "string",
  "amount": "string",
  "availableAfter": "string",
  "heldAfter": "string",
  "totalAfter": "string",
  "sense": "credit",
  "voucherTypeCode": "string",
  "voucherTypeName": "string",
  "idExterno": "string",
  "referenceType": "string",
  "referenceId": "string",
  "ledgerType": "string",
  "description": {},
  "createdAt": "string"
}

Errores

  • 401 — API key ausente o inválida
GET/v1/comprobantes/{id}

Consultar comprobante por ID interno

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · ComprobanteResponse

Campos

CampoTipoDescripción
id*string
cvu*string
amount*string
availableAfter*string
heldAfter*string
totalAfter*string
sense*enum(credit | debit | hold | release | confirm_hold)
voucherTypeCode*string
voucherTypeName*string
idExterno*string
referenceType*string
referenceId*string
ledgerType*string
description*object
createdAt*string
{
  "id": "string",
  "cvu": "string",
  "amount": "string",
  "availableAfter": "string",
  "heldAfter": "string",
  "totalAfter": "string",
  "sense": "credit",
  "voucherTypeCode": "string",
  "voucherTypeName": "string",
  "idExterno": "string",
  "referenceType": "string",
  "referenceId": "string",
  "ledgerType": "string",
  "description": {},
  "createdAt": "string"
}

Errores

  • 401 — API key ausente o inválida
GET/v1/accounts/{cvu}/balance/historical

Saldo histórico de cierre por fecha (EOD o último movimiento del día)

Parámetros

NombreEnTipoNotas
cvu*pathstring
date*querystring

Respuesta 200 · HistoricalBalanceResponse

Campos

CampoTipoDescripción
cvu*string
date*stringej. "2026-08-03"
availableBalance*string
heldBalance*string
totalBalance*string
source*enum(snapshot | movement | zero)Origen del valor histórico
{
  "cvu": "string",
  "date": "2026-08-03",
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string",
  "source": "snapshot"
}

Errores

  • 401 — API key ausente o inválida

agentic

Órdenes de cash-out agénticas: propose → confirm humano → rail (`/v1`)

POST/v1/agentic/orders

Proponer orden de cash-out agéntica (no mueve fondos)

El LLM (o gallo-api) crea una orden persistida. La política corre en código. Confirmá con POST …/confirm usando payloadHash de GET, no del chat. Cash-out one-shot sigue siendo POST /v1/transfers.

Request body · ProposeAgenticOrderDto · requerido

Campos

CampoTipoDescripción
cvuDebito*stringej. "0000208200000000000147"
cbuCredito*stringej. "0000208200000000000291"
cuitCredito*stringej. "20370994049"
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
titularCreditostringej. "JUAN PEREZ"
descripcionstringej. "Pago servicio"
intentRawstringTexto original del usuario (P5). No se usa para ejecutar.
{
  "cvuDebito": "0000208200000000000147",
  "cbuCredito": "0000208200000000000291",
  "cuitCredito": "20370994049",
  "concepto": "VAR",
  "importe": 1500.5,
  "titularCredito": "JUAN PEREZ",
  "descripcion": "Pago servicio",
  "intentRaw": "string"
}

Errores

  • 400
  • 401
  • 503
GET/v1/agentic/orders

Listar órdenes agénticas del tenant

Parámetros

NombreEnTipoNotas
status*querystring
kind*querystring
origin*querystring
limit*querystring
offset*querystring

Respuesta 200

Errores

  • 400
  • 401
GET/v1/agentic/orders/{id}

Ver orden (fuente de verdad para confirmar — no el texto del LLM)

Key agent o human (`agentic.read`). No exige confirm. La card en Sigil lee payloadHash de acá.

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200

Errores

  • 400
  • 401
POST/v1/agentic/orders/{id}/confirm

Confirmar orden y ejecutar el servicio de dominio (por kind)

JWT: MFA aal2. API key Sigil: payloadHash + confirmedBy. transfer → TransfersService; suspend/reactivate → AccountsService; debin_spot / qr_commerce → Debin/Qr. No es tool MCP.

Parámetros

NombreEnTipoNotas
id*pathstring

Request body · ConfirmAgenticOrderDto · requerido

Campos

CampoTipoDescripción
payloadHash*stringSHA-256 hex of the canonical payload from GET /v1/agentic/orders/:id — never from LLM text
confirmedBystringRequired for API keys: identifier of the human who confirmed (email / user id in Sigil).
{
  "payloadHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "confirmedBy": "trader@sigil.example"
}

Respuesta 201

Errores

  • 400
  • 401
POST/v1/agentic/orders/{id}/reject

Parámetros

NombreEnTipoNotas
id*pathstring

Request body · RejectAgenticOrderDto · requerido

Campos

CampoTipoDescripción
reasonstring
{
  "reason": "string"
}

Respuesta 201

Errores

  • 400
  • 401
POST/v1/agentic/chat

Chat operativo PSP (lecturas L0 + propose L2/L3; no ejecuta)

Saldo, límites, movimientos, freeze/DEBIN/QR/transfer como órdenes. Confirmá con POST /v1/agentic/orders/:id/confirm (key human). cvuDebito del body queda pineado para débito/vendedor por defecto.

Request body · AgenticChatDto · requerido

Campos

CampoTipoDescripción
message*stringej. "Mandale 50k a Guido"
cvuDebito*stringej. "0000208200000000000147"
threadIdstring
directoryAgenticDirectoryEntryDto[]
{
  "message": "Mandale 50k a Guido",
  "cvuDebito": "0000208200000000000147",
  "threadId": "string",
  "directory": [
    {
      "name": "Guido",
      "cbu": "string",
      "cvu": "string",
      "cuit": "string",
      "alias": "string"
    }
  ]
}

Errores

  • 401
  • 503

wallet-cuentas

Cuentas wallet (`/wallet/v1`)

GET/wallet/v1/Cuentas

Listar cuentas wallet

Paginado. `q` filtra por CUIT, email, nombre, código o id.

Parámetros

NombreEnTipoNotas
pageNumber*querystring
pageSize*querystring
q*querystring
habilitado*querystring
sort*querystring
order*querystring

Respuesta 200 · CuentasListResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
items*WalletAccountDetailResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "items": [
    {
      "id": 0,
      "tenantId": "string",
      "codigo": {},
      "cuitCuil": "string",
      "nombre": "string",
      "apellido": "string",
      "razonSocial": "string",
      "email": "string",
      "celular": "string",
      "actividadAfip": "string",
      "idOrganizacion": {},
      "habilitado": true,
      "cvu": {},
      "alias": {},
      "nombreCvu": {},
      "domicilio": {
        "calle": {},
        "numero": {},
        "piso": {},
        "departamento": {},
        "localidadCodigo": {},
        "provinciaCodigo": {},
        "cp": {},
        "cpa": {},
        "localidadNombre": {},
        "provinciaNombre": {},
        "pais": {}
      },
      "cuentaCVUId": {},
      "cvus": [
        {
          "id": 0,
          "cvu": "string",
          "alias": {},
          "nombreCvu": {},
          "fechaAlta": "string"
        }
      ],
      "esPep": true,
      "esFatca": true,
      "esUif": true,
      "organizacionCuentaBancoId": {},
      "fechaNacimiento": {},
      "ocupacion": {},
      "estadoCivil": {},
      "dni": {},
      "tipoPersona": "F",
      "nacionalidad": "AR",
      "sujetoObligado": {},
      "nse": {},
      "nivelRiesgo": {},
      "perfilTransaccional": {},
      "ingresosAnuales": {},
      "montoAnualInvertir": {},
      "pepDetalle": {},
      "fechaAltaSiscri": {},
      "fechaMonitoreada": {}
    }
  ]
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
POST/wallet/v1/Cuenta

Crear cuenta wallet

Request body · CreateWalletAccountDto · requerido

Campos

CampoTipoDescripción
codigostring
cuitCuil*stringej. "20374315679"
nombre*string
apellido*string
razonSocial*string
email*string
celular*string
actividadAfip*stringej. "000012"
habilitadoboolean
domicilioDomicilioDto
datosDomicilioDomicilioDto
esPep*boolean
esFatcaboolean
esFactaboolean
esUif*boolean
nacionalidad*stringej. "AR"
fechaNacimientostring
ocupacionstring
estadoCivilstring
dnistring
tipoPersonaenum(F | J)
sujetoObligadoobject
nseobjectNivel socioeconómico (Regis NSE)
nivelRiesgoobject
perfilTransaccionalobject
ingresosAnualesobjectFacturación / ingresos anuales estimados
montoAnualInvertirobject
pepDetalleobjectDetalle declaración PEP (parentesco, función, fechas)
{
  "codigo": "string",
  "cuitCuil": "20374315679",
  "nombre": "string",
  "apellido": "string",
  "razonSocial": "string",
  "email": "string",
  "celular": "string",
  "actividadAfip": "000012",
  "habilitado": true,
  "domicilio": {
    "calle": "string",
    "numero": "string",
    "piso": {},
    "departamento": {},
    "localidadCodigo": {},
    "provinciaCodigo": {},
    "localidadId": 0,
    "provinciaId": 0,
    "cp": "string",
    "localidadNombre": {},
    "provinciaNombre": {},
    "pais": {}
  },
  "datosDomicilio": {
    "calle": "string",
    "numero": "string",
    "piso": {},
    "departamento": {},
    "localidadCodigo": {},
    "provinciaCodigo": {},
    "localidadId": 0,
    "provinciaId": 0,
    "cp": "string",
    "localidadNombre": {},
    "provinciaNombre": {},
    "pais": {}
  },
  "esPep": true,
  "esFatca": true,
  "esFacta": true,
  "esUif": true,
  "nacionalidad": "AR",
  "fechaNacimiento": "string",
  "ocupacion": "string",
  "estadoCivil": "string",
  "dni": "string",
  "tipoPersona": "F",
  "sujetoObligado": {},
  "nse": {},
  "nivelRiesgo": {},
  "perfilTransaccional": {},
  "ingresosAnuales": {},
  "montoAnualInvertir": {},
  "pepDetalle": {}
}

Respuesta 201 · CreateWalletAccountResponse

Campos

CampoTipoDescripción
id*numberej. 274926
habilitado*booleanej. true
{
  "id": 274926,
  "habilitado": true
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 409 — Código ya existe
PATCH/wallet/v1/Habilitado/Cuenta/{id}

Habilitar/deshabilitar cuenta

Parámetros

NombreEnTipoNotas
id*pathnumber

Request body · SetHabilitadoDto · requerido

Campos

CampoTipoDescripción
habilitado*boolean
{
  "habilitado": true
}

Respuesta 204

OK

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
PUT/wallet/v1/Cuenta/{id}

Modificar cuenta

Parámetros

NombreEnTipoNotas
id*pathnumber

Request body · UpdateWalletAccountDto · requerido

Campos

CampoTipoDescripción
codigostring
cuitCuil*stringej. "20374315679"
nombre*string
apellido*string
razonSocial*string
email*string
celular*string
actividadAfip*stringej. "000012"
habilitadoboolean
domicilioDomicilioDto
datosDomicilioDomicilioDto
esPep*boolean
esFatcaboolean
esFactaboolean
esUif*boolean
nacionalidad*stringej. "AR"
fechaNacimientostring
ocupacionstring
estadoCivilstring
dnistring
tipoPersonaenum(F | J)
sujetoObligadoobject
nseobjectNivel socioeconómico (Regis NSE)
nivelRiesgoobject
perfilTransaccionalobject
ingresosAnualesobjectFacturación / ingresos anuales estimados
montoAnualInvertirobject
pepDetalleobjectDetalle declaración PEP (parentesco, función, fechas)
{
  "codigo": "string",
  "cuitCuil": "20374315679",
  "nombre": "string",
  "apellido": "string",
  "razonSocial": "string",
  "email": "string",
  "celular": "string",
  "actividadAfip": "000012",
  "habilitado": true,
  "domicilio": {
    "calle": "string",
    "numero": "string",
    "piso": {},
    "departamento": {},
    "localidadCodigo": {},
    "provinciaCodigo": {},
    "localidadId": 0,
    "provinciaId": 0,
    "cp": "string",
    "localidadNombre": {},
    "provinciaNombre": {},
    "pais": {}
  },
  "datosDomicilio": {
    "calle": "string",
    "numero": "string",
    "piso": {},
    "departamento": {},
    "localidadCodigo": {},
    "provinciaCodigo": {},
    "localidadId": 0,
    "provinciaId": 0,
    "cp": "string",
    "localidadNombre": {},
    "provinciaNombre": {},
    "pais": {}
  },
  "esPep": true,
  "esFatca": true,
  "esFacta": true,
  "esUif": true,
  "nacionalidad": "AR",
  "fechaNacimiento": "string",
  "ocupacion": "string",
  "estadoCivil": "string",
  "dni": "string",
  "tipoPersona": "F",
  "sujetoObligado": {},
  "nse": {},
  "nivelRiesgo": {},
  "perfilTransaccional": {},
  "ingresosAnuales": {},
  "montoAnualInvertir": {},
  "pepDetalle": {}
}

Respuesta 204

OK

Errores

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

Consultar cuenta por ID

Parámetros

NombreEnTipoNotas
id*pathnumber

Respuesta 200 · WalletAccountDetailResponse

Campos

CampoTipoDescripción
id*number
tenantIdstringTenant (PSP) owner
codigoobject
cuitCuil*string
nombre*string
apellido*string
razonSocial*string
email*string
celular*string
actividadAfip*string
idOrganizacionobject
habilitado*boolean
cvuobject
aliasobject
nombreCvuobject
domicilio*DomicilioResponse
cuentaCVUIdobject
cvusWalletCvuSummaryResponse[]Todos los CVUs activos de la wallet. cvu/alias/cuentaCVUId apuntan al primario (más antiguo).
esPep*boolean
esFatca*boolean
esUif*boolean
organizacionCuentaBancoIdobject
fechaNacimientoobject
ocupacionobject
estadoCivilobject
dniobject
tipoPersonaenum(F | J)
nacionalidad*stringej. "AR"
sujetoObligadoobject
nseobject
nivelRiesgoobject
perfilTransaccionalobject
ingresosAnualesobjectFacturación / ingresos anuales estimados
montoAnualInvertirobject
pepDetalleobject
fechaAltaSiscriobject
fechaMonitoreadaobject
{
  "id": 0,
  "tenantId": "string",
  "codigo": {},
  "cuitCuil": "string",
  "nombre": "string",
  "apellido": "string",
  "razonSocial": "string",
  "email": "string",
  "celular": "string",
  "actividadAfip": "string",
  "idOrganizacion": {},
  "habilitado": true,
  "cvu": {},
  "alias": {},
  "nombreCvu": {},
  "domicilio": {
    "calle": {},
    "numero": {},
    "piso": {},
    "departamento": {},
    "localidadCodigo": {},
    "provinciaCodigo": {},
    "cp": {},
    "cpa": {},
    "localidadNombre": {},
    "provinciaNombre": {},
    "pais": {}
  },
  "cuentaCVUId": {},
  "cvus": [
    {
      "id": 0,
      "cvu": "string",
      "alias": {},
      "nombreCvu": {},
      "fechaAlta": "string"
    }
  ],
  "esPep": true,
  "esFatca": true,
  "esUif": true,
  "organizacionCuentaBancoId": {},
  "fechaNacimiento": {},
  "ocupacion": {},
  "estadoCivil": {},
  "dni": {},
  "tipoPersona": "F",
  "nacionalidad": "AR",
  "sujetoObligado": {},
  "nse": {},
  "nivelRiesgo": {},
  "perfilTransaccional": {},
  "ingresosAnuales": {},
  "montoAnualInvertir": {},
  "pepDetalle": {},
  "fechaAltaSiscri": {},
  "fechaMonitoreada": {}
}

Errores

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

Consultar cuentas por CUIT

Parámetros

NombreEnTipoNotas
cuit*querystring

Respuesta 200

[
  {
    "id": 0,
    "tenantId": "string",
    "codigo": {},
    "cuitCuil": "string",
    "nombre": "string",
    "apellido": "string",
    "razonSocial": "string",
    "email": "string",
    "celular": "string",
    "actividadAfip": "string",
    "idOrganizacion": {},
    "habilitado": true,
    "cvu": {},
    "alias": {},
    "nombreCvu": {},
    "domicilio": {
      "calle": {},
      "numero": {},
      "piso": {},
      "departamento": {},
      "localidadCodigo": {},
      "provinciaCodigo": {},
      "cp": {},
      "cpa": {},
      "localidadNombre": {},
      "provinciaNombre": {},
      "pais": {}
    },
    "cuentaCVUId": {},
    "cvus": [
      {
        "id": 0,
        "cvu": "string",
        "alias": {},
        "nombreCvu": {},
        "fechaAlta": "string"
      }
    ],
    "esPep": true,
    "esFatca": true,
    "esUif": true,
    "organizacionCuentaBancoId": {},
    "fechaNacimiento": {},
    "ocupacion": {},
    "estadoCivil": {},
    "dni": {},
    "tipoPersona": "F",
    "nacionalidad": "AR",
    "sujetoObligado": {},
    "nse": {},
    "nivelRiesgo": {},
    "perfilTransaccional": {},
    "ingresosAnuales": {},
    "montoAnualInvertir": {},
    "pepDetalle": {},
    "fechaAltaSiscri": {},
    "fechaMonitoreada": {}
  }
]

Errores

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

Consultar cuentas por email

Parámetros

NombreEnTipoNotas
email*querystring

Respuesta 200

[
  {
    "id": 0,
    "tenantId": "string",
    "codigo": {},
    "cuitCuil": "string",
    "nombre": "string",
    "apellido": "string",
    "razonSocial": "string",
    "email": "string",
    "celular": "string",
    "actividadAfip": "string",
    "idOrganizacion": {},
    "habilitado": true,
    "cvu": {},
    "alias": {},
    "nombreCvu": {},
    "domicilio": {
      "calle": {},
      "numero": {},
      "piso": {},
      "departamento": {},
      "localidadCodigo": {},
      "provinciaCodigo": {},
      "cp": {},
      "cpa": {},
      "localidadNombre": {},
      "provinciaNombre": {},
      "pais": {}
    },
    "cuentaCVUId": {},
    "cvus": [
      {
        "id": 0,
        "cvu": "string",
        "alias": {},
        "nombreCvu": {},
        "fechaAlta": "string"
      }
    ],
    "esPep": true,
    "esFatca": true,
    "esUif": true,
    "organizacionCuentaBancoId": {},
    "fechaNacimiento": {},
    "ocupacion": {},
    "estadoCivil": {},
    "dni": {},
    "tipoPersona": "F",
    "nacionalidad": "AR",
    "sujetoObligado": {},
    "nse": {},
    "nivelRiesgo": {},
    "perfilTransaccional": {},
    "ingresosAnuales": {},
    "montoAnualInvertir": {},
    "pepDetalle": {},
    "fechaAltaSiscri": {},
    "fechaMonitoreada": {}
  }
]

Errores

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

Consultar cuentas por celular

Parámetros

NombreEnTipoNotas
celular*querystring

Respuesta 200

[
  {
    "id": 0,
    "tenantId": "string",
    "codigo": {},
    "cuitCuil": "string",
    "nombre": "string",
    "apellido": "string",
    "razonSocial": "string",
    "email": "string",
    "celular": "string",
    "actividadAfip": "string",
    "idOrganizacion": {},
    "habilitado": true,
    "cvu": {},
    "alias": {},
    "nombreCvu": {},
    "domicilio": {
      "calle": {},
      "numero": {},
      "piso": {},
      "departamento": {},
      "localidadCodigo": {},
      "provinciaCodigo": {},
      "cp": {},
      "cpa": {},
      "localidadNombre": {},
      "provinciaNombre": {},
      "pais": {}
    },
    "cuentaCVUId": {},
    "cvus": [
      {
        "id": 0,
        "cvu": "string",
        "alias": {},
        "nombreCvu": {},
        "fechaAlta": "string"
      }
    ],
    "esPep": true,
    "esFatca": true,
    "esUif": true,
    "organizacionCuentaBancoId": {},
    "fechaNacimiento": {},
    "ocupacion": {},
    "estadoCivil": {},
    "dni": {},
    "tipoPersona": "F",
    "nacionalidad": "AR",
    "sujetoObligado": {},
    "nse": {},
    "nivelRiesgo": {},
    "perfilTransaccional": {},
    "ingresosAnuales": {},
    "montoAnualInvertir": {},
    "pepDetalle": {},
    "fechaAltaSiscri": {},
    "fechaMonitoreada": {}
  }
]

Errores

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

wallet-cvu

CVU / alias wallet (`/wallet/v1`)

POST/wallet/v1/CVU

Crear CVU para una cuenta wallet

Request body · CreateWalletCvuDto · requerido

Campos

CampoTipoDescripción
idCuenta*numberej. 274926
nombreCVUstringej. "Juan Alberto Perez"
aliasAutomaticoboolean
tipoPersonaenum(F | J)Override de tipo de persona. Si no se envía, se infiere del prefijo del CUIT.
permitirAdicionalbooleanPermitir un CVU adicional cuando la wallet ya tiene uno activo. Solo tiene efecto para platform_admin; los PSP lo ignoran.
{
  "idCuenta": 274926,
  "nombreCVU": "Juan Alberto Perez",
  "aliasAutomatico": true,
  "tipoPersona": "F",
  "permitirAdicional": true
}

Respuesta 201 · CreateWalletCvuResponse

Campos

CampoTipoDescripción
id*numberej. 154552
cvu*stringej. "0000208200000000000147"
alias*objectej. "gp.20374315679"
idCuenta*numberej. 274926
nombreCvu*stringej. "Juan Alberto Perez"
{
  "id": 154552,
  "cvu": "0000208200000000000147",
  "alias": "gp.20374315679",
  "idCuenta": 274926,
  "nombreCvu": "Juan Alberto Perez"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
DELETE/wallet/v1/CVU/{id}

Eliminar CVU

Parámetros

NombreEnTipoNotas
id*pathnumber

Respuesta 204

OK

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
PATCH/wallet/v1/AsignarAlias/CVU/{id}

Asignar o modificar alias de un CVU

Parámetros

NombreEnTipoNotas
id*pathnumber

Request body · AsignarAliasDto · requerido

Campos

CampoTipoDescripción
alias*stringej. "Carlitos.perez7896"
idEsCuentaboolean
{
  "alias": "Carlitos.perez7896",
  "idEsCuenta": true
}

Respuesta 204

OK

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
  • 422 — Alias inválido / en uso / 24h
GET/wallet/v1/CuentaCVUByCbuCvuOrAlias

Consultar cuenta por CBU/CVU o alias

Parámetros

NombreEnTipoNotas
cbuOrCvu*querystring
alias*querystring

Respuesta 200 · CuentaCvuLookupResponse

Campos

CampoTipoDescripción
cuentaIdobject
cbucvu*string
aliasobject
cuitCuilobject
nombreobject
bancoNombreobject
tipoCuentaobjectTipo de cuenta según la red de pagos (p. ej. CVU, CC, CA)
activo*boolean
billeteraIdobject
nombreCvuobject
entidadobject
moneda*stringej. "ARS"
{
  "cuentaId": {},
  "cbucvu": "string",
  "alias": {},
  "cuitCuil": {},
  "nombre": {},
  "bancoNombre": {},
  "tipoCuenta": "CVU",
  "activo": true,
  "billeteraId": {},
  "nombreCvu": {},
  "entidad": {},
  "moneda": "ARS"
}

Errores

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

Listar cuentas CVU de la entidad

Parámetros

NombreEnTipoNotas
pageNumber*querystring
pageSize*querystring

Respuesta 200 · CuentasCvuListResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
cuentasCVU*CuentasCvuItemResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "cuentasCVU": [
    {
      "id": 0,
      "idCuenta": 0,
      "nombre": "string",
      "apellido": "string",
      "cuitCuil": "string",
      "cvu": "string",
      "alias": {},
      "fechaAlta": "string"
    }
  ]
}

Errores

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

wallet-saldo

Saldo en pesos y comprobantes (`/wallet/v1`)

GET/wallet/v1/TiposComprobantes

Listar tipos de comprobante

Respuesta 200

[
  {
    "id": 357,
    "nombre": "string",
    "codigo": "string",
    "descripcion": {},
    "signo": 1,
    "sentido": "credit",
    "habilitado": true
  }
]

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
POST/wallet/v1/TipoComprobante

Crear tipo de comprobante

signo 1 = crédito, -1 = débito; u opcionalmente sentido credit|debit|hold|release|confirm_hold.

Request body · WalletCreateTipoComprobanteDto · requerido

Campos

CampoTipoDescripción
nombre*stringej. "Promo reintegro"
codigo*stringej. "PROMO_REINTEGRO"
descripcionstringej. "Reintegro por promoción"
signoenum(1 | -1)1 = crédito, -1 = débito
sentidoenum(credit | debit | hold | release | confirm_hold)Extensión Gallo; si viene, manda sobre signo
tipoMovimientostringCategoría de movimiento (opcional)
{
  "nombre": "Promo reintegro",
  "codigo": "PROMO_REINTEGRO",
  "descripcion": "Reintegro por promoción",
  "signo": 1,
  "sentido": "credit",
  "tipoMovimiento": "001"
}

Respuesta 201 · WalletCreateTipoResponse

Campos

CampoTipoDescripción
id*number
{
  "id": 0
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
DELETE/wallet/v1/TipoComprobante/{id}

Eliminar tipo por legacyId

Parámetros

NombreEnTipoNotas
id*pathnumber

Respuesta 204

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
POST/wallet/v1/Comprobante

Crear comprobante de ajuste sobre idCuenta wallet

Request body · WalletCreateComprobanteDto · requerido

Campos

CampoTipoDescripción
idTipoComprobantenumberId numérico del tipo de comprobante
codigostringCódigo del tipo (alternativa a idTipoComprobante)
idCuenta*numberID cuenta wallet
importe*numberej. 100
referenciastringej. "Recarga"
idExternostringej. "promo-42"
fechaExternastringej. "2026-08-05"
{
  "idTipoComprobante": 0,
  "codigo": "PROMO_REINTEGRO",
  "idCuenta": 274931,
  "importe": 100,
  "referencia": "Recarga",
  "idExterno": "promo-42",
  "fechaExterna": "2026-08-05"
}

Respuesta 201 · WalletCreateComprobanteResponse

Campos

CampoTipoDescripción
id*stringUUID del movimiento ledger
saldo*numberSaldo disponible post-ajuste
availableBalancestring
heldBalancestring
totalBalancestring
{
  "id": "string",
  "saldo": 0,
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/wallet/v1/ComprobanteByIdExterno/{idExterno}

Consultar comprobante por idExterno

Parámetros

NombreEnTipoNotas
idExterno*pathstring

Respuesta 200 · WalletComprobanteItemResponse

Campos

CampoTipoDescripción
idComprobante*string
idTipoComprobanteobject
descripcionTipoComprobante*string
idCuentaobject
fecha*string
importe*number
signo*enum(1 | -1)
sentido*string
saldo*number
referenciaobject
idExterno*string
cvu*string
fechaExternaobject
{
  "idComprobante": "string",
  "idTipoComprobante": {},
  "descripcionTipoComprobante": "string",
  "idCuenta": {},
  "fecha": "string",
  "importe": 0,
  "signo": 1,
  "sentido": "string",
  "saldo": 0,
  "referencia": {},
  "idExterno": "string",
  "cvu": "string",
  "fechaExterna": {}
}

Errores

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

Consultar comprobante por ID (UUID movimiento)

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · WalletComprobanteItemResponse

Campos

CampoTipoDescripción
idComprobante*string
idTipoComprobanteobject
descripcionTipoComprobante*string
idCuentaobject
fecha*string
importe*number
signo*enum(1 | -1)
sentido*string
saldo*number
referenciaobject
idExterno*string
cvu*string
fechaExternaobject
{
  "idComprobante": "string",
  "idTipoComprobante": {},
  "descripcionTipoComprobante": "string",
  "idCuenta": {},
  "fecha": "string",
  "importe": 0,
  "signo": 1,
  "sentido": "string",
  "saldo": 0,
  "referencia": {},
  "idExterno": "string",
  "cvu": "string",
  "fechaExterna": {}
}

Errores

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

Saldo actual por CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200 · WalletSaldoResponse

Campos

CampoTipoDescripción
saldo*numberSaldo disponible
availableBalancestring
heldBalancestring
totalBalancestring
cvustring
idCuentanumber
{
  "saldo": 0,
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string",
  "cvu": "string",
  "idCuenta": 0
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/wallet/v1/SaldoActualByIdCuenta/{idCuenta}

Saldo actual por idCuenta wallet

Parámetros

NombreEnTipoNotas
idCuenta*pathnumber

Respuesta 200 · WalletSaldoResponse

Campos

CampoTipoDescripción
saldo*numberSaldo disponible
availableBalancestring
heldBalancestring
totalBalancestring
cvustring
idCuentanumber
{
  "saldo": 0,
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string",
  "cvu": "string",
  "idCuenta": 0
}

Errores

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

Listar saldos actuales (cuentas con CVU)

`pageSize` máximo 1000. Paginar hasta `totalPages` — no enviar 1_000_000.

Parámetros

NombreEnTipoNotas
pageNumber*querystring
pageSize*querystring

Respuesta 200 · WalletSaldosPageResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
items*WalletSaldoResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "items": [
    {
      "saldo": 0,
      "availableBalance": "string",
      "heldBalance": "string",
      "totalBalance": "string",
      "cvu": "string",
      "idCuenta": 0
    }
  ]
}

Errores

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

Saldo histórico por CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring
date*querystring

Respuesta 200 · WalletSaldoHistoricoResponse

Campos

CampoTipoDescripción
saldo*numberSaldo disponible
availableBalancestring
heldBalancestring
totalBalancestring
cvustring
idCuentanumber
date*string
sourceenum(snapshot | movement | zero)
{
  "saldo": 0,
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string",
  "cvu": "string",
  "idCuenta": 0,
  "date": "string",
  "source": "snapshot"
}

Errores

  • 400 — Request inválido
  • 401 — API key ausente o inválida
GET/wallet/v1/SaldoHistoricoByIdCuenta/{idCuenta}

Saldo histórico por idCuenta

Parámetros

NombreEnTipoNotas
idCuenta*pathnumber
date*querystring

Respuesta 200 · WalletSaldoHistoricoResponse

Campos

CampoTipoDescripción
saldo*numberSaldo disponible
availableBalancestring
heldBalancestring
totalBalancestring
cvustring
idCuentanumber
date*string
sourceenum(snapshot | movement | zero)
{
  "saldo": 0,
  "availableBalance": "string",
  "heldBalance": "string",
  "totalBalance": "string",
  "cvu": "string",
  "idCuenta": 0,
  "date": "string",
  "source": "snapshot"
}

Errores

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

Listar saldos históricos por fecha

Parámetros

NombreEnTipoNotas
date*querystring
pageNumber*querystring
pageSize*querystring

Respuesta 200 · WalletSaldosPageResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
items*WalletSaldoResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "items": [
    {
      "saldo": 0,
      "availableBalance": "string",
      "heldBalance": "string",
      "totalBalance": "string",
      "cvu": "string",
      "idCuenta": 0
    }
  ]
}

Errores

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

wallet-conciliar

Consultas y conciliaciones (`/wallet/v1`)

GET/wallet/v1/ComprobantesByFilters

Listar comprobantes con filtros (conciliación)

`fechaDesde`/`fechaHasta` en yyyy-MM-dd. `pageSize` máximo 100; paginar hasta `totalPages`.

Parámetros

NombreEnTipoNotas
fechaDesde*querystring
fechaHasta*querystring
pageNumber*querystring
pageSize*querystring
idCuenta*querystring
idTipoComprobante*querystring
codigo*querystring
signo*querystring
orderByDesc*querystring

Respuesta 200 · WalletComprobantesPageResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
comprobantes*WalletComprobanteItemResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "comprobantes": [
    {
      "idComprobante": "string",
      "idTipoComprobante": {},
      "descripcionTipoComprobante": "string",
      "idCuenta": {},
      "fecha": "string",
      "importe": 0,
      "signo": 1,
      "sentido": "string",
      "saldo": 0,
      "referencia": {},
      "idExterno": "string",
      "cvu": "string",
      "fechaExterna": {}
    }
  ]
}

Errores

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

Movimientos de cuenta corriente por idCuenta o cvu

Parámetros

NombreEnTipoNotas
idCuenta*querystring
cvu*querystring
pageNumber*querystring
pageSize*querystring
fechaDesde*querystring
fechaHasta*querystring

Respuesta 200 · WalletComprobantesPageResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
comprobantes*WalletComprobanteItemResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "comprobantes": [
    {
      "idComprobante": "string",
      "idTipoComprobante": {},
      "descripcionTipoComprobante": "string",
      "idCuenta": {},
      "fecha": "string",
      "importe": 0,
      "signo": 1,
      "sentido": "string",
      "saldo": 0,
      "referencia": {},
      "idExterno": "string",
      "cvu": "string",
      "fechaExterna": {}
    }
  ]
}

Errores

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

Listar operaciones (transfers) del tenant

Parámetros

NombreEnTipoNotas
pageNumber*querystring
pageSize*querystring
fechaDesde*querystring
fechaHasta*querystring
status*querystring

Respuesta 200 · WalletOperacionesPageResponse

Campos

CampoTipoDescripción
totalPages*number
totalRecords*number
operaciones*WalletOperacionItemResponse[]
{
  "totalPages": 0,
  "totalRecords": 0,
  "operaciones": [
    {
      "id": "string",
      "idExterno": "string",
      "idTrxCoelsa": {},
      "importe": "string",
      "status": "string",
      "cvuDebito": "string",
      "cbuCredito": "string",
      "createdAt": "string",
      "updatedAt": "string",
      "isInternal": true
    }
  ]
}

Errores

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

bank

GET/v1/bank/conciliacion

Transferencias conciliadas por el banco (fecha Debin)

Proxy a la entidad financiera ConciliacionTransferenciasDeBanco. `fecha` = FechaConciliacion (YYYY-MM-DD), por defecto hoy AR. Keys de tenant solo ven CVUs de su PSP.

Parámetros

NombreEnTipoNotas
fecha*querystring

Respuesta 200

wallet-remuneracion

POST/wallet/v1/Remuneracion/Alta

Alta de cuenta comitente en remuneración de saldos

Request body · EnrollRemuneracionDto · requerido

{}

Respuesta 201

GET/wallet/v1/Remuneracion/Estado/{cvu}

Estado de enrolamiento y saldo valorizado

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200

treasury

GET/v1/treasury

Snapshot de tesorería (sweep)

freeBalance es informativo y puede ser negativo si el PSP usa float de clientes.

Respuesta 200

Treasury snapshot

GET/v1/treasury/positions

Listar posiciones de cliente

Parámetros

NombreEnTipoNotas
q*querystring
min*querystring
max*querystring
limit*querystring
offset*querystring

Respuesta 200

GET/v1/treasury/positions/{cvu}

Saldo de cliente de una CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200

GET/v1/treasury/positions/{cvu}/movements

Movimientos del libro cliente

Parámetros

NombreEnTipoNotas
cvu*pathstring
from*querystring
to*querystring
limit*querystring
offset*querystring

Respuesta 200

GET/v1/treasury/positions/{cvu}/balance/historical

Saldo histórico de posición cliente

Parámetros

NombreEnTipoNotas
cvu*pathstring
date*querystring

Respuesta 200

wallet-treasury

GET/wallet/v1/Tesoreria

Snapshot tesorería (wallet)

Respuesta 200

GET/wallet/v1/SaldosClientes

Listar saldos de cliente

Parámetros

NombreEnTipoNotas
q*querystring
page*querystring
pageSize*querystring

Respuesta 200

GET/wallet/v1/SaldoClienteByCVU/{cvu}

Saldo cliente por CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring

Respuesta 200

GET/wallet/v1/SaldoClienteByIdCuenta/{idCuenta}

Saldo cliente por idCuenta

Parámetros

NombreEnTipoNotas
idCuenta*pathstring

Respuesta 200

GET/wallet/v1/MovimientosCliente

Movimientos del libro cliente

Parámetros

NombreEnTipoNotas
cvu*querystring
idCuenta*querystring
from*querystring
to*querystring
limit*querystring
offset*querystring

Respuesta 200

GET/wallet/v1/SaldoClienteHistoricoByCVU/{cvu}

Saldo histórico cliente por CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring
date*querystring

Respuesta 200

fees

GET/v1/fees/preview

Preview de comisión sin postear (tarjeta de confirmación)

Parámetros

NombreEnTipoNotas
cvu*querystring
importe*querystring
voucherTypeCode*querystring

Respuesta 200

fraud

PUT/v1/accounts/{cvu}/fraud/policies/{code}

Override de política de fraude a nivel CVU

Parámetros

NombreEnTipoNotas
cvu*pathstring
code*pathstring

Request body · UpsertFraudOverrideDto · requerido

Campos

CampoTipoDescripción
enabledobject
severityenum(low | medium | high | critical)
actionenum(allow_case | reject | reject_suspend)
paramsobject
{
  "enabled": {},
  "severity": "low",
  "action": "allow_case",
  "params": {}
}

Respuesta 200

DELETE/v1/accounts/{cvu}/fraud/policies/{code}

Eliminar override CVU (vuelve a PSP/plataforma)

Parámetros

NombreEnTipoNotas
cvu*pathstring
code*pathstring

Respuesta 200

debin

POST/v1/debin/adhesiones

Adherir recurrencia (Programado o Recurrente). Baja: activo=false + id

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateDebinAdhesionDto · requerido

Campos

CampoTipoDescripción
vendedor*AdherirVendedorDto
comprador*AdherirCompradorDto
debin*AdherirDebinDto
idnumberla red de pagos recurrence id. Required for baja (activo=false) and updates.
activobooleanfalse = baja de la recurrencia (requiere id)
tipo_adhesionnumberAlta: 0 no propia / 1 propia. Baja: 0 normal / 1 definitiva.
roleenum(vendedor | comprador)
kindenum(programado | recurrente)Default: programado if limite_cuotas set, else recurrente
{
  "vendedor": {
    "cuit": "30712345678"
  },
  "comprador": {
    "cuit": "20345678901",
    "cbu": "0000003100010000000001"
  },
  "debin": {
    "moneda": "032",
    "concepto": "FAC",
    "detalle": "Cuota servicio",
    "prestacion": "Suscripcion mensual",
    "referencia": "REF-001",
    "limite_cuotas": 12,
    "importe": 1500.5
  },
  "id": 0,
  "activo": true,
  "tipo_adhesion": 0,
  "role": "vendedor",
  "kind": "programado"
}

Respuesta 201 · DebinAdhesionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(vendedor | comprador)
kind*enum(programado | recurrente)
status*enum(pending | pending_confirm | active | inactive | failed)
vendedorCuit*string
compradorCuit*string
compradorCbu*string
prestacion*string
referencia*string
limiteCuotasobject
importeobject
coelsaAdhesionIdobject
respuestaCodigoobject
respuestaDescripcionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "vendedor",
  "kind": "programado",
  "status": "pending",
  "vendedorCuit": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "prestacion": "string",
  "referencia": "string",
  "limiteCuotas": {},
  "importe": {},
  "coelsaAdhesionId": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
GET/v1/debin/adhesiones

Listar adhesiones Debin

Parámetros

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

Respuesta 200 · PaginatedDebinAdhesiones

Campos

CampoTipoDescripción
total*number
limit*number
offset*number
items*DebinAdhesionResponse[]
{
  "total": 0,
  "limit": 0,
  "offset": 0,
  "items": [
    {
      "id": "string",
      "tenantId": "string",
      "role": "vendedor",
      "kind": "programado",
      "status": "pending",
      "vendedorCuit": "string",
      "compradorCuit": "string",
      "compradorCbu": "string",
      "prestacion": "string",
      "referencia": "string",
      "limiteCuotas": {},
      "importe": {},
      "coelsaAdhesionId": {},
      "respuestaCodigo": {},
      "respuestaDescripcion": {},
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400
  • 401
POST/v1/debin/adhesiones/confirmar

Comprador: ConfirmarRecurrencia (aprobar/rechazar adhesión)

Request body · ConfirmarRecurrenciaDto · requerido

Campos

CampoTipoDescripción
id*numberla red de pagos recurrence id
autorizacion*booleantrue = aprobar, false = rechazar
vendedor*ConfirmVendedorDto
comprador*ConfirmCompradorDto
debin*ConfirmDebinDto
adhesionIdstringLocal adhesion UUID (optional; looks up by la red de pagos id if omitted)
{
  "id": 0,
  "autorizacion": true,
  "vendedor": {
    "cuit": "string"
  },
  "comprador": {
    "cuit": "string",
    "cbu": "string"
  },
  "debin": {
    "moneda": "032",
    "prestacion": "string",
    "referencia": "string"
  },
  "adhesionId": "string"
}

Respuesta 200 · DebinAdhesionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(vendedor | comprador)
kind*enum(programado | recurrente)
status*enum(pending | pending_confirm | active | inactive | failed)
vendedorCuit*string
compradorCuit*string
compradorCbu*string
prestacion*string
referencia*string
limiteCuotasobject
importeobject
coelsaAdhesionIdobject
respuestaCodigoobject
respuestaDescripcionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "vendedor",
  "kind": "programado",
  "status": "pending",
  "vendedorCuit": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "prestacion": "string",
  "referencia": "string",
  "limiteCuotas": {},
  "importe": {},
  "coelsaAdhesionId": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/adhesiones/baja

Comprador: baja adhesión (activo=false + tipo_adhesion)

Request body · BajaAdhesionDto · requerido

Campos

CampoTipoDescripción
adhesionIdstringLocal adhesion UUID; if omitted use la red de pagosAdhesionId
coelsaAdhesionIdnumberla red de pagos recurrence id
tipo_adhesionnumber0 = baja normal (INACTIVA), 1 = baja definitiva
{
  "adhesionId": "string",
  "coelsaAdhesionId": 0,
  "tipo_adhesion": 0
}

Respuesta 200 · DebinAdhesionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(vendedor | comprador)
kind*enum(programado | recurrente)
status*enum(pending | pending_confirm | active | inactive | failed)
vendedorCuit*string
compradorCuit*string
compradorCbu*string
prestacion*string
referencia*string
limiteCuotasobject
importeobject
coelsaAdhesionIdobject
respuestaCodigoobject
respuestaDescripcionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "vendedor",
  "kind": "programado",
  "status": "pending",
  "vendedorCuit": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "prestacion": "string",
  "referencia": "string",
  "limiteCuotas": {},
  "importe": {},
  "coelsaAdhesionId": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/spot

Crear Debin Spot

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateDebinSpotDto · requerido

Campos

CampoTipoDescripción
ori_trx_idstringOriginator id (max 40). Auto-generated if omitted.
vendedor*ProgramadoVendedorDto
comprador*ProgramadoCompradorDto
detalle*ProgramadoDetalleDto
datosGeneradorProgramadoDatosGeneradorDto
{
  "ori_trx_id": "string",
  "vendedor": {
    "cuit": "string",
    "cbu": "string",
    "banco": "322",
    "sucursal": "string",
    "terminal": "string",
    "prestacion": "string",
    "recurrencia": true
  },
  "comprador": {
    "cuit": "string",
    "cuenta": {
      "cbu": "string",
      "alias": "string"
    }
  },
  "detalle": {
    "concepto": "CUO",
    "idUsuario": 0,
    "idComprobante": 0,
    "moneda": "032",
    "importe": 1500.5,
    "devolucion": true,
    "tiempoExpiracion": 1440,
    "descripcion": "001/012",
    "mismoTitular": 0,
    "idLote": 0
  },
  "datosGenerador": {
    "ipCliente": "string",
    "tipoDispositivo": "string",
    "plataforma": "string"
  }
}

Respuesta 201 · DebinProgramadoResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/pull

Crear Transferencia Pull (requiere X-TRX-PULL o body.trxPullToken)

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring
x-trx-pullheaderstringConsent JWT (alt: body.trxPullToken / DEBIN_TRX_PULL_TOKEN)

Request body · CreateDebinPullDto · requerido

Campos

CampoTipoDescripción
ori_trx_idstring
trxPullTokenstringConsent JWT for la red de pagos header X-TRX-PULL
tacitobooleanUse TransferenciaPullTacito instead of TransferenciaPull
vendedor*PullVendedorDto
comprador*PullCompradorDto
detalle*PullDetalleDto
datosGeneradorPullDatosGeneradorDto
{
  "ori_trx_id": "string",
  "trxPullToken": "string",
  "tacito": true,
  "vendedor": {
    "cuit": "string",
    "cbu": "string",
    "banco": "322",
    "sucursal": "string",
    "terminal": "string",
    "recurrencia": true
  },
  "comprador": {
    "cuit": "string",
    "cuenta": {
      "cbu": "string",
      "alias": "string"
    }
  },
  "detalle": {
    "concepto": "VAR",
    "idUsuario": 0,
    "idComprobante": 0,
    "moneda": "032",
    "importe": 1500.5,
    "devolucion": true,
    "tiempoExpiracion": 15,
    "descripcion": "string",
    "mismoTitular": 0,
    "idLote": 0
  },
  "datosGenerador": {
    "ipCliente": "string",
    "tipoDispositivo": "string",
    "plataforma": "string"
  }
}

Respuesta 201 · DebinProgramadoResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/programado

Crear Debin Programado (cuota)

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateDebinProgramadoDto · requerido

Campos

CampoTipoDescripción
ori_trx_idstringOriginator id (max 40). Auto-generated if omitted.
vendedor*ProgramadoVendedorDto
comprador*ProgramadoCompradorDto
detalle*ProgramadoDetalleDto
datosGeneradorProgramadoDatosGeneradorDto
adhesionIdstringLocal adhesion UUID to link
{
  "ori_trx_id": "string",
  "vendedor": {
    "cuit": "string",
    "cbu": "string",
    "banco": "322",
    "sucursal": "string",
    "terminal": "string",
    "prestacion": "string",
    "recurrencia": true
  },
  "comprador": {
    "cuit": "string",
    "cuenta": {
      "cbu": "string",
      "alias": "string"
    }
  },
  "detalle": {
    "concepto": "CUO",
    "idUsuario": 0,
    "idComprobante": 0,
    "moneda": "032",
    "importe": 1500.5,
    "devolucion": true,
    "tiempoExpiracion": 1440,
    "descripcion": "001/012",
    "mismoTitular": 0,
    "idLote": 0
  },
  "datosGenerador": {
    "ipCliente": "string",
    "tipoDispositivo": "string",
    "plataforma": "string"
  },
  "adhesionId": "string"
}

Respuesta 201 · DebinProgramadoResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
GET/v1/debin/programado

Listar Debin (Spot + Programado)

Parámetros

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

Respuesta 200 · PaginatedDebinProgramados

Campos

CampoTipoDescripción
total*number
limit*number
offset*number
items*DebinProgramadoResponse[]
{
  "total": 0,
  "limit": 0,
  "offset": 0,
  "items": [
    {
      "id": "string",
      "tenantId": "string",
      "subtipo": "SPOT",
      "oriTrxId": "string",
      "coelsaDebinId": {},
      "status": "pending",
      "vendedorCuit": "string",
      "vendedorCbu": "string",
      "compradorCuit": "string",
      "compradorCbu": "string",
      "concepto": "string",
      "moneda": "string",
      "importe": "string",
      "prestacion": "string",
      "descripcion": {},
      "estadoCodigo": {},
      "estadoDescripcion": {},
      "respuestaCodigo": {},
      "respuestaDescripcion": {},
      "coelsaAdhesionId": {},
      "adhesionId": {},
      "fechaExpiracion": {},
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400
  • 401
GET/v1/debin/programado/{id}

Detalle Debin + timeline

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · DebinProgramadoDetailResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
events*DebinEventResponse[]
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z",
  "events": [
    {
      "id": "string",
      "seq": 0,
      "type": "string",
      "source": "string",
      "fromStatus": {},
      "toStatus": {},
      "message": {},
      "at": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400
  • 401
POST/v1/debin/programado/{id}/refresh

Consultar estado en la red de pagos (GET Debin)

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · DebinProgramadoResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/programado/{id}/delete

Eliminar Debin en la red de pagos (DELETE Debin/{id}/{cuit})

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · DebinProgramadoResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
subtipo*enum(SPOT | PROGRAMADO | PULL)
oriTrxId*string
coelsaDebinIdobject
status*enum(pending | initiated | pending_buyer | credited | finalized | failed | expired | chargeback | debit_confirmed | debit_rejected)
vendedorCuit*string
vendedorCbu*string
compradorCuit*string
compradorCbu*string
concepto*string
moneda*string
importe*string
prestacion*string
descripcionobject
estadoCodigoobject
estadoDescripcionobject
respuestaCodigoobject
respuestaDescripcionobject
coelsaAdhesionIdobject
adhesionIdobject
fechaExpiracionobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "subtipo": "SPOT",
  "oriTrxId": "string",
  "coelsaDebinId": {},
  "status": "pending",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "concepto": "string",
  "moneda": "string",
  "importe": "string",
  "prestacion": "string",
  "descripcion": {},
  "estadoCodigo": {},
  "estadoDescripcion": {},
  "respuestaCodigo": {},
  "respuestaDescripcion": {},
  "coelsaAdhesionId": {},
  "adhesionId": {},
  "fechaExpiracion": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/debin/confirma-debito

ConfirmaDebitoCVU (PSP comprador)

Request body · ConfirmaDebitoCvuDto · requerido

Campos

CampoTipoDescripción
debinId*stringla red de pagos Debin id (22)
codigo*string00 accept+debit, 01 accept, 02 reject. Homolog error-débito: 20/30/35/40
compradorCuit*string
compradorCbu*string
moneda*string
importe*numberej. 1500.5
ori_trxstring
{
  "debinId": "string",
  "codigo": "00",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "moneda": "string",
  "importe": 1500.5,
  "ori_trx": "string"
}

Respuesta 201

Errores

  • 400
  • 401
POST/v1/debin/contracargo

Contracargo Programado

Request body · CreateDebinContracargoDto · requerido

Campos

CampoTipoDescripción
debinId*stringla red de pagos Debin id (22)
compradorCuit*string
vendedorCuit*string
importe*number
motivostring
{
  "debinId": "string",
  "compradorCuit": "string",
  "vendedorCuit": "string",
  "importe": 0,
  "motivo": "string"
}

Respuesta 201

Errores

  • 400
  • 401
POST/v1/debin/contracargo-pull

ContraCargoPull (Transferencia Pull)

Request body · CreateDebinContracargoPullDto · requerido

Campos

CampoTipoDescripción
operacionOriginal*ContracargoPullOperacionDto
tacitobooleanUse ContraCargoPullTacito path (default false)
{
  "operacionOriginal": {
    "id": "string",
    "detalle": {
      "importe": 0,
      "moneda": "032",
      "motivo": "string"
    }
  },
  "tacito": true
}

Respuesta 201

Errores

  • 400
  • 401
GET/v1/debin

Listar Debin (alias)

Parámetros

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

Respuesta 200 · PaginatedDebinProgramados

Campos

CampoTipoDescripción
total*number
limit*number
offset*number
items*DebinProgramadoResponse[]
{
  "total": 0,
  "limit": 0,
  "offset": 0,
  "items": [
    {
      "id": "string",
      "tenantId": "string",
      "subtipo": "SPOT",
      "oriTrxId": "string",
      "coelsaDebinId": {},
      "status": "pending",
      "vendedorCuit": "string",
      "vendedorCbu": "string",
      "compradorCuit": "string",
      "compradorCbu": "string",
      "concepto": "string",
      "moneda": "string",
      "importe": "string",
      "prestacion": "string",
      "descripcion": {},
      "estadoCodigo": {},
      "estadoDescripcion": {},
      "respuestaCodigo": {},
      "respuestaDescripcion": {},
      "coelsaAdhesionId": {},
      "adhesionId": {},
      "fechaExpiracion": {},
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400
  • 401
GET/v1/debin/{id}

Detalle Debin (alias)

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200

Errores

  • 400
  • 401

qr

POST/v1/qr/pay

Pago QR rol billetera → la red de pagos QRDebin

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateQrPayDto · requerido

Campos

CampoTipoDescripción
qrstringQR raw (EMV / la red de pagos). Prefer with qrIdTrx when known.
qrIdTrxstringIdentificador operación QR (qr_id_trx)
adquirenteCuitstringCUIT adquirente para GET QRPayment
compradorCuit*stringCUIT comprador (billetera)
compradorCbu*stringCBU/CVU comprador
compradorAliasstring
vendedorCuitstringCUIT vendedor (si no se resuelve vía QRPayment)
vendedorCbustring
vendedorBancostring
vendedorSucursalstring
vendedorTerminalstring
conceptostring
moneda*stringej. "032"
importe*numberej. 100.5
tiempoExpiracionnumberMinutos (1–4320; la red de pagos homolog acepta máx 10)
descripcionstring
promoCodestringCódigo de campaña / cupón para cashback QR
idBilleteranumber
subtipostringobjeto.subtipo la red de pagos
iniciadorstringobjeto.iniciador la red de pagos
datosGeneradorobjectdatos_generador (ip, dispositivo, etc.)
{
  "qr": "string",
  "qrIdTrx": "string",
  "adquirenteCuit": "string",
  "compradorCuit": "string",
  "compradorCbu": "string",
  "compradorAlias": "string",
  "vendedorCuit": "string",
  "vendedorCbu": "string",
  "vendedorBanco": "string",
  "vendedorSucursal": "string",
  "vendedorTerminal": "string",
  "concepto": "string",
  "moneda": "032",
  "importe": 100.5,
  "tiempoExpiracion": 0,
  "descripcion": "string",
  "promoCode": "VERANO10",
  "idBilletera": 0,
  "subtipo": "string",
  "iniciador": "string",
  "datosGenerador": {}
}

Respuesta 201 · QrOperacionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/qr/commerce

Emitir QR comercio (EMV local, rol aceptador)

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateQrCommerceDto · requerido

Campos

CampoTipoDescripción
cvuVendedor*stringCVU/CBU vendedor (comercio)
cuitVendedor*string
importenumberSi se omite → QR estático; si presente → dinámico
moneda*stringej. "032"
softDescriptorstring
mccstring
codigoPostalstringCódigo postal del comercio (8 alfanum, EMV tag 61 / IEP postal_code). Default: QR_POSTAL_CODE_DEFAULT
tiempoExpiracionnumberMinutos hasta expiración
{
  "cvuVendedor": "string",
  "cuitVendedor": "string",
  "importe": 0,
  "moneda": "032",
  "softDescriptor": "string",
  "mcc": "string",
  "codigoPostal": "C1001AAA",
  "tiempoExpiracion": 0
}

Respuesta 201 · QrOperacionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/qr/cashout

Cashout QR → la red de pagos CashOut

Parámetros

NombreEnTipoNotas
idempotency-key*headerstring

Request body · CreateQrCashoutDto · requerido

Campos

CampoTipoDescripción
debitoCuit*stringCUIT cuenta débito (nuestra CVU)
debitoCbu*stringCBU/CVU débito
debitoBancostring
debitoSucursalstring
debitoTitularstring
creditoCuit*stringCUIT crédito destino
creditoCbu*stringCBU/CVU crédito
creditoBanco*string
creditoSucursalstring
moneda*stringej. "032"
importe*numberej. 100.5
conceptostring
descripcionstring
tiempoExpiracionnumberMinutos (1–4320)
iniciadorstring
subtipostring
datosGeneradorobject
{
  "debitoCuit": "string",
  "debitoCbu": "string",
  "debitoBanco": "string",
  "debitoSucursal": "string",
  "debitoTitular": "string",
  "creditoCuit": "string",
  "creditoCbu": "string",
  "creditoBanco": "string",
  "creditoSucursal": "string",
  "moneda": "032",
  "importe": 100.5,
  "concepto": "string",
  "descripcion": "string",
  "tiempoExpiracion": 0,
  "iniciador": "string",
  "subtipo": "string",
  "datosGenerador": {}
}

Respuesta 201 · QrOperacionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/qr/cashout/confirma

ConfirmaCashOut manual

Request body · ConfirmaQrCashoutDto · requerido

Campos

CampoTipoDescripción
operacionIdstringLocal QR operation id
coelsaIdstringla red de pagos cashout id
codigostringSuccess code (default 0)
descripcionstring
{
  "operacionId": "string",
  "coelsaId": "string",
  "codigo": "string",
  "descripcion": "string"
}

Respuesta 200 · QrOperacionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401
POST/v1/qr/billetera

Alta billetera la red de pagos (ops / platform)

Request body · CreateQrBilleteraDto · requerido

Campos

CampoTipoDescripción
payload*objectPayload la red de pagos Alta Billetera (passthrough)
{
  "payload": {}
}

Respuesta 201

Errores

  • 400
  • 401
GET/v1/qr

Listar operaciones Pago QR

Parámetros

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

Respuesta 200 · PaginatedQrOperaciones

Campos

CampoTipoDescripción
items*QrOperacionResponse[]
total*number
limit*number
offset*number
{
  "items": [
    {
      "id": "string",
      "tenantId": "string",
      "role": "billetera",
      "kind": {},
      "commerceMode": {},
      "status": "created",
      "debinId": {},
      "qrIdTrx": {},
      "paymentReference": {},
      "rawQr": {},
      "cvuComprador": {},
      "cvuVendedor": {},
      "importe": "string",
      "moneda": "string",
      "coelsaCodigo": {},
      "coelsaDescripcion": {},
      "expiresAt": {},
      "createdAt": "2026-07-30T12:00:00.000Z",
      "updatedAt": "2026-07-30T12:00:00.000Z"
    }
  ],
  "total": 0,
  "limit": 0,
  "offset": 0
}

Errores

  • 400
  • 401
GET/v1/qr/{id}

Detalle operación Pago QR

Parámetros

NombreEnTipoNotas
id*pathstring

Respuesta 200 · QrOperacionDetailResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
events*QrEventResponse[]
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z",
  "events": [
    {
      "id": "string",
      "seq": 0,
      "type": "string",
      "source": "string",
      "fromStatus": {},
      "toStatus": {},
      "message": {},
      "at": "2026-07-30T12:00:00.000Z"
    }
  ]
}

Errores

  • 400
  • 401
POST/v1/qr/{id}/contracargo

QRSolicitudContraCargo

Parámetros

NombreEnTipoNotas
id*pathstring

Request body · CreateQrContracargoDto · requerido

Campos

CampoTipoDescripción
motivostring
importenumberDefaults to operation importe
monedastring
{
  "motivo": "string",
  "importe": 0,
  "moneda": "string"
}

Respuesta 200 · QrOperacionResponse

Campos

CampoTipoDescripción
id*string
tenantId*string
role*enum(billetera | aceptador | cashout)
kindobject
commerceModeobject
status*enum(created | pending_confirm | approved | rejected | finalized | failed | chargeback)
debinIdobject
qrIdTrxobject
paymentReferenceobject
rawQrobject
cvuCompradorobject
cvuVendedorobject
importe*string
moneda*string
coelsaCodigoobject
coelsaDescripcionobject
expiresAtobject
createdAt*string
updatedAt*string
{
  "id": "string",
  "tenantId": "string",
  "role": "billetera",
  "kind": {},
  "commerceMode": {},
  "status": "created",
  "debinId": {},
  "qrIdTrx": {},
  "paymentReference": {},
  "rawQr": {},
  "cvuComprador": {},
  "cvuVendedor": {},
  "importe": "string",
  "moneda": "string",
  "coelsaCodigo": {},
  "coelsaDescripcion": {},
  "expiresAt": {},
  "createdAt": "2026-07-30T12:00:00.000Z",
  "updatedAt": "2026-07-30T12:00:00.000Z"
}

Errores

  • 400
  • 401

webhooks

GET/v1/webhook-events

List received bank webhook events

Parámetros

NombreEnTipoNotas
limit*querystring
offset*querystring
type*querystring
status*querystring
q*querystring
desde*querystring
hasta*querystring
cvu*querystring
importeMin*querystring
importeMax*querystring
sort*querystring
order*querystring

Respuesta 200

GET/v1/webhook-events/summary

KPIs de créditos entrantes (totales + top CUIT originante)

Parámetros

NombreEnTipoNotas
type*querystring
desde*querystring
hasta*querystring
cvu*querystring
importeMin*querystring
importeMax*querystring

Respuesta 200