Criação de lançamentos
Last updated
Last updated
Os lançamentos, semelhantes aos documentos comerciais, são constituídos por:
Um cabeçalho
Duas ou mais linhas
De modo a criar um lançamento, deverá ser efetuado um pedido com informação do cabeçalho do mesmo. No momento de criação do lançamento é automaticamente adicionada uma linha, que se não for utilizada e estiver vazia quando o lançamento for finalizado, será automaticamente removida durante a finalização do lançamento. Para este efeito, deverá realizar o seguinte pedido:
curl -v -X POST \
-H 'Content-Type: application/vnd.api+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <access_token>' \
-d '<payload JSON>' '<API_URL>/accounting_transaction'
No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth. O pedido de criação do lançamento deve ser feito de acordo com a seguinte especificação:
De modo a adicionar uma linha a um lançamento, deverá realizar o seguinte pedido:
curl -v -X POST \
-H 'Content-Type: application/vnd.api+json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <access_token>' \
-d '<payload JSON>' '<API_URL>/accounting_transaction_lines'
No pedido acima, o <access_token> corresponde ao token de acesso válido devolvido pelo serviço de OAuth. O pedido de criação de uma linha de lançamento deve ser feito de acordo com a seguinte especificação:
Os documentos comerciais podem ter lançamentos de contabilidade associados através da funcionalidade de sugestão de lançamentos, disponível na rota /set_suggestions_for_document_on_fiscal_year
.
Para gerar uma sugestão de lançamento de um documento finalizado deve ser passada o parâmetro operation=create
e para lançamentos anulados o parâmetro operation=destroy
.
Qualquer lançamento pode ser duplicado fazendo um pedido à rota /duplicate_transaction
, que tem a seguinte especificação:
Se for necessário criar um estorno para um lançamento finalizado, é possível utilizar a API fazendo um pedido à rota /reverse_transaction
que executa essa ação, tendo o pedido a seguinte especificação:
Identificador do documento comercial
1
Tipo de documento comercial
FT
Número do documento comercial
FT 2024/1
Tipo de operação a realizar, create para criar a sugestão, e destroy para anular a sugestão existente.
Tentar finalizar a sugestão gerada
true
GET /set_suggestions_for_document_on_fiscal_year?filter[document_id]=1&filter[document_type]=FT&filter[document_no]=FT+2024%2F1&filter[operation]=create&filter[finalize]=true HTTP/1.1
Host:
Accept: */*
OK
{
"data": []
}
Identificador do lançamento a duplicar
1
GET /duplicate_transaction?filter[transaction_id]=1 HTTP/1.1
Host:
Accept: */*
OK
{
"data": []
}
Identificador do lançamento a estornar
1
GET /reverse_transaction?filter[transaction_id]=1 HTTP/1.1
Host:
Accept: */*
OK
{
"data": []
}
POST /accounting_transactions HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 503
{
"data": {
"type": "accounting_transactions",
"attributes": {
"status": "draft",
"transaction_date": "2024-01-01",
"document_date": "2023-12-10",
"description": "Lançamento novo via API",
"external_reference": "D20236712",
"currency_conversion_rate": 1.21,
"third_party_control_id": "CLIENTE",
"third_party_entity_id": 20
},
"relationships": {
"accounting_document_type": {
"data": {
"type": "accounting_document_types",
"id": "DP"
}
},
"currency": {
"data": {
"type": "text",
"id": "text"
}
},
"journal": {
"data": {
"type": "journals",
"id": "BNC"
}
}
}
}
}
OK
{
"data": {
"type": "accounting_transactions",
"id": "1",
"attributes": {
"status": "draft",
"transaction_date": "2024-01-01",
"document_date": "2023-12-10",
"description": "Lançamento novo via API",
"external_reference": "D20236712",
"currency_conversion_rate": 1.21,
"third_party_control_id": "CLIENTE",
"third_party_entity_id": 20,
"created_at": "2024-01-01 10:20:30.123456",
"finalized_at": null,
"journal_entry": null,
"document_no": null,
"accounting_document_series_no": 1,
"debit_total_fiscal_currency": 0,
"credit_total_fiscal_currency": 0,
"debit_total_document_currency": 0,
"credit_total_document_currency": 0,
"accountable_id": null,
"accountable_document_type": null,
"accountable_document_no": null
},
"relationships": {
"accounting_document_series": {
"data": null
},
"accounting_document_type": {
"data": {
"type": "accounting_document_types",
"id": "DP"
}
},
"currency": {
"data": {
"type": "currency",
"id": "1"
}
},
"journal": {
"data": {
"type": "journals",
"id": "BNC"
}
},
"lines": {
"data": [
{
"type": "text",
"id": "text"
}
]
},
"user": {
"data": {
"type": "users",
"id": "1"
}
}
}
}
}
POST /accounting_transaction_lines HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 591
{
"data": {
"type": "accounting_transaction_lines",
"attributes": {
"seqno": 0,
"transaction_id": 1,
"account_id": 11001,
"description": "Linha de lançamento nova via API",
"debit_amount": 10.5,
"credit_amount": 20,
"debit_expression": "9+1.5",
"credit_expression": "10*2",
"cost_dimension_id": 1
},
"relationships": {
"account": {
"data": {
"type": "general_ledger",
"id": "1"
}
},
"transaction": {
"data": {
"type": "accounting_transactions",
"id": "1"
}
},
"vat_code": {
"data": {
"type": "vat_codes",
"id": "1"
}
},
"cost_dimension": {
"data": {
"type": "cost_dimensions",
"id": "0101"
}
},
"transaction_line_cash_flows": [],
"transaction_line_costs": []
}
}
}
OK
{
"data": {
"type": "accounting_transaction_lines",
"id": "1",
"attributes": {
"seqno": 0,
"transaction_id": 1,
"account_id": 11001,
"description": "Linha de lançamento nova via API",
"debit_amount": 10.5,
"credit_amount": 20,
"debit_expression": "9+1.5",
"credit_expression": "10*2",
"cost_dimension_id": 1
},
"relationships": {
"account": {
"data": {
"type": "general_ledger",
"id": "1"
}
},
"transaction": {
"data": {
"type": "accounting_transactions",
"id": "1"
}
},
"vat_code": {
"data": {
"type": "vat_codes",
"id": "1"
}
},
"cost_dimension": {
"data": {
"type": "cost_dimensions",
"id": "0101"
}
},
"transaction_line_cash_flows": [],
"transaction_line_costs": []
}
}
}