curl --request POST \
--url https://hg.cash/api/v1/co/transactions/outbound \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "YOUR_ACCOUNT_UUID",
"amount": "50000.00",
"accountType": "cc",
"bankCode": "1001",
"accountNumber": "0000000001",
"beneficiaryFullName": "Ana Ejemplo",
"documentType": "cc",
"documentNumber": "1000000000"
}
'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing"
}Criar transação de saída (Colômbia)
Cria um payout em COP a partir de uma conta COP operativa.
Omita destinationType ou envie bank para Fast Pay / ACH.
Envie breb_key ou breb_qr para Bre-B.
O sucesso é 201 com id e status: processing.
O valor mais a taxa de saída precisa caber no saldo líquido, ou a API retorna 409 com code: INSUFFICIENT_NET_BALANCE.
Uma conta que não é COP retorna 400.
Bloqueada ou Cerrada retorna 403 com code: ACCOUNT_NOT_OPERATIVE.
Restringida retorna 403 com code: RESTRICTED.
502 retorna error, code: CO_OUTBOUND_PROVIDER_CREATE_FAILED e type: provider_error. O corpo não inclui id. A string pública de error é Unable to complete this payout with the payment provider. Se a conta não puder iniciar o payout, ou o destino não puder ser registrado, a transação fica cancelled. Se o payout foi enviado e o resultado não foi confirmado, a transação permanece processing.
Um valor de QR que não coincide (code: BREB_QR_AMOUNT_MISMATCH) deixa uma linha de transação cancelled e não retorna id.
curl --request POST \
--url https://hg.cash/api/v1/co/transactions/outbound \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accountId": "YOUR_ACCOUNT_UUID",
"amount": "50000.00",
"accountType": "cc",
"bankCode": "1001",
"accountNumber": "0000000001",
"beneficiaryFullName": "Ana Ejemplo",
"documentType": "cc",
"documentNumber": "1000000000"
}
'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing"
}Autorizações
Token de autenticação da API do usuário com o formato cash_<64-char-hex>. Valor de exemplo cash_16cdc3b6f83c72d9d2680adca4f430962981f6bf32613a129dded0aa060387d2.
Corpo
Payout de saída em COP. Omita destinationType ou envie bank para Fast Pay / ACH.
Banco exige accountType, bankCode, accountNumber (máx. 20), beneficiaryFullName, documentType e documentNumber.
O banco precisa aceitar Fast Pay ou ACH e o tipo de conta escolhido.
breb_key exige keyValue, beneficiaryFullName, documentType e documentNumber. Não envie campos bancários.
breb_qr exige qrValue (EMV ou base64). O nome do beneficiário é opcional.
Envie documentType e documentNumber juntos, ou omita os dois. Enviar só um retorna 400.
Se o QR tiver um valor fixo, amount precisa coincidir ou a API retorna 400 com code: BREB_QR_AMOUNT_MISMATCH.
"YOUR_ACCOUNT_UUID"
Valor positivo. Uma string aceita no máximo 2 casas decimais. Mais de 2 casas decimais retorna 400 com details do campo amount (Invalid amount format).
Um número JSON com mais de 2 casas decimais é truncado em direção a zero para 2 casas decimais (1.239 vira 1.23).
Se o valor truncado não for maior que zero, a API retorna 400 com error: "Validation failed" e details do campo amount.
x > 0O padrão é bank quando omitido
bank, breb_key, breb_qr Obrigatório para banco. cc corrente, ch poupança, dp depósito eletrônico.
cc, ch, dp Obrigatório para banco. Código de 4 dígitos de GET /co/banks.
^\d{4}$Obrigatório para banco
20Obrigatório para banco e chave Bre-B. Opcional para QR Bre-B.
cc cédula de cidadania, nit NIT, ce cédula de estrangeiro, pa passaporte, ppt PPT,
ti carteira de identidade, rc registro civil, te carteira de estrangeiro,
die documento de identificação estrangeiro, nd sem documento (Nequi).
A maioria dos números é somente dígitos. Passaporte (pa) e PPT (ppt) são alfanuméricos.
nd é só bancário e só para o código de banco 1507. documentNumber deve ser ND e phone (E.164) é obrigatório.
nd é rejeitado no Bre-B.
cc, nit, ce, pa, ppt, ti, rc, te, die, nd Obrigatório para breb_key
Obrigatório para breb_qr. Payload EMV ou base64.
Telefone E.164 opcional. Obrigatório quando documentType é nd.
"+570000000000"
"payer@example.com"
40
