curl --request PATCH \
--url https://api.revem.ai/contacts/public/v1/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "+56998765432"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone_number: '+56998765432'})
};
fetch('https://api.revem.ai/contacts/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/contacts/public/v1/{id}"
payload = { "phone_number": "+56998765432" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"warnings": []
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Actualizar un contacto por id
Actualiza un contacto identificado por el id que Revem devolvió, así que aquí phone_number es un campo más y cambiarlo mantiene el mismo contacto. Es la ruta para clientes cuyos números cambian: el upsert por teléfono los partiría en dos contactos.
Mismas reglas que el upsert para lo demás: clave ausente no toca la columna, atributos personalizados por nombre, warnings por un email ya usado. La respuesta no incluye el contacto actualizado; léelo con GET /contacts/public/v1/{id} si lo necesitas.
curl --request PATCH \
--url https://api.revem.ai/contacts/public/v1/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"phone_number": "+56998765432"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({phone_number: '+56998765432'})
};
fetch('https://api.revem.ai/contacts/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/contacts/public/v1/{id}"
payload = { "phone_number": "+56998765432" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"warnings": []
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Authorizations
La API key de tu organización, con la forma rvm_<prefijo>.<secreto>, enviada como Authorization: Bearer rvm_…. Revem la emite y sólo se muestra una vez; si la pierdes se reemplaza, no se recupera.
Path Parameters
Id del contacto en Revem.
Body
Todos los campos son opcionales; una clave ausente deja la columna como está. Cualquier otra clave del cuerpo se interpreta como un atributo personalizado del contacto, identificado por su nombre tal como está definido en Revem. Un nombre que no existe responde 422; se aceptan hasta 100 atributos por solicitud.
Teléfono del contacto. Se recomienda formato E.164 (+56912345678); otras grafías se normalizan al guardar. Aquí es un campo más: cambiarlo mantiene el mismo contacto. Si el número ya pertenece a otro contacto la solicitud responde 409. No puede vaciarse.
1Nombre. Si se omite, el valor guardado no cambia.
Apellido. Si se omite, el valor guardado no cambia.
Si otro contacto del mismo tenant ya tiene este email, se conserva el resto de la solicitud y se informa en warnings.
