# Pedidos com várias operações

Relembramos que é possível utilizar a [extensão JSON Patch](https://cegid-cloudware.gitbook.io/documentacao-api/api-v0/introducao-a-api-v0#extensao-json-patch) para realizar num só pedido várias [operações](https://cegid-cloudware.gitbook.io/documentacao-api/api-v0/introducao-a-api-v0#operacoes) sobre lançamentos, de acordo com a nossa implementação da [API v0](https://cegid-cloudware.gitbook.io/documentacao-api/api-v0/introducao-a-api-v0).

## Operações sobre linhas de lançamentos

## PATCH /accounting\_transaction\_lines

>

```json
{"openapi":"3.0.1","info":{"title":"Cloudware API v0 Documentation","version":"1.0"},"tags":[{"name":"Contabilidade","description":"Rotas de Lançamentos de Contabilidade"}],"paths":{"/accounting_transaction_lines":{"patch":{"tags":["Contabilidade"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_transaction_lines-patch_extension_request"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_transaction_lines-patch_extension_response"}}}}}}}},"components":{"schemas":{"accounting_transaction_lines-patch_extension_request":{"type":"array","minItems":1,"items":{"type":"object","required":["op","path","value"],"properties":{"op":{"type":"string","description":"Tipo de operação suportada na extensão JSON Patch: add|replace|delete"},"path":{"description":"Endereço a adicionar ao caminho do recurso, sendo vazio: '/-'"},"value":{"type":"object","required":["type","attributes"],"properties":{"type":{"type":"string"},"id":{"type":"string","description":"Identificador da linha quando a operação, obrigatório para operações de alterar ou eliminar"},"attributes":{"type":"object","properties":{"seqno":{"type":"integer","description":"Número de sequência (ordem) das linhas de lançamento (inicia no zero)"},"transaction_id":{"type":"integer","description":"Identificador do lançamento"},"account_id":{"type":"integer","description":"Conta a movimentar do plano SNC"},"description":{"type":"string","description":"Descrição da linha de lançamento"},"debit_amount":{"type":"number","description":"Valor a movimentar a débito"},"credit_amount":{"type":"number","description":"Valor a movimentar a crébito"},"debit_expression":{"type":"string","description":"Expressão matemática usada em edição manual para o valor a débito"},"credit_expression":{"type":"string","description":"Expressão matemática usada em edição manual para o valor a crédito"},"cost_dimension_id":{"type":"integer","description":"Identificador da rubrica"}}},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/general_ledger-relationship"}}},"transaction":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/accounting_transactions-relationship"}}},"vat_code":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/vat_codes-relationship"}}},"cost_dimension":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/cost_dimensions-relationship"}}},"transaction_line_cash_flows":{"type":"array","items":{"properties":{"data":{"$ref":"#/components/schemas/accounting_transaction_line_cash_flows-relationship"}}}},"transaction_line_costs":{"type":"array","items":{"properties":{"data":{"$ref":"#/components/schemas/accounting_transaction_line_costs-relationship"}}}}}}}}}}},"general_ledger-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"basic-relationship":{"type":"object","required":["type","id"],"properties":{"type":{"type":"string"},"id":{"type":"string"}}},"accounting_transactions-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"vat_codes-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"cost_dimensions-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"accounting_transaction_line_cash_flows-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"accounting_transaction_line_costs-relationship":{"type":"object","oneOf":[{"$ref":"#/components/schemas/basic-relationship"}]},"accounting_transaction_lines-patch_extension_response":{"type":"array","items":{"$ref":"#/components/schemas/accounting_transaction_lines-collection_response"}},"accounting_transaction_lines-collection_response":{"type":"object","properties":{"data":{"type":"array","items":{"properties":{"type":{"type":"string"},"id":{"type":"string"},"attributes":{"type":"object","properties":{"seqno":{"type":"integer","description":"Número de sequência (ordem) das linhas de lançamento (inicia no zero)"},"transaction_id":{"type":"integer","description":"Identificador do lançamento"},"account_id":{"type":"integer","description":"Conta a movimentar do plano SNC"},"description":{"type":"string","description":"Descrição da linha de lançamento"},"debit_amount":{"type":"number","description":"Valor a movimentar a débito"},"credit_amount":{"type":"number","description":"Valor a movimentar a crébito"},"debit_expression":{"type":"string","description":"Expressão matemática usada em edição manual para o valor a débito"},"credit_expression":{"type":"string","description":"Expressão matemática usada em edição manual para o valor a crédito"},"cost_dimension_id":{"type":"integer","description":"Identificador da rubrica"}}},"relationships":{"type":"object","properties":{"account":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/general_ledger-relationship"}}},"transaction":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/accounting_transactions-relationship"}}},"vat_code":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/vat_codes-relationship"}}},"cost_dimension":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/cost_dimensions-relationship"}}},"transaction_line_cash_flows":{"type":"array","items":{"properties":{"data":{"$ref":"#/components/schemas/accounting_transaction_line_cash_flows-relationship"}}}},"transaction_line_costs":{"type":"array","items":{"properties":{"data":{"$ref":"#/components/schemas/accounting_transaction_line_costs-relationship"}}}}}}}}}}}}}}
```

#### Exemplo: adicionar 2 linhas no mesmo lançamento:

```json
[
    {
        "op": "add",
        "path": "/-",
        "value": {
            "type": "accounting_transaction_lines",
            "attributes": {
                "transaction_id": 1,
                "seqno": 0,
                "account_id": "11001",
                "debit_amount": 10
            }
        }
    },
    {
        "op": "add",
        "path": "/-",
        "value": {
            "type": "accounting_transaction_lines",
            "attributes": {
                "transaction_id": 1,
                "seqno": 1,
                "account_id": "12001",
                "credit_amount": 10
            }
        }
    }
]
```

## Operações sobre recursos distintos

Para efetuar pedidos sobre recursos distintos, deve-se fazer o pedido PATCH sobre o `<API_URL>/` e especificar o `path` em cada operação.

#### Exemplo:  adicionar linhas e finalizar lançamento

```json
[
    {
        "op": "replace",
        "path": "/accounting_transaction_lines/23/account_id",
        "value": "11001"
    },
    {
        "op": "replace",
        "path": "/accounting_transaction_lines/23/debit_amount",
        "value": "10"
    },
    {
        "op": "add",
        "path": "/accounting_transaction_lines",
        "value": {
            "type": "accounting_transaction_lines",
            "attributes": {
                "transaction_id": 4,
                "account_id": "12001",
                "credit_amount": 10
            }
        }
    },
    {
        "op": "replace",
        "path": "/accounting_transactions/4/status",
        "value": "finalized"
    }
]
```
