# Relatórios

É possível obter a informação de relatórios de contabilidade via API.

Os diferentes tipos de relatório são obtidos através de um pedido individual de um recurso que apenas tem atributos e cujo identificador é ignorado.

Na resposta, embora não apareça o relacionamento, ou `relationships,` com as linhas de detalhe do relatório, estas linhas são automaticamente incluídas na resposta, independentemente de no URL ser passado o parâmetro `include=lines` para a sua inclusão.

## Balancetes

Para obter um balancete deve ser usado um pedido GET sobre o recurso `trial_balance_period`, como referido anteriormente, pode ser usado qualquer identificador, e por coerência deve-se pedir a inclusão das linhas do relatório, como por exemplo:

```
/api/trial_balance_period/0?include=lines
```

## GET /trial\_balance\_period/{id}

>

```json
{"openapi":"3.0.1","info":{"title":"Cloudware API v0 Documentation","version":"1.0"},"tags":[{"name":"Relatórios de Contabilidade","description":"Rotas de Lançamentos de Contabilidade"}],"paths":{"/trial_balance_period/{id}":{"get":{"tags":["Relatórios de Contabilidade"],"parameters":[{"name":"id","in":"path","description":"Identificador temporário do relatório, apenas necessário pelo tipo de recurso","required":true,"style":"simple","schema":{"type":"string"}},{"name":"include","in":"query","description":"Inclusão das linhas do relatório, não é possível excluir","required":false,"schema":{"type":"string"}},{"name":"filter[first_account]","in":"query","description":"De conta","required":false,"schema":{"type":"integer"}},{"name":"filter[last_account]","in":"query","description":"Até conta","required":false,"schema":{"type":"integer"}},{"name":"filter[period_month]","in":"query","description":"Mês inicial","required":true,"schema":{"type":"integer"}},{"name":"filter[end_period_month]","in":"query","description":"Mês final","required":false,"schema":{"type":"integer"}},{"name":"filter[level]","in":"query","description":"Grau de detalhe das contas, usar 20 para incluir todas as contas de movimento","required":false,"schema":{"type":"integer"}},{"name":"filter[balance_type_id]","in":"query","description":"Tipo de saldos: Soma dos saldos (balance_of_accounts) ou Saldo das somas (account_balance)","required":false,"schema":{"type":"string"}},{"name":"filter[taxonomy_reference]","in":"query","description":"Taxonomia, nulo por omissão","required":false,"schema":{"type":"string"}},{"name":"filter[general_ledger_type]","in":"query","description":"Tipo de plano, nulo por omissão","required":false,"schema":{"type":"string"}},{"name":"filter[balance_sheet_structure_ids]","in":"query","description":"Lista de identificadores de categorias do balanço, separadas por vírgula","required":false,"schema":{"type":"string"}},{"name":"filter[profit_and_loss_structure_ids]","in":"query","description":"Lista de identificadores de descrições de demonstração de resultados, separados por vírgula","required":false,"schema":{"type":"string"}},{"name":"filter[include_zeroes]","in":"query","description":"Incluir saldo final a zero, verdadeiro por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[only_opening_balance]","in":"query","description":"Apenas movimentos de abertura, falso por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[include_opening_balance]","in":"query","description":"Incluir movimentos de abertura, verdadeiro por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[include_closing]","in":"query","description":"Incluir apuramentos de fecho, verdadeiro por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[include_yearly_balance]","in":"query","description":"Incluir apuramentos de resultados, verdadeiro por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[show_short_descriptions]","in":"query","description":"Mostrar descrições reduzidas, falso por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[hide_third_party_accounts]","in":"query","description":"Não mostrar contas de terceiros, verdadeiro por omissão","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/trial_balance_period-individual_response"}}}}}}}},"components":{"schemas":{"trial_balance_period-individual_response":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"company_tax_registration_number":{"type":"string","description":"NIF da empresa"},"company_name":{"type":"string","description":"Nome da empresa"},"fiscal_year":{"type":"string","description":"Exercício fiscal"},"first_account":{"type":"string","description":"De conta"},"last_account":{"type":"string","description":"Até conta"}}}}},"included":{"type":"array","items":{"properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"account_id":{"type":"string","description":"Conta do plano SNC"},"account_description":{"type":"string","description":"Descrição da conta do plano SNC"},"debit1_amount":{"type":"number","description":"Montante a débito anterior ao período"},"credit1_amount":{"type":"number","description":"Montante a crédito anterior ao período"},"debit2_amount":{"type":"number","description":"Montante a débito no período"},"credit2_amount":{"type":"number","description":"Montante a crédito no período"},"debit3_amount":{"type":"number","description":"Montante a débito acumulado"},"credit3_amount":{"type":"number","description":"Montante a crédito acumulado"},"debit_balance":{"type":"number","description":"Saldo devedor, nulo se o saldo for credor"},"credit_balance":{"type":"number","description":"Saldo credor, nulo se o saldo for devedor"},"movement_balance":{"type":"number","description":"Saldo, que é a diferença entre o saldo devedor e o saldo credor"},"cumulative_debit":{"type":"number","description":"Soma dos saldos devedores"},"cumulative_credit":{"type":"number","description":"Soma dos saldos credores"},"group_id":{"type":"string","description":"Identificador do grupo de contas, zero quando não há agrupamentos, ou seja quando são aplicados filtros por categoria do balanço ou demonstração de resultados"},"class":{"type":"string","description":"Classe do plano SNC"},"level":{"type":"string","description":"Nível da conta"},"db_bss_descr":{"type":"string","description":"Descrição da categoria do balanço a débito, nulo quando há agrupamentos, ou seja quando não são aplicados filtros por categoria do balanço ou demonstração de resultados"},"cr_bss_descr":{"type":"string","description":"Descrição da categoria do balanço a crédito, nulo quando há agrupamentos, ou seja quando não são aplicados filtros por categoria do balanço ou demonstração de resultados"},"pnl_descr":{"type":"string","description":"Descrição da categoria do balanço a crédito, nulo quando há agrupamentos, ou seja quando não são aplicados filtros por categoria do balanço ou demonstração de resultados"},"is_integrator":{"type":"boolean","description":"Conta integradora"}}}}}}}}}}}
```

Exemplo de informação de uma linha do balancete:

```json
    "included": [
        {
            "type": "trial_balance_lines",
            "id": 12,
            "attributes": {
                "account_id": "12",
                "account_description": "Depósitos à ordem",
                "debit1_amount": 0,
                "credit1_amount": 234.00,
                "debit2_amount": 31500.00,
                "credit2_amount": 3000.00,
                "debit3_amount": 31500.00,
                "credit3_amount": 3234.00,
                "debit_balance": 28266.00,
                "credit_balance": null,
                "cumulative_debit": 28266.00,
                "cumulative_credit": 0,
                "movement_balance": 28266.00,
                "group_id": 1,
                "class": 1,
                "level": 2,
                "db_bss_descr": null,
                "cr_bss_descr": null,
                "pnl_descr": null,
                "is_integrator": true
            }
        },
```

```json
          
```

## Extratos de contas

Para obter um extrato de contas deve ser usado um pedido GET sobre o recurso `account_statement`, como referido acima, pode ser usado qualquer identificador, e por coerência deve-se pedir a inclusão das linhas do relatório, como por exemplo:

```
/api/account_statement/0?include=lines
```

## GET /account\_statement/{id}

>

```json
{"openapi":"3.0.1","info":{"title":"Cloudware API v0 Documentation","version":"1.0"},"tags":[{"name":"Relatórios de Contabilidade","description":"Rotas de Lançamentos de Contabilidade"}],"paths":{"/account_statement/{id}":{"get":{"tags":["Relatórios de Contabilidade"],"parameters":[{"name":"id","in":"path","description":"Identificador temporário do relatório, apenas necessário pelo tipo de recurso","required":true,"style":"simple","schema":{"type":"string"}},{"name":"include","in":"query","description":"Inclusão das linhas do relatório, não é possível excluir","required":false,"schema":{"type":"string"}},{"name":"filter[first_account]","in":"query","description":"De conta","required":false,"schema":{"type":"integer"}},{"name":"filter[last_account]","in":"query","description":"Até conta","required":false,"schema":{"type":"integer"}},{"name":"filter[start_date]","in":"query","description":"Data inicial","required":true,"schema":{"type":"string"}},{"name":"filter[end_date]","in":"query","description":"Data final","required":false,"schema":{"type":"string"}},{"name":"filter[include_zeroes]","in":"query","description":"Incluir saldo final a zero, false por omissão","required":false,"schema":{"type":"boolean"}},{"name":"filter[has_transactions]","in":"query","description":"Com movimentos, false por omissão","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/account_statement-individual_response"}}}}}}}},"components":{"schemas":{"account_statement-individual_response":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"company_tax_registration_number":{"type":"string","description":"NIF da empresa"},"company_name":{"type":"string","description":"Nome da empresa"},"start_date":{"type":"string","description":"Data inicial"},"end_date":{"type":"string","description":"Data final"},"first_account":{"type":"string","description":"De conta"},"last_account":{"type":"string","description":"Até conta"}}}}},"included":{"type":"array","items":{"properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"account_id":{"type":"string","description":"Conta do plano SNC"},"account_description":{"type":"string","description":"Descrição da conta do plano SNC"},"detail_order":{"type":"number","description":"Ordenação da linha de detalhe, inicia com zero referente ao saldo inicial"},"initial_debit":{"type":"number","description":"Montante inicial a débito"},"initial_credit":{"type":"number","description":"Montante inicial a crédito"},"final_debit":{"type":"number","description":"Montante a débito, na moeda do lançamento, nulo se o movimento for credor"},"final_credit":{"type":"number","description":"Montante a crédito, na moeda do lançamento, nulo se o movimento for devedor"},"balance_amount":{"type":"number","description":"Saldo movimentado na linha, na moeda do lançamento"},"debit_final_amount":{"type":"number","description":"Montante a débito em EUR, não é nulo, mesmo que o movimento seja credor"},"credit_final_amount":{"type":"number","description":"Montante a crédito em EUR, não é nulo, mesmo que o movimento seja credor"},"movement_amount":{"type":"number","description":"Saldo movimentado na linha em EUR, na moeda do lançamento"},"journal_id":{"type":"string","description":"Identificador do diário"},"journal_entry":{"type":"number","description":"Número do diário"},"transaction_date":{"type":"string","description":"Data do lançamento"},"document_date":{"type":"string","description":"Data do documento"},"document_no":{"type":"string","description":"Número do documento contabilístico"},"accountable_document_no":{"type":"string","description":"Número do documento noutro módulo (compras, vendas, salários, etc.)"},"transaction_id":{"type":"integer","description":"Identificador do lançamento"},"description":{"type":"string","description":"Descrição da linha do lançamento"},"full_description":{"type":"string","description":"Descrição da linha do lançamento incluindo a \"Vossa referência\" do lançamento, se existir"},"external_reference":{"type":"string","description":"Vossa referência do lançamento"},"suggestion_type":{"type":"string","description":"Tipo de lançamento, dependendo de ter sido originado noutros módulos"},"third_party_name":{"type":"string","description":"Nome do terceiro associado ao lançamento"},"third_party_tax_number":{"type":"string","description":"NIF do terceiro associado ao lançamento"},"jrxml_full_description_and_third_party_name":{"type":"string","description":"Descrição usada no relatório"}}}}}}}}}}}
```

Exemplo de informação de uma linha do extrato:

```json
    "included": [
        {
            "type": "account_statement_lines",
            "id": "12999-0",
            "attributes": {
                "account_id": "12999",
                "account_description": "Depósitos à ordem-Outros bancos",
                "detail_order": 0,
                "initial_debit": 0.00,
                "initial_credit": 25.90,
                "final_debit": 0.00,
                "final_credit": 51.80,
                "balance_amount": -25.90,
                "journal_id": null,
                "journal_entry": null,
                "transaction_date": null,
                "document_no": null,
                "transaction_id": null,
                "description": "Saldo inicial",
                "full_description": null,
                "accountable_document_no": null,
                "debit_final_amount": 0.00,
                "credit_final_amount": 25.90,
                "movement_amount": -25.90,
                "external_reference": null,
                "suggestion_type": null,
                "document_date": null,
                "third_party_name": null,
                "third_party_tax_number": null,
                "jrxml_full_description_and_third_party_name": null
            }
        },
```

## Extratos de diários

Para obter um extrato de contas deve ser usado um pedido GET sobre o recurso `journal_statement`, como referido acima, pode ser usado qualquer identificador, e por coerência deve-se pedir a inclusão das linhas do relatório, como por exemplo:

```
/api/journal_statement/0?include=lines
```

## GET /journal\_statement/{id}

>

```json
{"openapi":"3.0.1","info":{"title":"Cloudware API v0 Documentation","version":"1.0"},"tags":[{"name":"Relatórios de Contabilidade","description":"Rotas de Lançamentos de Contabilidade"}],"paths":{"/journal_statement/{id}":{"get":{"tags":["Relatórios de Contabilidade"],"parameters":[{"name":"id","in":"path","description":"Identificador temporário do relatório, apenas necessário pelo tipo de recurso","required":true,"style":"simple","schema":{"type":"string"}},{"name":"include","in":"query","description":"Inclusão das linhas do relatório, não é possível excluir","required":false,"schema":{"type":"string"}},{"name":"filter[start_date]","in":"query","description":"Data inicial","required":true,"schema":{"type":"string"}},{"name":"filter[end_date]","in":"query","description":"Data final","required":false,"schema":{"type":"string"}},{"name":"filter[journal_list]","in":"query","description":"Diários a incluir, separados por vírgula","required":false,"schema":{"type":"string"}},{"name":"filter[has_transactions]","in":"query","description":"Com movimentos, false por omissão","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/journal_statement-individual_response"}}}}}}}},"components":{"schemas":{"journal_statement-individual_response":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"company_tax_registration_number":{"type":"string","description":"NIF da empresa"},"company_name":{"type":"string","description":"Nome da empresa"},"start_date":{"type":"string","description":"Data inicial"},"end_date":{"type":"string","description":"Data final"},"journal_list":{"type":"string","description":"Diários indicados no pedido"}}}}},"included":{"type":"array","items":{"properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"journal_id":{"type":"string","description":"Identificador do diário"},"journal_name":{"type":"string","description":"Nome do diário"},"detail_order":{"type":"number","description":"Ordenação da linha de detalhe, inicia com zero referente ao saldo inicial"},"initial_debit":{"type":"number","description":"Montante inicial a débito"},"initial_credit":{"type":"number","description":"Montante inicial a crédito"},"final_debit":{"type":"number","description":"Montante a débito, na moeda do lançamento, nulo se o movimento for credor"},"final_credit":{"type":"number","description":"Montante a crédito, na moeda do lançamento, nulo se o movimento for devedor"},"journal_entry":{"type":"number","description":"Número do diário"},"transaction_date":{"type":"string","description":"Data do lançamento"},"document_date":{"type":"string","description":"Data do documento"},"document_no":{"type":"string","description":"Número do documento contabilístico"},"accountable_document_no":{"type":"string","description":"Número do documento noutro módulo (compras, vendas, salários, etc.)"},"transaction_id":{"type":"integer","description":"Identificador do lançamento"},"account_id":{"type":"string","description":"Conta do plano SNC"},"description":{"type":"string","description":"Descrição da linha do lançamento"},"debit_final_amount":{"type":"number","description":"Montante a débito em EUR, não é nulo, mesmo que o movimento seja credor"},"credit_final_amount":{"type":"number","description":"Montante a crédito em EUR, não é nulo, mesmo que o movimento seja credor"},"movement_amount":{"type":"number","description":"Saldo movimentado na linha em EUR, na moeda do lançamento"},"vat_code_id":{"type":"string","description":"Código de IVA"},"external_reference":{"type":"string","description":"Vossa referência do lançamento"},"suggestion_type":{"type":"string","description":"Tipo de lançamento, dependendo de ter sido originado noutros módulos"},"third_party_name":{"type":"string","description":"Nome do terceiro associado ao lançamento"},"third_party_tax_number":{"type":"string","description":"NIF do terceiro associado ao lançamento"},"jrxml_full_description_and_third_party_name":{"type":"string","description":"Descrição usada no relatório"}}}}}}}}}}}
```

Exemplo de informação de uma linha do extrato:

```json
    "included": [
        {
            "type": "journal_statement_lines",
            "id": "CMP-0",
            "attributes": {
                "journal_id": "CMP",
                "journal_name": "Compras",
                "detail_order": 0,
                "initial_debit": 0,
                "initial_credit": 0,
                "final_debit": 150.93,
                "final_credit": 150.93,
                "journal_entry": null,
                "transaction_date": null,
                "document_no": null,
                "accountable_document_no": null,
                "transaction_id": null,
                "account_id": null,
                "description": "Saldo inicial",
                "debit_final_amount": 0,
                "credit_final_amount": 0,
                "vat_code_id": null,
                "movement_amount": 0,
                "external_reference": null,
                "suggestion_type": null,
                "document_date": null,
                "third_party_name": null,
                "third_party_tax_number": null,
                "jrxml_description_and_third_party_name": "Saldo inicial"
            }
        },
```
