curl -X POST https://consola.mouvlatam.com/api/transfers/resolve-key \
-H "Authorization: Bearer mvk_..." \
-H "Content-Type: application/json" \
-d '{ "keyValue": "3115551234" }'
const res = await fetch('https://consola.mouvlatam.com/api/transfers/resolve-key', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.MOUV_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ keyValue: '3115551234' }),
});
const { recipient } = await res.json();
console.log(`Pagar a: ${recipient.fullName} (${recipient.idValue}) - ${recipient.bankName}`);
res = requests.post(
'https://consola.mouvlatam.com/api/transfers/resolve-key',
headers={
'Authorization': f'Bearer {os.environ["MOUV_API_KEY"]}',
'Content-Type': 'application/json',
},
json={'keyValue': '3115551234'},
)
recipient = res.json()['recipient']
print(f"Titular: {recipient['fullName']}, doc: {recipient['idValue']}")
{
"found": true,
"anchorHandle": "tel:573115551234@breb",
"keyType": "PHONE",
"keyValue": "3115551234",
"recipient": {
"firstName": "JUAN",
"lastName": "PEREZ",
"fullName": "JUAN PEREZ",
"bankName": "Banco Bancolombia",
"bankAccountType": "Ahorros",
"status": "active",
"idType": "CC",
"idValue": "1018485810"
}
}
{
"found": false,
"error": "No se encontró una cuenta Breb activa para la llave proporcionada"
}
Retiros (Outflows)
POST /transfers/resolve-key
Verificar llave Bre-B contra el directorio del Banco de la República
POST
/
api
/
transfers
/
resolve-key
curl -X POST https://consola.mouvlatam.com/api/transfers/resolve-key \
-H "Authorization: Bearer mvk_..." \
-H "Content-Type: application/json" \
-d '{ "keyValue": "3115551234" }'
const res = await fetch('https://consola.mouvlatam.com/api/transfers/resolve-key', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.MOUV_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ keyValue: '3115551234' }),
});
const { recipient } = await res.json();
console.log(`Pagar a: ${recipient.fullName} (${recipient.idValue}) - ${recipient.bankName}`);
res = requests.post(
'https://consola.mouvlatam.com/api/transfers/resolve-key',
headers={
'Authorization': f'Bearer {os.environ["MOUV_API_KEY"]}',
'Content-Type': 'application/json',
},
json={'keyValue': '3115551234'},
)
recipient = res.json()['recipient']
print(f"Titular: {recipient['fullName']}, doc: {recipient['idValue']}")
{
"found": true,
"anchorHandle": "tel:573115551234@breb",
"keyType": "PHONE",
"keyValue": "3115551234",
"recipient": {
"firstName": "JUAN",
"lastName": "PEREZ",
"fullName": "JUAN PEREZ",
"bankName": "Banco Bancolombia",
"bankAccountType": "Ahorros",
"status": "active",
"idType": "CC",
"idValue": "1018485810"
}
}
{
"found": false,
"error": "No se encontró una cuenta Breb activa para la llave proporcionada"
}
Verifica una llave Bre-B (celular, correo, alias, o cédula) contra el directorio oficial del Banco de la República y retorna el titular registrado.
Scope requerido:
WRITE (expone identidad del titular — no apto para llaves READ)
Body
string
required
La llave a verificar. Aceptamos los 4 formatos Bre-B:
- Celular: 10 dígitos comenzando con
3(ej.3115551234) - Correo: formato email válido (ej.
pagos@empresa.com) - Alias: 3-40 chars alfanuméricos, opcional
@prefix (ej.@empresaxyz) - Documento: cédula CC o NIT, 5-15 dígitos (ej.
900123456)
string
default:"AUTO"
Opcional. Si lo omitís (recomendado), Mouv usa
AUTO y la red Bre-B detecta el tipo automáticamente. Valores válidos: PHONE, EMAIL, ALPHANUM, NRIC, AUTO.Response 200 (llave encontrada y activa)
boolean
truestring
Identificador interno Bre-B (úsalo si quisieras llamar el send directamente con
targetAnchorHandle)string
Tipo real detectado por Bre-B:
PHONE, EMAIL, ALPHANUM, o NRICstring
El valor de la llave (normalizado por Bre-B si aplica)
object
Información del titular (proviene del directorio Bre-B)
Show Schema
Show Schema
string
Nombres del titular (en mayúsculas, Bre-B convention)
string
Apellidos del titular
string
firstName + " " + lastNamestring
Nombre del banco asociado a la llave
string
"Ahorros" o "Corriente"string
"active" (las inactivas retornan 422)string
"CC", "CE", o "NIT"string
Número de documento del titular. Usalo como
targetDocument en /transfers/send (SARLAFT compliance)Response 422 (llave no encontrada o inactiva)
{
"found": false,
"error": "No se encontró una cuenta Breb activa para la llave proporcionada"
}
Ejemplos
curl -X POST https://consola.mouvlatam.com/api/transfers/resolve-key \
-H "Authorization: Bearer mvk_..." \
-H "Content-Type: application/json" \
-d '{ "keyValue": "3115551234" }'
const res = await fetch('https://consola.mouvlatam.com/api/transfers/resolve-key', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.MOUV_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ keyValue: '3115551234' }),
});
const { recipient } = await res.json();
console.log(`Pagar a: ${recipient.fullName} (${recipient.idValue}) - ${recipient.bankName}`);
res = requests.post(
'https://consola.mouvlatam.com/api/transfers/resolve-key',
headers={
'Authorization': f'Bearer {os.environ["MOUV_API_KEY"]}',
'Content-Type': 'application/json',
},
json={'keyValue': '3115551234'},
)
recipient = res.json()['recipient']
print(f"Titular: {recipient['fullName']}, doc: {recipient['idValue']}")
{
"found": true,
"anchorHandle": "tel:573115551234@breb",
"keyType": "PHONE",
"keyValue": "3115551234",
"recipient": {
"firstName": "JUAN",
"lastName": "PEREZ",
"fullName": "JUAN PEREZ",
"bankName": "Banco Bancolombia",
"bankAccountType": "Ahorros",
"status": "active",
"idType": "CC",
"idValue": "1018485810"
}
}
{
"found": false,
"error": "No se encontró una cuenta Breb activa para la llave proporcionada"
}
Notas
- No comprometés fondos: este endpoint es consulta pura, no genera transacciones
- Auto-detect: el
keyTyperetornado proviene de Bre-B oficial — siempre confiable - SARLAFT: el
recipient.idValuees el documento del titular registrado. Persistilo comotargetDocumental enviar - Cache: NO cacheés este response — la llave puede desactivarse en cualquier momento