Contactos
El directorio de clientes y proveedores del libro — el mismo que la pantalla Contactos. Recurso JSON:API
book_party
: crear es un upsert por identificación (repetir un POST con la misma identificación actualiza el contacto en lugar de duplicarlo).
El objeto book_party
#
active
boolean
requerido
false
desactiva el registro sin borrarlo.
identification
string
requerido
RUC, cédula o identificación fiscal — única por libro; crear con una identificación existente actualiza ese contacto.
kind
enum
requerido
Cómo participa en tus operaciones: cliente, proveedor o ambos.
customersupplierboth
name
string
requerido
Nombre o razón social.
payment_method
enum
requerido
transferchequecash
related_party
boolean
requerido
Marca de parte relacionada para los anexos tributarios.
address
string
bank_account_number
string
bank_account_type
enum
savingschecking
bank_name
string
city
string
credit_limit_cents
integer
email
string
Correo al que se envían los comprobantes emitidos a este contacto.
expense_account_id
uuid
group
string
id_type
string
Código del tipo de identificación (catálogo del país; en Ecuador SRI Tabla 6:
04
RUC,
05
cédula,
06
pasaporte).
paid_from_account_code
string
payment_terms_days
integer
person_type
enum
Persona natural o sociedad — decide validaciones y reportes (ATS).
naturalsociedad
phone
string
Filtrable por: activeaddressbank_account_numberbank_account_typebank_namecitycredit_limit_centsemailexpense_account_idgroupidid_typeidentificationkindnamepaid_from_account_codepayment_methodpayment_terms_daysperson_typephonerelated_party
Ordenable por: activeaddressbank_account_numberbank_account_typebank_namecitycredit_limit_centsemailexpense_account_idgroupidid_typeidentificationkindnamepaid_from_account_codepayment_methodpayment_terms_daysperson_typephonerelated_party
Crear (o actualizar) un contacto#
/api/v1/contacts
Bearer
Upsert por
identification
dentro del libro de la llave.
Content-Type: application/vnd.api+json
identification
string
requerido
RUC, cédula o identificación fiscal — única por libro; crear con una identificación existente actualiza ese contacto.
name
string
requerido
Nombre o razón social.
active
boolean
false
desactiva el registro sin borrarlo.
email
string
Correo al que se envían los comprobantes emitidos a este contacto.
id_type
string
Código del tipo de identificación (catálogo del país; en Ecuador SRI Tabla 6:
04
RUC,
05
cédula,
06
pasaporte).
kind
enum
Cómo participa en tus operaciones: cliente, proveedor o ambos.
customersupplierboth
person_type
enum
Persona natural o sociedad — decide validaciones y reportes (ATS).
naturalsociedad
related_party
boolean
Marca de parte relacionada para los anexos tributarios.
Devuelve
·
201
con
data
·
400
si el cuerpo no cumple el esquema.
curl -X POST https://edge.datil.com/api/v1/contacts \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"type": "book_party",
"attributes": {
"identification": "0992345678001",
"name": "ACME S.A.",
"kind": "customer",
"email": "pagos@acme.ec"
}
}
}'
{
"data": {
"type": "book_party",
"id": "5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35",
"attributes": {
"active": true,
"identification": "0992345678001",
"kind": "customer",
"name": "ACME S.A.",
"payment_method": "transfer",
"related_party": false,
"address": null,
"bank_account_number": null,
"bank_account_type": "savings",
"bank_name": null,
"city": null,
"credit_limit_cents": null,
"email": "pagos@acme.ec",
"expense_account_id": null,
"group": null,
"id_type": "04",
"paid_from_account_code": null,
"payment_terms_days": null,
"person_type": "sociedad",
"phone": null
}
}
}
Listar contactos#
/api/v1/contacts
Bearer
filter[…]
object
Filtra por atributo:
filter[kind]=customer
, u operadores anidados como
filter[issue_date][greater_than]=2026-07-01
. Combinable con
filter[and]
/
filter[or]
.
sort
string
Atributos separados por coma; prefijo
-
para descendente:
sort=-issue_date
.
page[limit]
integer
Máximo de registros por página.
page[offset]
integer
Desplazamiento desde el inicio del listado.
page[count]
boolean
Con
true
, la respuesta incluye el total en
meta.page.total
.
fields[tipo]
string
Atributos a devolver, separados por coma — el sparse fieldset de JSON:API.
Devuelve
·
200
con
data
— lista de objetos
book_party
.
curl "https://edge.datil.com/api/v1/contacts?filter[kind]=customer&page[limit]=20" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"data": [
{
"type": "book_party",
"id": "5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35",
"attributes": {
"active": true,
"identification": "0992345678001",
"kind": "customer",
"name": "ACME S.A.",
"payment_method": "transfer",
"related_party": false,
"address": null,
"bank_account_number": null,
"bank_account_type": "savings",
"bank_name": null,
"city": null,
"credit_limit_cents": null,
"email": "pagos@acme.ec",
"expense_account_id": null,
"group": null,
"id_type": "04",
"paid_from_account_code": null,
"payment_terms_days": null,
"person_type": "sociedad",
"phone": null
}
}
]
}
Consultar un contacto#
/api/v1/contacts/:id
Bearer
id
uuid
requerido
Id del contacto.
Devuelve
·
200
con
data
·
404
.
curl "https://edge.datil.com/api/v1/contacts/5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35" \
-H "Authorization: Bearer $DATIL_API_KEY"
{
"data": {
"type": "book_party",
"id": "5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35",
"attributes": {
"active": true,
"identification": "0992345678001",
"kind": "customer",
"name": "ACME S.A.",
"payment_method": "transfer",
"related_party": false,
"address": null,
"bank_account_number": null,
"bank_account_type": "savings",
"bank_name": null,
"city": null,
"credit_limit_cents": null,
"email": "pagos@acme.ec",
"expense_account_id": null,
"group": null,
"id_type": "04",
"paid_from_account_code": null,
"payment_terms_days": null,
"person_type": "sociedad",
"phone": null
}
}
}
Actualizar un contacto#
/api/v1/contacts/:id
Bearer
Content-Type: application/vnd.api+json
id
uuid
requerido
Id del contacto.
active
boolean
false
desactiva el registro sin borrarlo.
bank_account_number
string
bank_account_type
enum
savingschecking
bank_name
string
credit_limit_cents
integer
email
string
Correo al que se envían los comprobantes emitidos a este contacto.
expense_account_id
uuid
id_type
string
Código del tipo de identificación (catálogo del país; en Ecuador SRI Tabla 6:
04
RUC,
05
cédula,
06
pasaporte).
identification
string
RUC, cédula o identificación fiscal — única por libro; crear con una identificación existente actualiza ese contacto.
kind
enum
Cómo participa en tus operaciones: cliente, proveedor o ambos.
customersupplierboth
name
string
Nombre o razón social.
paid_from_account_code
string
payment_method
enum
transferchequecash
person_type
enum
Persona natural o sociedad — decide validaciones y reportes (ATS).
naturalsociedad
related_party
boolean
Marca de parte relacionada para los anexos tributarios.
Devuelve
·
200
con
data
·
404
.
curl -X PATCH https://edge.datil.com/api/v1/contacts/5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35 \
-H "Authorization: Bearer $DATIL_API_KEY" \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"type": "book_party",
"attributes": {
"email": "pagos@acme.ec",
"active": true
}
}
}'
{
"data": {
"type": "book_party",
"id": "5b7e29d4-1c8a-4f3e-9b6d-2e4a8c0d1f35",
"attributes": {
"active": true,
"identification": "0992345678001",
"kind": "customer",
"name": "ACME S.A.",
"payment_method": "transfer",
"related_party": false,
"address": null,
"bank_account_number": null,
"bank_account_type": "savings",
"bank_name": null,
"city": null,
"credit_limit_cents": null,
"email": "pagos@acme.ec",
"expense_account_id": null,
"group": null,
"id_type": "04",
"paid_from_account_code": null,
"payment_terms_days": null,
"person_type": "sociedad",
"phone": null
}
}
}