Documentación

Lecturas contables

Cuatro recursos de solo lectura sobre el libro contable: el plan de cuentas, el diario (con su cadena de hashes), el directorio y la cartera abierta. Todos requieren book_id — el id del libro de tu llave — y la política del recurso acota cada fila a ese libro. Los asientos y documentos se escriben por los motores ( /invoices , /purchases ), nunca por JSON:API.

Plan de cuentas#

GET /api/v1/accounts Bearer

Objetos book_account , ordenados por código.

Parámetros

book_id uuid requerido

El libro de la llave.

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.

Atributos del objeto

active boolean requerido

false desactiva el registro sin borrarlo.

code string requerido

Código jerárquico de la cuenta ( 1.1.02.01 ).

control boolean requerido

Con true es cuenta de control: solo recibe asientos de un auxiliar.

name string requerido

Nombre de la cuenta.

type enum requerido

Naturaleza: activo, pasivo, patrimonio, ingreso o gasto.

assetliabilityequityincomeexpense

cash_flow_class enum

Clasificación para el estado de flujos: operación, inversión, financiamiento o caja.

operatinginvestingfinancingcash

currency string

Moneda de la cuenta (una cuenta por moneda).

role enum

Rol de sistema que los motores resuelven contra la cuenta (bancos, CxC, IVA…), si tiene uno.

retained_earningscurrent_earningsfx_gainfx_lossaccounts_receivableaccounts_payablebankcashcard_clearingsales_revenuevat_payablepurchasesvat_receivableice_payablewithholding_payablewithholding_vat_payablewithholding_receivablewithholding_vat_receivableprofit_sharing_payabledividends_payablefinancial_incomemerchant_feesperception_payabletips_payabledetraction_fundcheques_in_portfoliocustomer_depositssupplier_advancesinventorycogsinventory_adjustmentsalary_expensepayroll_burden_expensesalaries_payablesocial_security_payablepayroll_provisions_payableemployee_receivablesocial_security_loans_payablefixed_assetaccumulated_depreciationdepreciation_expensegain_on_disposalloss_on_disposalinterest_expenseincome_tax_expense

tax_code string

Casillero tributario asociado, si aplica.

Devuelve · 200 con data — lista de objetos book_account .

cURL
curl "https://edge.datil.com/api/v1/accounts?book_id=1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "type": "book_account",
      "id": "0a2c4e6b-8d0f-4b1d-9c3e-5a7c9e1b3d5a",
      "attributes": {
        "active": true,
        "code": "1.1.02.01",
        "control": false,
        "name": "Bancos",
        "type": "asset",
        "cash_flow_class": "cash",
        "currency": "USD",
        "role": "bank",
        "tax_code": null
      }
    }
  ]
}

Diario#

GET /api/v1/journals Bearer

Objetos book_journal : cada asiento con su hash y prev_hash — la cadena verificable del libro.

Parámetros

book_id uuid requerido

El libro de la llave.

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.

Atributos del objeto

currency string requerido

Moneda ISO 4217 ( USD en Ecuador, PEN en Perú).

date date requerido

Fecha del asiento.

environment enum requerido

Partición del dato: por una llave solo viaja production .

testproduction

hash string requerido

SHA-256 del asiento encadenado — el eslabón del libro verificable.

posted_at any requerido

Momento de contabilización.

sequence integer requerido

Número correlativo del asiento dentro del libro.

source enum requerido

Qué motor lo generó: manual, factura, banco, inventario, nómina…

manualsubledgerinvoicebillimportbankfxcloseinventorypayrollassets

status enum requerido

posted contabilizado · void anulado.

draftpostedvoid

effective_date date

Fecha de efecto contable, si difiere de la del asiento.

memo string

Glosa del asiento.

posted_by_id uuid

Quién lo contabilizó (id).

posted_by_name string

Quién lo contabilizó (nombre).

prev_hash string

El hash del asiento anterior en la cadena.

reversed_by_id uuid

El asiento que lo reversó, si fue reversado.

source_ref string

Referencia del documento de origen.

Devuelve · 200 con data — lista de objetos book_journal .

cURL
curl "https://edge.datil.com/api/v1/journals?book_id=1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f&sort=-sequence&page[limit]=20" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "type": "book_journal",
      "id": "6a1c3e5b-7d9f-4a2c-8e0b-2d4f6a8c0e2b",
      "attributes": {
        "currency": "USD",
        "date": "2026-07-03",
        "environment": "production",
        "hash": "b0a4f2d81c6e3a5b7d9f1e3c5a7b9d1f3e5c7a9b1d3f5e7c9a1b3d5f7e9c1a3b",
        "posted_at": "2026-07-03T14:07:00Z",
        "sequence": 482,
        "source": "invoice",
        "status": "posted",
        "effective_date": "2026-07-03",
        "memo": "Factura 001-002-000000123",
        "posted_by_id": "8c0e2b4d-6f8a-4c1e-9b3d-5f7a9c1e3b5d",
        "posted_by_name": "María Paz",
        "prev_hash": "7e9c1a3b5d7f9e1c3a5b7d9f1e3c5a7b9d1f3e5c7a9b1d3f5e7c9a1b3d5f7e9c",
        "reversed_by_id": null,
        "source_ref": "001-002-000000123"
      }
    }
  ]
}

Directorio (parties)#

GET /api/v1/parties Bearer

La misma tabla que /contacts , mediante el argumento explícito book_id — útil si tu integración ya usa las lecturas contables.

Parámetros

book_id uuid requerido

El libro de la llave.

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
curl "https://edge.datil.com/api/v1/parties?book_id=1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "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
      }
    }
  ]
}

Cartera abierta#

GET /api/v1/open-items Bearer

Objetos book_open_item pendientes: cuentas por cobrar ( receivable ) o por pagar ( payable ), con montos en centavos enteros.

Parámetros

book_id uuid requerido

El libro de la llave.

kind enum requerido

Cobrar o pagar.

receivablepayable

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.

Atributos del objeto

base_cents integer requerido

Base imponible en centavos.

currency string requerido

Moneda ISO 4217 ( USD en Ecuador, PEN en Perú).

doc_type enum requerido

Documento que originó la partida.

invoicebillcredit_notedebit_noteothercredit

environment enum requerido

Partición del dato: por una llave solo viaja production .

testproduction

functional_original_cents integer requerido

Importe original en la moneda funcional del libro, en centavos.

functional_outstanding_cents integer requerido

Saldo pendiente en moneda funcional, en centavos.

fx_rate string requerido

Tipo de cambio aplicado, como cadena decimal.

installments array requerido
issue_date date requerido

Fecha de emisión (AAAA-MM-DD).

kind enum requerido

Por cobrar ( receivable ) o por pagar ( payable ).

receivablepayable

original_cents integer requerido

Importe original en centavos enteros — los montos contables nunca viajan como flotantes.

outstanding_cents integer requerido

Saldo pendiente en centavos.

status enum requerido

open pendiente · partial con abonos · paid saldada · void anulada.

openpartialpaidvoid

tax_cents integer requerido

Impuestos en centavos.

control_account_id uuid
doc_number string

Número del documento.

due_date date

Fecha de vencimiento.

journal_id uuid

El asiento que abrió la partida.

memo string

Glosa.

rescheduled_at datetime
rescheduled_by_ref string
source_ref string

Referencia del documento de origen.

Devuelve · 200 con data — lista de objetos book_open_item .

cURL
curl "https://edge.datil.com/api/v1/open-items?book_id=1d2f4b6a-8c0e-4a2b-9d3f-5e7a9c1b3d5f&kind=receivable" \
  -H "Authorization: Bearer $DATIL_API_KEY"
Respuesta · 200
{
  "data": [
    {
      "type": "book_open_item",
      "id": "9b1d3f5a-7c9e-4d0b-8a2c-4e6a8c0b2d4c",
      "attributes": {
        "base_cents": 10000,
        "currency": "USD",
        "doc_type": "invoice",
        "environment": "production",
        "functional_original_cents": 11500,
        "functional_outstanding_cents": 11500,
        "fx_rate": "1.0",
        "installments": [],
        "issue_date": "2026-07-03",
        "kind": "receivable",
        "original_cents": 11500,
        "outstanding_cents": 11500,
        "status": "open",
        "tax_cents": 1500,
        "control_account_id": null,
        "doc_number": "001-002-000000123",
        "due_date": "2026-08-02",
        "journal_id": "6a1c3e5b-7d9f-4a2c-8e0b-2d4f6a8c0e2b",
        "memo": null,
        "rescheduled_at": null,
        "rescheduled_by_ref": null,
        "source_ref": null
      }
    }
  ]
}
Sin conexión — reintentando…

Esenciales

Sesión, seguridad, idioma y tema. Sin ellas el sitio no funciona.

Siempre activas