post
https://payment-backend-sandbox.milio.com.co/api-vdc-payment/v1/validate-payout
Este endpoint permite validar la estructura y consistencia del payload de un payout hacia cuentas bancarias antes de enviar la transacción para su procesamiento.
La validación ayuda a identificar errores de formato, campos obligatorios y reglas básicas, reduciendo rechazos y mejorando la probabilidad de éxito del payout.
Este endpoint no ejecuta el pago; únicamente valida la solicitud conforme a los lineamientos de Visa. Los nombres de campos ISO se utilizan como referencia.
Request
| Sección | Campo | Tipo | Descripción | Obligatoriedad |
|---|---|---|---|---|
| transactionDetail | transactionAmount | number (double) | Monto de la transacción. | Requerido |
| transactionDetail | transactionCurrencyCode | string (3) | Código de moneda de la transacción (ISO-4217) Alpha-3. | Requerido |
| transactionDetail | settlementCurrencyCode | string (3) | Código de moneda de liquidación (ISO-4217) Alpha-3. | Requerido |
| transactionDetail | senderSourceOfFunds | string | Fuente de los fondos del remitente. | Condicional |
| transactionDetail | purposeOfPayment | string | Propósito del pago. | Condicional |
| transactionDetail | senderBeneficiaryRelationship | string | Relación entre el remitente y el beneficiario. | Opcional |
| transactionDetail | payoutSpeed | string | Velocidad de procesamiento del payout. | Opcional |
| transactionDetail | paymentRail | string | Red o riel de pago utilizado para la validación. | Opcional |
| transactionDetail | quoteId | integer | Identificador de la cotización aplicada. | Opcional |
| transactionDetail | statementNarrative | string | Descripción que se mostraría en el estado de cuenta. | Condicional |
| transactionDetail | isSamePerson | boolean | Indica si el remitente y el beneficiario corresponden a la misma persona. Por defecto es false | Requerido |
| senderDetail | type | string | Tipo de remitente, “I” para Individual y “C” para Empresa. Por defecto es 'I' | Requerido |
| senderDetail | firstName | string [1..35] | Nombre(s) del remitente. | Condicional |
| senderDetail | lastName | string [1..35] | Apellido(s) del remitente. | Condicional |
| senderDetail | fullName | string [1..70] | Nombre completo del remitente. | Condicional |
| senderDetail | dateOfBirth | string (YYYY-MM-DD) | Fecha de nacimiento del remitente. | Condicional |
| senderDetail | cityOfBirth | string [1..35] | Ciudad de nacimiento del remitente. | Opcional |
| senderDetail | countryOfBirth | string (3) | País de nacimiento del remitente (ISO-3166). | Condicional |
| senderDetail | identificationType | string | Tipo de identificación del remitente. | Condicional |
| senderDetail | identificationNumber | string [1..35] | Número de identificación del remitente. | Condicional |
| senderDetail | identificationIssuingCountry | string (3) | País emisor del documento de identificación. | Condicional |
| senderDetail | contactEmail | string [1..210] | Correo electrónico del remitente. | Opcional |
| senderDetail | contactNumber | string [1..16] | Número de contacto del remitente. | Opcional |
| senderDetail | contactNumberType | string | Tipo de número de contacto del remitente. | Opcional |
| senderDetail | address.addressLine1 | string [1..50] | Dirección principal del remitente. | Condicional |
| senderDetail | address.addressLine2 | string [1..50] | Línea adicional de la dirección del remitente. | Opcional |
| senderDetail | address.city | string [1..35] | Ciudad de residencia del remitente. | Condicional |
| senderDetail | address.state | string [1..25] | Estado o provincia de residencia del remitente. | Opcional |
| senderDetail | address.postalCode | string [1..16] | Código postal del remitente. | Opcional |
| senderDetail | address.country | string (3) | País de residencia del remitente (ISO-3166). | Condicional |
| senderDetail | additionalData[].name | string [1..35] | Nombre del campo adicional del remitente. | Opcional |
| senderDetail | additionalData[].value | string [1..100] | Valor del campo adicional del remitente. | Opcional |
| recipientDetail | type | string | Tipo de beneficiario, “I” para Individual y “C” para Empresa. Por defecto es 'I' | Requerido |
| recipientDetail | firstName | string [1..35] | Nombre(s) del beneficiario. | Condicional |
| recipientDetail | lastName | string [1..35] | Apellido(s) del beneficiario. | Condicional |
| recipientDetail | fullName | string [1..70] | Nombre completo del beneficiario. | Condicional |
| recipientDetail | dateOfBirth | string (YYYY-MM-DD) | Fecha de nacimiento del beneficiario. | Condicional |
| recipientDetail | cityOfBirth | string [1..35] | Ciudad de nacimiento del beneficiario. | Opcional |
| recipientDetail | countryOfBirth | string (3) | País de nacimiento del beneficiario (ISO-3166). | Condicional |
| recipientDetail | identificationType | string | Tipo de identificación del beneficiario. | Condicional |
| recipientDetail | identificationNumber | string [1..35] | Número de identificación del beneficiario. | Condicional |
| recipientDetail | identificationIssuingCountry | string (3) | País emisor del documento de identificación. | Condicional |
| recipientDetail | contactEmail | string [1..210] | Correo electrónico de contacto del beneficiario. | Opcional |
| recipientDetail | contactNumber | string [1..16] | Número de contacto del beneficiario. | Opcional |
| recipientDetail | contactNumberType | string | Tipo de número de contacto del beneficiario. | Opcional |
| recipientDetail | address.addressLine1 | string [1..50] | Dirección principal del beneficiario. | Condicional |
| recipientDetail | address.addressLine2 | string [1..50] | Línea adicional de la dirección del beneficiario. | Opcional |
| recipientDetail | address.city | string [1..35] | Ciudad de residencia del beneficiario. | Condicional |
| recipientDetail | address.state | string [1..25] | Estado o provincia de residencia del beneficiario. | Condicional |
| recipientDetail | address.postalCode | string [1..16] | Código postal de la dirección del beneficiario. | Condicional |
| recipientDetail | address.country | string (3) | País de residencia del beneficiario (ISO-3166). | Condicional |
| recipientDetail | additionalData[].name | string [1..35] | Nombre del campo adicional del beneficiario. | Opcional |
| recipientDetail | additionalData[].value | string [1..100] | Valor del campo adicional del beneficiario. | Opcional |
| recipientDetail | bank.countryCode | string (3) | Código de país del banco del beneficiario (ISO-3166). | Condicional |
| recipientDetail | bank.currencyCode | string (3) | Código de moneda de la cuenta del beneficiario (ISO-4217). | Condicional |
| recipientDetail | bank.bankCode | string [1..12] | Código identificador del banco del beneficiario. | Condicional |
| recipientDetail | bank.bankCodeType | string | Tipo de código bancario utilizado. | Condicional |
| recipientDetail | bank.bankName | string [1..50] | Nombre del banco del beneficiario. | Opcional |
| recipientDetail | bank.BIC | string [8..11] | Código BIC/SWIFT del banco del beneficiario. | Condicional |
| recipientDetail | bank.branchCode | string [1..12] | Código de sucursal bancaria del beneficiario. | Opcional |
| recipientDetail | bank.accountName | string [1..70] | Nombre del titular de la cuenta bancaria del beneficiario. | Condicional |
| recipientDetail | bank.accountNumber | string [1..254] | Número de cuenta bancaria del beneficiario. | Condicional |
| recipientDetail | bank.accountNumberType | string | Tipo de número de cuenta del beneficiario. | Condicional |
| recipientDetail | bank.accountType | string | Tipo de cuenta bancaria del beneficiario. | Condicional |
Ejemplos
Usuario nuevo
{
"transactionDetail": {
"transactionAmount": 1551,
"transactionCurrencyCode": "COP",
"settlementCurrencyCode": "COP"
},
"senderDetail": {
"type": "I",
"senderReferenceNumber": "4304630005267011",
"firstName": "Saha",
"lastName": "Russel",
"contactEmail": "[email protected]",
"address": {
"addressLine1": "1600 Pennsylvania Ave",
"city": "Manchester",
"country": "COL"
},
"identificationList": [
{
"typeDocumentId": 6,
"idNumber": "119338474",
"idIssueCountry": "COL"
}
]
},
"recipientDetail": {
"type": "I",
"firstName": "Anand",
"lastName": "Bharath",
"contactNumberType": "MOBILE",
"contactNumber": "+123456789",
"contactEmail": "[email protected]",
"bank": {
"accountName": "Money Market",
"accountNumber": "6970093",
"accountNumberType": "DEFAULT",
"countryCode": "COL",
"currencyCode": "COP"
},
"identificationList": [
{
"typeDocumentId": 6,
"idNumber": "12933443",
"idIssueCountry": "COL"
}
]
}
}
Tercero y credencial existente
{
"transactionDetail": {
"transactionAmount": 1551,
"transactionCurrencyCode": "GBP",
"senderSourceOfFunds": "01",
"settlementCurrencyCode": "GBP"
},
"recipientUuid": "c05909ee-9910-4dcb-91eb-b066675b866c",
"recipientDetail": {
"type": "I",
"paymentMethodUUID": "378908e7-2845-44ee-8b88-99a6da3178b1"
},
"senderUuid": "bbce86b8-6247-41bf-89f2-1542d7086253",
"senderDetail": {
"type": "I"
}
}
Tercero existente y credencial nueva
{
"transactionDetail": {
"transactionAmount": 1551,
"transactionCurrencyCode": "GBP",
"senderSourceOfFunds": "01",
"settlementCurrencyCode": "GBP"
},
"recipientUuid": "c05909ee-9910-4dcb-91eb-b066675b866c",
"recipientDetail": {
"type": "I",
"bank": {
"accountName": "Money Market",
"accountNumber": "6970093",
"accountNumberType": "DEFAULT",
"countryCode": "GBR",
"currencyCode": "GBP"
}
},
"senderUuid": "bbce86b8-6247-41bf-89f2-1542d7086253",
"senderDetail": {
"type": "I"
}
}
