Saltar al contenido principal

Crea tu primer lote

Puedes crear lotes de pago de dos maneras, enviando el detalle de las transacciones como un JSON en el cuerpo de la solicitud, o enviando uno de los formatos de archivos que soportamos.

URL Base del API
https://api.payouts.wompi.co/v1

Crear un lote de pago

La URL del endpoint para crear lotes de pagos manual es:

POST /payouts

Cabeceras (Headers)

x-api-key: *******
user-principal-id: *******
idempotency-key: Rs122k1sas
Content-Type: application/json
  • Los headers user-principal-id y x-api-key son para la autenticación. Mas detalles de como obtenerlos en Llaves de autenticación
  • El header idempotency-key se usa para garantizar que el pago sea único y evitar duplicidad. Debe ser una llave que tenga de 1 a 64 caracteres, puede contener letras y números, el único caracter especial permitido dentro de la llave es el guion (-). Debe ser unico y expira en 24 horas.
  • El header Content-Type debe ir con el valor application/json especificando que el formato del cuerpo de la petición.

Pagos inmediatos

A continuación se muestra un ejemplo del cuerpo de una petición:

{
"reference": "payment-reference",
"accountId": "account-id",
"paymentType": "PAYROLL",
"transactions": [
{
"legalIdType": "CC",
"legalId": "1000000000",
"bankId": "00000000-0000-0000-0000-000000000000",
"accountType": "AHORROS",
"accountNumber": "00000000",
"name": "John Doe",
"email": "email@example.com",
"amount": 1000000,
"reference": "custom-transaction-reference"
}
]
}
  • El campo accountId se debe extraer de la respuesta del endpoint /accounts. Ir a consultar cuentas.
  • El campo bankId se debe extraer de la respuesta del endpoint /banks. Ir a consultar bancos.
  • El valor de amount debe ser un valor positivo y debe ir en centavos. (por ejemplo, $10,000 COP se representa como 1000000).

Pagos programados

Para crear pagos programados, puedes agregar el campo dispersionDatetime el cual es un string con el formato YYYY-MM-DDTHH:mm.

info

La fecha de programación del pago debe ser minimo al siguiente día en que se genere la petición, de lo contrario el pago es rechazado.

Ejemplo del cuerpo de la petición:

{
"reference": "referencia-api",
"accountId": "account-id",
"paymentType": "PAYROLL",
"dispersionDatetime": "2024-10-15T19:01",
"transactions": [
{
"legalIdType": "CC",
"legalId": "1000000000",
"bankId": "00000000-0000-0000-0000-000000000000",
"accountType": "AHORROS",
"accountNumber": "00000000",
"name": "John Doe",
"email": "email@example.com",
"amount": 1000,
"reference": "custom-transaction-reference"
}
]
}

Pagos recurrentes

Para crear pagos recurrentes debes agregar los campos dispersionDatetime el cual es un string con el formato YYYY-MM-DDTHH:mm y recurring el cual es un objeto json que recibe los siguientes campos:

  • interval: Intervalo del pago. Puede ser: biweek, month.
  • months: Meses en número. Puede ser: 3, 6, 12.
  • description: La descripción es opcional.
{
"reference": "referencia-api",
"accountId": "account-id",
"paymentType": "PAYROLL",
"dispersionDatetime": "2024-10-15T19:01",
"recurring": {
"interval": "biweek",
"months": 3,
"description": "optional description"
},
"transactions": [
{
"legalIdType": "CC",
"legalId": "1000000000",
"bankId": "00000000-0000-0000-0000-000000000000",
"accountType": "AHORROS",
"accountNumber": "00000000",
"name": "John Doe",
"email": "email@example.com",
"amount": 1000,
"reference": "custom-transaction-reference"
}
]
}

Crear un lote de pago enviando un archivo

La URL del endpoint para crear lotes de pagos por archivo es:

POST /payouts/file

Formatos

Puedes crear un lote de pago usando uno de los siguientes archivos que soportamos:

FormatoCódigoExtensiónPlantillaEjemplo
WompiWOMPI.csvPlantillaDescargar
PAB BancolombiaPAB.txtConversorDescargar
SAP BancolombiaSAP.txtConversorDescargar
Disfon - Banco de BogotáDISFON.txtDescargar
FlexCube (FC) - Banco de OccidenteBANCO_OCCIDENTE_FC.txtDescargar
Plano DaviviendaDAVIVIENDA.txtDescargar

Cabeceras (Headers)

x-api-key: *******
user-principal-id: *******
idempotency-key: Rs122k1sas
Content-Type: multipart/form-data
  • Los headers user-principal-id y x-api-key son para la autenticación. Mas detalles de como obtenerlos en Llaves de autenticación
  • El header idempotency-key se usa para garantizar que el pago sea único y evitar duplicidad. Debe ser una llave que tenga de 1 a 64 caracteres, puede contener letras y números, el único caracter especial permitido dentro de la llave es el guion (-). Debe ser unico y expira en 24 horas.
  • El header Content-Type para los pagos por archivo debe ir con el valor multipart/form-data

Pagos inmediatos

El cuerpo de la petición debe ser del tipo form-data con los campos:

  • reference: Referencia del lote.
  • file: Archivo del lote.
  • fileType: Tipo de archivo. Es el código del formato, ver tabla de formatos. Ej. BANCO_OCCIDENTE_FC
  • accountId: Id de la cuenta origen
  • paymentType: Tipo de pago. Puede ser: PAYROLL, PROVIDERS, OTHER.
Archivos comprimidos

Para subir un archivo de lote comprimido, este debe tener la extensión .gz y el MIME application/gzip. También se deben adicionar los siguientes campos a la petición:

  • fileName: Nombre del archivo y con la extensión original (antes de comprimirse). Por ejemplo, "plantilla-wompi.csv".
  • fileMime: MIME del archivo original (antes de comprimirse). Por ejemplo, "text/csv".

Pagos programados

Para crear pagos programados se debe adicional el siguiente campo:

  • dispersionDatetime: Campo que representa la hora y fecha de dispersión con el formato YYYY-MM-DDTHH:mm
info

La fecha de programación del pago debe ser minimo al siguiente día en que se genere la petición, de lo contrario el pago es rechazado.

Pagos recurrentes

Para crear pagos recurrentes debes agregar los siguientes campos:

  • dispersionDatetime: Campo que representa la hora y fecha de dispersión con el formato YYYY-MM-DDTHH:mm
  • interval: Intervalo del pago. Puede ser: biweek, month.
  • months: Meses en número. Puede ser: 3, 6, 12.
  • description: La descripción es opcional.