Retrieve the WhatsApp Records of a Process
GET /whatsapp/records
This service returns the full WhatsApp conversation history of an Auco process: the messages the Auco bot sent to the participant, the participant's replies, and the delivery statuses reported by WhatsApp.
The response is a flat array in ascending chronological order, with no pagination and no filters. If the process had no WhatsApp activity, the array comes back empty ([]).
This page documents how to query the message history, not how to configure WhatsApp as a signing or notification channel. To enable the WhatsApp signing flow (options.whatsapp, options.both, options.flow), see Identity Validations.
Authentication
Include your public key in the Authorization header.
Authorization: puk_xxx...
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
code | String | Required | Process code. Minimum 9 characters. Its length determines the type of process being queried. |
userId | String | Conditional | Identifier of the participant within the process. Required for signing processes and not allowed for AucoFace. |
There is no way to retrieve a complete multi-signer process in a single call: you must query participant by participant and merge the results in your integration.
🧩 Supported process types
The length of code determines which type of process Auco queries and whether userId is required.
| Length | Process type | userId | Where to get the identifiers |
|---|---|---|---|
| 9 | Contract | required | code and signProfile[].id from GET /document |
| 10 | Document | required | code and signProfile[].id from GET /document |
| 16 | Identity validation (AucoFace) | not allowed | code from GET /veriface |
| 24 | Document package | required | the package id and signers[].userId |
AucoFace processes have a single participant, which is why they do not take a userId.
🧪 Usage Examples
You can copy any of the examples depending on your preferred language.
🔹 Signing process (code and userId)
- curl
- Python
- Node.js
curl --location 'https://api.auco.ai/v1.5/ext/whatsapp/records?code=CODEDOCUM&userId=01' \
--header 'Authorization: puk_yourPublicKey'
import requests
response = requests.get(
"https://api.auco.ai/v1.5/ext/whatsapp/records",
headers={"Authorization": "puk_yourPublicKey"},
params={"code": "CODEDOCUM", "userId": "01"}
)
print(response.json())
const axios = require('axios');
axios
.get('https://api.auco.ai/v1.5/ext/whatsapp/records', {
headers: { Authorization: 'puk_yourPublicKey' },
params: { code: 'CODEDOCUM', userId: '01' },
})
.then((response) => console.log(response.data));
🔸 AucoFace process (code only)
- curl
- Python
- Node.js
curl --location 'https://api.auco.ai/v1.5/ext/whatsapp/records?code=VERIFACECODE1234' \
--header 'Authorization: puk_yourPublicKey'
import requests
response = requests.get(
"https://api.auco.ai/v1.5/ext/whatsapp/records",
headers={"Authorization": "puk_yourPublicKey"},
params={"code": "VERIFACECODE1234"}
)
print(response.json())
const axios = require('axios');
axios
.get('https://api.auco.ai/v1.5/ext/whatsapp/records', {
headers: { Authorization: 'puk_yourPublicKey' },
params: { code: 'VERIFACECODE1234' },
})
.then((response) => console.log(response.data));
📥 Response Examples
🔹 Conversation with outgoing and incoming messages
[
{
"entity": "auco",
"phone": "+573001234567",
"message": "👋🏼 Hola Juan, has sido invitado a firmar un documento creado por ACME...",
"date": 1746028800000,
"actions": [
{ "action": "sent", "timestamp": 1746028800000 },
{ "action": "delivered", "timestamp": 1746028805000 },
{ "action": "read", "timestamp": 1746028860000 }
]
},
{
"entity": "signer",
"phone": "+573001234567",
"message": "comenzar",
"date": 1746028900000
},
{
"entity": "auco",
"phone": "+573001234567",
"message": "Este es el documento, recuerda que debes leerlo en su *totalidad*.",
"date": 1746028950000,
"actions": [
{ "action": "sent", "timestamp": 1746028950000 },
{ "action": "delivered", "timestamp": 1746028952000 }
]
},
{
"entity": "signer",
"phone": "+573001234567",
"message": "Completo el formulario",
"date": 1746029050000
}
]
The incoming messages in this example show the two cases you may come across. The second record, comenzar, is the text of a button the participant tapped. The last one, Completo el formulario, is not something the participant typed: it is the reference under which one of their actions within the flow was recorded. That text is descriptive and varies by process, so do not rely on it to detect actions in your integration.
The message values in these examples are literals of the WhatsApp channel, which runs in the participant's own language. The API does not localize them.
🔸 Message that could not be delivered
[
{
"entity": "auco",
"phone": "+573001234567",
"message": "👋🏼 Hola Juan, has sido invitado a firmar un documento creado por ACME...",
"date": 1746028800000,
"actions": [
{ "action": "sent", "timestamp": 1746028800000 },
{
"action": "failed",
"timestamp": 1746028802000,
"errors": ["WHATSAPP_NUMBER_NOT_REGISTERED"]
}
]
}
]
🔸 Process with no WhatsApp activity
[]