Document Package
For each document package state, a request is generated with the following body, varying in the description of the status.
You have 10 seconds to respond
Auco closes the connection if your endpoint does not respond within 10 seconds. Both a timeout and a 4xx or 5xx response are retried up to 3 times before the notification is discarded. Return 200 immediately, process in the background, and make your handler idempotent. See Response Time and Retries.
Notified States
| Name | Description |
|---|---|
| CREATE | This state is notified when a document package is created. |
| NOTIFICATION | This state is notified when a package participant has completed their signature. |
| SIGNED_PACKAGE | This state is notified when all parties have signed the document package. |
| DOCUMENT_REJECT | This state is notified when one of the documents in the package has been rejected. |
| REJECTED | This state is notified with the details of the participant who rejected the package. |
| BLOCKED | Notified when a signer exceeds the identity validation attempts (3), requiring manual validation. |
🧪 Notification Examples
tip
You can copy any of the examples according to your preferred language.
Notification Parameters
| Name | Type | Description |
|---|---|---|
package | String | Document package identifier. |
name | String | Document package name. |
status | String | Current package status (CREATE, NOTIFICATION, SIGNED_PACKAGE, DOCUMENT_REJECT, REJECTED or BLOCKED). |
signer | Object | Signer information, present when the status is NOTIFICATION, REJECTED or BLOCKED. |
message | String | Message associated with the signer's status. If the status is REJECTED, contains the message written by the participant on rejection; if BLOCKED, contains the reason for the block. |
documents | Array | List of documents that are part of the package (absent in the NOTIFICATION and REJECTED states). |
documents.code | String | Document code. |
documents.name | String | Document name. |
documents.status | String | Individual document status (CREATE, FINISH, REJECT or EXPIRED). |
documents.url | String | Document URL. |
tags | Array | List of tags or custom fields assigned to the package, if defined. |
Process Creation
- JSON
{
"package": "idPackage", //Package identifier
"name": "API test documents", //Document package name
"status": "CREATE", //Document package status
"documents": [
{
"code": "DOCUMENTCODE",
"name": "Test document 1",
"status": "CREATE",
"url": "https://test.auco.ai/contrato-de-prueba1.pdf"
},
{
"code": "DOCUMENTCODE",
"name": "Test document 2",
"status": "CREATE",
"url": "https://test.auco.ai/contrato-de-prueba2.pdf"
}
]
}
Participant Signature
- JSON
{
"package": "idPackage",
"name": "API test documents",
"signer": {
"id": "participant_id",
"name": "participant name",
"email": "email",
"phone": "phone"
},
"status": "NOTIFICATION"
}
Process Completion
- JSON
{
"package": "idPackage",
"name": "API test documents",
"status": "SIGNED_PACKAGE",
"documents": [
{
"code": "DOCUMENTCODE",
"name": "Test document 1",
"status": "FINISH",
"url": "https://test.auco.ai/contrato-de-prueba1.pdf"
},
{
"code": "DOCUMENTCODE",
"name": "Test document 2",
"status": "FINISH",
"url": "https://test.auco.ai/contrato-de-prueba2.pdf"
}
]
}
Document Rejection
- JSON
{
"package": "idPackage",
"name": "API test documents",
"status": "DOCUMENT_REJECT",
"documents": [
{
"code": "DOCUMENTCODE",
"name": "Test document 1",
"status": "REJECT",
"url": "https://test.auco.ai/contrato-de-prueba1.pdf"
},
{
"code": "DOCUMENTCODE",
"name": "Test document 2",
"status": "CREATE",
"url": "https://test.auco.ai/contrato-de-prueba2.pdf"
}
]
}
Participant Rejection
- JSON
{
"package": "idPackage",
"name": "API test documents",
"signer": {
"id": "participant_id",
"name": "participant name",
"email": "email",
"phone": "phone"
},
"status": "REJECTED",
"message": "message"
}
Signer Blocked
- JSON
{
"package": "idPackage",
"name": "API test documents",
"signer": {
"id": "participant_id",
"name": "participant name",
"email": "email",
"phone": "phone"
},
"status": "BLOCKED",
"message": "OTP_CODE_INVALID"
}