Ir al contenido

Pagos con remitente (RaaS)

POST

/b2b/transactions/raas/payments

Procesa una transacción B2B que puede incluir los datos del remitente (cliente final) en cuyo nombre se realiza el envío. Base de producción: https://api.global66.com/business-api.

Resumen y acceso restringido

Procesa una transacción B2B a partir del payload enviado. Funciona igual que el endpoint estándar de pagos (POST /b2b/transactions/payments), con una diferencia: el payload puede incluir un bloque opcional remitter con los datos del remitente (cliente final) en cuyo nombre se realiza el envío. Cuando lo envías, el remitente figura como la identidad que envía la remesa, en lugar de tu empresa.

  • El bloque remitter es opcional. Sin él, la petición se comporta exactamente como el endpoint estándar de pagos, que está documentado en Esquemas y ejemplos.
  • El bloque remitter solo se admite en transacciones REMITTANCE con paymentType WIRE_TRANSFER y hacia los corredores listados en Corredores disponibles. En cualquier otro caso la petición se rechaza con 400.
  • El endpoint también acepta transacciones P2P y EXCHANGE (sin remitter), con el mismo contrato del endpoint estándar de pagos. Esta guía se centra en REMITTANCE.

La petición es multipart/form-data con dos partes:

CampoTipoReq.Descripción
request
JSON (application/json)
req
Payload de la transacción (ver Body, parte request).
voucher
archivo
opt
Comprobante de la transacción. Extensiones permitidas: PDF, JPG, JPEG, PNG.

Si el payload es válido, la respuesta devuelve el identificador de la transacción con estado PROCESSING. Si no lo es, devuelve la lista de errores de validación en violations.

Autenticación

Envía tu token de acceso en el header Authorization, tal cual, sin el prefijo Bearer (Authorization: <token>). Se asume que ya cuentas con un token válido; si todavía no lo tienes, revisa Autenticación.

El identificador de tu empresa se resuelve a partir del token; no envías ningún identificador de cliente en la petición.

Parámetros

Headers

CampoTipoReq.Descripción
Authorization
string
req
Token de acceso, tal cual (sin Bearer).
Content-Type
string
req
multipart/form-data (curl lo agrega automáticamente al usar --form).

Body (parte request)

CampoTipoReq.Descripción
externalReferenceId
string
req
Identificador de referencia único que asignas a la transacción. No puede venir vacío. ej: order-2026-001
transactionType
string (enum)
req
Tipo de transacción. Valores: REMITTANCE, P2P, EXCHANGE. Para enviar remitter debe ser REMITTANCE.
originCurrency
string
req
Código de moneda de origen (3 a 5 caracteres). ej: COP
amount
decimal
req
Monto de la transacción en la moneda de origen. Debe ser mayor que 0. ej: 3000000
way
string (enum)
req
Dirección del cálculo. ORIGIN se aplica al monto enviado; DESTINY se aplica al monto recibido.
description
string
opt
Descripción de la transacción. ej: Pago a proveedor abril 2026
paymentType
string (enum)
req
Riel de pago. Valores: WIRE_TRANSFER, SWIFT, BREB. Para enviar remitter debe ser WIRE_TRANSFER.
purposeCode
array<purposeCode>
req
Lista de propósitos de la transacción. Mínimo un elemento (ver purposeCode).
beneficiary
object
req
Datos del beneficiario. El campo operationType determina su formato (ver las tablas de beneficiario más abajo).
remitter
object (remitter)
opt
Datos del remitente (cliente final) en cuyo nombre se realiza el envío (ver remitter).

purposeCode

CampoTipoReq.Descripción
purposeCode
int
req
Identificador del propósito de la transacción. Debe ser un propósito disponible para tu empresa. ej: 1
amount
decimal
opt
Monto del propósito en la moneda de origen. ej: 100.00

remitter

Datos del remitente (cliente final) en cuyo nombre se realiza el envío.

CampoTipoReq.Descripción
countryCode
string
opt
País del remitente. Si lo omites, se usa el país de tu empresa. Restricciones: exactamente 2 letras mayúsculas (ISO 3166-1 alpha-2). ej: CO
name
string
req
Nombre completo o razón social del remitente. Restricciones: máximo 255 caracteres. ej: Comercial Andina SAS
accountType
string
opt
Tipo de cuenta del remitente. Restricciones: máximo 50 caracteres. ej: Individual
address
string
opt
Dirección del remitente. Restricciones: máximo 255 caracteres. ej: Calle 93 # 11-26
city
string
opt
Ciudad del remitente. Restricciones: máximo 100 caracteres. ej: Bogota
contactNumber
string
opt
Teléfono de contacto, incluyendo el código de país. Restricciones: máximo 50 caracteres. ej: +573001234567
identificationNumber
string
req
Número de documento del remitente. Ver reglas por país abajo. Restricciones: máximo 50 caracteres. ej: 9001234567
identificationType
string
req
Tipo de documento del remitente. Restricciones: máximo 50 caracteres. ej: NIT
email
string
opt
Correo del remitente. Restricciones: formato de email válido, máximo 100 caracteres. ej: remitter@partner.com

Reglas de validación del remitente

  • name, identificationNumber e identificationType son obligatorios y no pueden venir vacíos.
  • Las reglas por país se aplican según el país del remitente (countryCode, o el país de tu empresa si lo omites):
    • Remitente colombiano (CO):
      • identificationNumber debe ser numérico, de 1 a 10 dígitos. Si no, 400 REMITTER_IDENTIFICATION_INVALID.
      • name admite letras, dígitos, espacios y los caracteres . , ; : - * / & # $ % =. Los acentos se eliminan y los demás caracteres se reemplazan por espacios. Si tras esa limpieza el nombre queda vacío, la petición se rechaza con 400 REMITTER_NAME_INVALID.
    • Remitente chileno (CL): identificationNumber debe ser un RUT válido (con o sin puntos y guion, dígito verificador 0-9 o K). Si no, 400 REMITTER_RUT_INVALID.
  • Un mismo remitente (mismo identificationType e identificationNumber) no puede volver a enviarse con un país distinto al que se registró la primera vez. Si ocurre, 400 REMITTER_COUNTRY_CONFLICT.

Beneficiario por tipo de operación

beneficiary (operationType = BANK_TRANSFER)

Transferencia bancaria local a una cuenta en el país de destino.

CampoTipoReq.Descripción
operationType
string (enum)
req
BANK_TRANSFER.
destinationCurrency
string
req
Moneda de destino (3 a 5 caracteres). ej: COP
beneficiaryName
string
req
Nombre del beneficiario. ej: Juan
beneficiaryLastName
string
opt
Apellido del beneficiario. ej: Perez
typeBeneficiary
string (enum)
req
INDIVIDUAL (persona) o COMPANY (empresa).
email
string
opt
Correo del beneficiario. Formato válido, máximo 100 caracteres.
countryCode
string
req
País del banco de destino, 2 letras mayúsculas (ISO 3166-1 alpha-2). ej: CO
accountType
string (enum)
req
Tipo de cuenta. Valores según país: CL → SAVING, CHECKING, VISTA, RUT (billeteras digitales como Mercado Pago, Tenpo o prepago usan VISTA); CO → SAVING, CHECKING, ELECTRONIC; resto de países → SAVING, ELECTRONIC, CHECKING, NOT_APPLY.
bankId
int
opt
Identificador del banco de destino dentro de los bancos disponibles. ej: 1
accountNumber
string
req
Número de cuenta del beneficiario. ej: 1234567890123456
branchCode
string
opt
Código de sucursal (agência). Requerido para Brasil. Máximo 20 caracteres.
residenceCity
string
opt
Ciudad de residencia. Requerido para Venezuela, Brasil y Uruguay. Máximo 100 caracteres.
state
string
opt
Estado o provincia de residencia. Requerido para Venezuela, Brasil y Uruguay. Máximo 100 caracteres.
postalCode
string
opt
Código postal. Requerido para Venezuela, Brasil y Uruguay. Máximo 20 caracteres.
address
string
opt
Dirección de residencia. Requerido para Venezuela, Brasil y Uruguay. Máximo 200 caracteres.
documentNumber
string
req
Número de documento del beneficiario. Máximo 30 caracteres. ej: 232323234
documentType
string
req
Tipo de documento del beneficiario (p. ej. RUT, DNI, PASSPORT). Máximo 20 caracteres.

beneficiary (operationType = BANK_ROUTING)

Transferencia bancaria local que requiere código de ruteo más número de cuenta.

CampoTipoReq.Descripción
operationType
string (enum)
req
BANK_ROUTING.
destinationCurrency
string
req
Moneda de destino (3 a 5 caracteres). ej: USD
beneficiaryName
string
req
Nombre del beneficiario.
beneficiaryLastName
string
opt
Apellido del beneficiario.
typeBeneficiary
string (enum)
req
INDIVIDUAL o COMPANY.
email
string
opt
Correo del beneficiario. Formato válido, máximo 100 caracteres.
countryCode
string
req
País del banco de destino, 2 letras mayúsculas. ej: US
routingCode
string (enum)
req
Tipo de código de ruteo. Valores: ACH, SORT, BSB, IFSC, TRANSIT, AGENCIA.
routingValue
string
req
Valor de ruteo según routingCode: ACH = 9 dígitos, SORT = 6 dígitos, BSB = 6 dígitos, IFSC = 11 caracteres (^[A-Z]{4}0[A-Z0-9]{6}$), TRANSIT = 5 dígitos, AGENCIA = 4 dígitos. ej: 021000021
accountNumber
string
req
Número de cuenta del beneficiario.
accountType
string (enum)
opt
Tipo de cuenta. ej: CHECKING
bankId
int
opt
Identificador del banco de destino.
documentNumber
string
req
Número de documento del beneficiario. Máximo 30 caracteres.
documentType
string
req
Tipo de documento del beneficiario. Máximo 20 caracteres.

beneficiary (operationType = IBAN)

Transferencia bancaria vía IBAN.

CampoTipoReq.Descripción
operationType
string (enum)
req
IBAN.
destinationCurrency
string
req
Moneda de destino (3 a 5 caracteres). ej: EUR
beneficiaryName
string
req
Nombre del beneficiario.
beneficiaryLastName
string
opt
Apellido del beneficiario.
typeBeneficiary
string (enum)
req
INDIVIDUAL o COMPANY.
email
string
opt
Correo del beneficiario. Formato válido, máximo 100 caracteres.
countryCode
string
req
País del banco de destino, exactamente 2 caracteres. ej: ES
iban
string
req
IBAN del beneficiario. Máximo 34 caracteres, formato ^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$. ej: ES9121000418450200051332
documentNumber
string
req
Número de documento del beneficiario. Máximo 30 caracteres.

beneficiary (operationType = PIX)

Transferencia PIX en Brasil.

CampoTipoReq.Descripción
operationType
string (enum)
req
PIX.
destinationCurrency
string
req
Moneda de destino. ej: BRL
beneficiaryName
string
req
Nombre del beneficiario.
beneficiaryLastName
string
opt
Apellido del beneficiario.
typeBeneficiary
string (enum)
req
INDIVIDUAL o COMPANY.
email
string
opt
Correo del beneficiario. Formato válido, máximo 100 caracteres.
countryCode
string
req
País de destino, exactamente 2 caracteres. Para PIX debe ser BR.
pixKeyType
string (enum)
req
Tipo de clave PIX. Valores: EVP, DOCUMENT_NUMBER, EMAIL, PHONE.
pixKeyValue
string
req
Valor de la clave PIX. Máximo 77 caracteres. ej: joao.silva@email.com
documentNumber
string
req
Número de documento del beneficiario. Máximo 30 caracteres.
documentType
string (enum)
req
Tipo de documento. Valores: CPF, CNPJ.

Los tipos SWIFT, STABLECOINS y BREB también existen en el endpoint, pero no admiten el bloque remitter; se documentan en la guía del endpoint estándar de pagos, Esquemas y ejemplos.

Corredores disponibles

El bloque remitter solo se admite en los corredores de esta sección. Fuera de ellos, la petición se rechaza con 400 REMITTER_NOT_SUPPORTED_FOR_CORRIDOR. El corredor se determina por el país (beneficiary.countryCode), la moneda de destino (beneficiary.destinationCurrency) y el tipo de operación (beneficiary.operationType).

Reglas generales

  • transactionType debe ser REMITTANCE. Con P2P o EXCHANGE, enviar remitter devuelve 400 REMITTER_NOT_SUPPORTED_FOR_PAYMENT_TYPE.
  • paymentType debe ser WIRE_TRANSFER.
  • SWIFT, STABLECOINS y BREB (Bre-B) no se admiten con remitter.
  • El bloque remitter es opcional: sin él, la petición se comporta como el endpoint estándar de pagos y estas restricciones no aplican.

En cada tabla, la primera columna es el país, la segunda la moneda de destino y la tercera los tipos de operación permitidos.

Colombia y Chile

CampoTipoDescripción
Colombia (CO)
COP
BANK_TRANSFER. No disponible para cuentas destino en Bancolombia ni Nequi
Chile (CL)
CLP
BANK_TRANSFER. Requiere originCurrency CLP y un remitente chileno (CL) con RUT válido

Solo BANK_TRANSFER

CampoTipoDescripción
Bolivia (BO)
BOB
BANK_TRANSFER
Filipinas (PH)
PHP
BANK_TRANSFER
Guatemala (GT)
GTQ
BANK_TRANSFER
Marruecos (MA)
MAD
BANK_TRANSFER
Paraguay (PY)
PYG
BANK_TRANSFER
Perú (PE)
PEN
BANK_TRANSFER
República Dominicana (DO)
DOP
BANK_TRANSFER
Tailandia (TH)
THB
BANK_TRANSFER
Uruguay (UY)
UYU
BANK_TRANSFER
Venezuela (VE)
VES
BANK_TRANSFER

BANK_TRANSFER, IBAN o BANK_ROUTING

CampoTipoDescripción
Alemania (DE)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Australia (AU)
AUD
BANK_TRANSFER, IBAN, BANK_ROUTING
Austria (AT)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Bélgica (BE)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Bulgaria (BG)
BGN
BANK_TRANSFER, IBAN, BANK_ROUTING
China (CN)
CNY
BANK_TRANSFER, IBAN, BANK_ROUTING
Chipre (CY)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Ciudad del Vaticano (VA)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Croacia (HR)
HRK
BANK_TRANSFER, IBAN, BANK_ROUTING
Dinamarca (DK)
DKK
BANK_TRANSFER, IBAN, BANK_ROUTING
Eslovaquia (SK)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Eslovenia (SI)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
España (ES)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Estados Unidos (US)
USD
BANK_TRANSFER, IBAN, BANK_ROUTING
Finlandia (FI)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Francia (FR)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Grecia (GR)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Hungría (HU)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
India (IN)
INR
BANK_TRANSFER, IBAN, BANK_ROUTING
Irlanda (IE)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Islandia (IS)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Italia (IT)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Letonia (LV)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Liechtenstein (LI)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Lituania (LT)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Luxemburgo (LU)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Malasia (MY)
MYR
BANK_TRANSFER, IBAN, BANK_ROUTING
Malta (MT)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Mónaco (MC)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Montenegro (ME)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Nepal (NP)
NPR
BANK_TRANSFER, IBAN, BANK_ROUTING
Noruega (NO)
NOK
BANK_TRANSFER, IBAN, BANK_ROUTING
Países Bajos (NL)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Polonia (PL)
PLN
BANK_TRANSFER, IBAN, BANK_ROUTING
Portugal (PT)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Puerto Rico (PR)
USD
BANK_TRANSFER, IBAN, BANK_ROUTING
Reino Unido (GB)
EUR, GBP
BANK_TRANSFER, IBAN, BANK_ROUTING
República Checa (CZ)
CZK
BANK_TRANSFER, IBAN, BANK_ROUTING
Rumania (RO)
RON
BANK_TRANSFER, IBAN, BANK_ROUTING
San Marino (SM)
EUR
BANK_TRANSFER, IBAN, BANK_ROUTING
Singapur (SG)
SGD
BANK_TRANSFER, IBAN, BANK_ROUTING
Sri Lanka (LK)
LKR
BANK_TRANSFER, IBAN, BANK_ROUTING
Suecia (SE)
SEK
BANK_TRANSFER, IBAN, BANK_ROUTING
Vietnam (VN)
VND
BANK_TRANSFER, IBAN, BANK_ROUTING

Solo PIX

CampoTipoDescripción
Brasil (BR)
BRL
PIX

Ejemplo de body y de petición

Ejemplo de body (Colombia, COP, BANK_TRANSFER con remitente)

Copiar código

Ejemplo de petición

Guarda el body en payload.json y envíalo como la parte request. La parte voucher es opcional.

Copiar código

El token va directo en Authorization, sin Bearer. Si no adjuntas comprobante, omite la línea --form 'voucher=...'.

Respuesta 200

Copiar código

Campos (respuesta)

CampoTipoDescripción
valid
boolean
Indica si el payload superó todas las validaciones.
status
string (enum)
Estado de la petición. PROCESSING cuando el payload es aceptado; FAILED cuando es rechazado.
transactionId
int
Identificador de la transacción. Presente solo cuando se generó una transacción.
externalReferenceId
string
Identificador de referencia que enviaste.
violations
array<violación>
Lista de errores. Vacía cuando valid es true.

Campos (violación)

CampoTipoDescripción
source
string (enum)
Sección de la petición donde ocurrió el error (p. ej. REQUEST, BENEFICIARY, VOUCHER, CREDENTIAL).
field
string
Campo que no superó la validación (p. ej. amount, remitter.identificationNumber).
rule
string
Código de la regla incumplida (p. ej. NOT_NULL, NOT_BLANK, SIZE, PATTERN, REMITTER_RUT_INVALID).
severity
string (enum)
Severidad del error. Valores: ERROR, WARNING, INFO.
message
string
Descripción legible del error.

Los campos con valor nulo se omiten del JSON.

Errores

Cuerpo de error (misma estructura que la respuesta 200, con valid: false y status: FAILED):

Copiar código
CampoTipoDescripción
400
NOT_NULL, NOT_BLANK, SIZE, PATTERN, POSITIVE, EMAIL, VALID_ENUM, …
Algún campo del body no cumple sus restricciones (campo obligatorio ausente, longitud, formato, valor de enum inválido). field indica el campo.
400
MALFORMED_REQUEST
El JSON de la parte request es inválido o ilegible, o falta la parte request.
400
REMITTER_NOT_SUPPORTED_FOR_PAYMENT_TYPE
Se envió remitter con transactionType distinto de REMITTANCE.
400
REMITTER_NOT_SUPPORTED_FOR_CORRIDOR
Se envió remitter para un corredor, tipo de operación o paymentType no admitido (ver Corredores disponibles).
400
REMITTER_IDENTIFICATION_INVALID
Remitente colombiano con identificationNumber no numérico o de más de 10 dígitos.
400
REMITTER_RUT_INVALID
Remitente chileno con identificationNumber que no es un RUT válido.
400
REMITTER_NAME_INVALID
Remitente colombiano cuyo name queda vacío tras eliminar los caracteres no permitidos.
400
REMITTER_COUNTRY_CONFLICT
El remitente (mismo tipo y número de documento) ya fue registrado con otro país.
400
PURPOSE_NOT_FOUND
Algún purposeCode no corresponde a un propósito disponible para tu empresa.
400
BENEFICIARY_BANKING_INVALID
Los datos bancarios del beneficiario fueron rechazados.
400
COUNTRY_DISABLED_FOR_REMITTANCE
El país del beneficiario no está habilitado para remesas.
400
INVALID_VOUCHER_EXTENSION
El comprobante tiene una extensión no permitida (se aceptan PDF, JPG, JPEG, PNG).
401
—
Token ausente, inválido o expirado.
403
—
Tu empresa no está habilitada para usar este endpoint. Contacta a tu ejecutivo de cuenta en Global66.
403
KYC_BLOCKED
La verificación de la empresa o del usuario no está aprobada.
409
IDEMPOTENCY_DUPLICATE
Ya se envió previamente una petición con exactamente el mismo payload.
409
DUPLICATE_EXTERNAL_REFERENCE
Ya existe una transacción de tu empresa con el mismo externalReferenceId.
422
TRANSACTION_NOT_PROCESSABLE
La transacción no pudo ser procesada.
502
BALANCE_VALIDATION_FAILED
El saldo de la cuenta es insuficiente para la transacción.
502
COMPANY_ENRICHMENT_FAILED, ACCOUNT_ENRICHMENT_FAILED, QUOTE_ENRICHMENT_FAILED
No se pudo obtener la información de la empresa, de sus cuentas o generar la cotización de la transacción.
502
VOUCHER_UPLOAD_FAILED
No se pudo cargar el comprobante al procesar la transacción.
503
DEPENDENCY_UNAVAILABLE
Un servicio necesario para procesar la transacción no está disponible temporalmente. Reintenta más tarde.
500
INTERNAL_ERROR
Error inesperado al procesar la transacción. Contacta al soporte de Global66.

Para saber qué errores reintentar y cuáles no, revisa Errores y reintentos.

Siguientes pasos