# Pagamentos

Os pagamentos seguem a mesma estrutura anteriormente definida: São compostos por um cabeçalho, e linhas. Nesta nova versão, é possível criar ambas as componentes num só pedido, descrito de seguida.

## Criação de cabeçalhos e linhas

Os detalhes do pedido POST para a criação de recibos estão descritos de seguida, em formato OpenAPI, e em cURL.

{% openapi src="/files/0bfv1V2XBFeKz2l1ZR2X" path="/v1/commercial\_purchases\_payments" method="post" %}
[cloudware-deploy-APIv1-1.0-resolved.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2FuXSKR4pUABzmU0tMSGJi%2Fcloudware-deploy-APIv1-1.0-resolved.yaml?alt=media\&token=1fed9dbf-2306-40dd-9114-400ccb053fd0)
{% endopenapi %}

Este pedido permite criar um pagamento, e respetivas linhas, em simultâneo.

{% code overflow="wrap" %}

```
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>/v1/commercial_purchases_payments'
```

{% endcode %}

Neste, o payload JSON deverá vir no seguinte formato

```json
{
    "date": "2017-06-01",                                 // Data do pagamento
    "payment_mechanism": "MO|CH|DC|CC|TR|DDA|MB|OU|...",  // Por omissão, MO. Modo de pagamento: MO (numerário), CH (cheque), DC (cartão de débito), CC (cartão de crédito), TR (transferência), DDA (débito directo), MB (referência MB), OU (outro)
    "document_series_id": 1,                              // Associação à série de pagamentos. Pode ser omitida, se for para usar a série por omissão. Este id pode ser obtido por um GET /commercial_document_series?filter[document_type]=PF&filter[prefix]=2020|ou outro qualquer...
    "bank_account_id": 2,                                 // SÓ NECESSÁRIO se o meio de pagamento for DC,CC,TR,CH, e se for para indicar uma conta bancária específica. Associação à conta bancária da empresa de onde o pagamento foi feito. // Este id pode ser obtido por um GET /company_bank_accounts?filter[iban]=<IBAN da conta>, ou GET /company_bank_accounts?filter[name]=<nome da conta>
    "cash_account_id": 2,                                 // SÓ NECESSÁRIO se o meio de pagamento for MO, e se for para indicar uma conta de caixa específica. Associação à conta de caixa da empresa de onde o pagamento foi feito. Este id pode ser obtido por um GET /cash_accounts?filter[name]=<nome da conta de caixa>
    "lines": [
        {
            "payable_type": "Purchases::Document",
            "payable_id": "<id do documento de compra a pagar>",
            "paid_value": 50, // Valor total a pagar (não é necessário pagar a totalidade do documento, ou pode pagar-se mais do que um documento)
            // Indicar o atributo seguinte apenas se existir desconto no pagamento (3%, neste exemplo)
            "settlement_percentage": 3,
            "commercial_purchases_document_id": 2 //id do documento de compra a pagar
        }
    ]
}
```

## Finalização do documento

Não é necessário. Os pagamentos são sempre fechados.

### Anulação de um documento (Caso seja preciso) <a href="#anulacao-de-um-documento-caso-seja-preciso" id="anulacao-de-um-documento-caso-seja-preciso"></a>

{% openapi src="/files/BO41QI441Vao0H7YUkuO" path="/v1/commercial\_purchases\_payments/{id}" method="delete" %}
[api.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2F2h8nz3uS2MI8cgmdxnVM%2Fapi.yaml?alt=media\&token=75c5b2a7-06b6-432a-a770-76f594a3f901)
{% endopenapi %}

### Edição do documento, após criação

O seguinte pedido pode ser realizado, após a criação do documento, e permite alterar informações sobre o documento. A estrutura do payload é a mesma do POST de criação. Neste, deverá enviar no id do pedido o id do documento a alterar. Os atributos enviados no body irão substituir os guardados no momento, e cada linha enviada dentro de lines irá substituir os dados guardados na linha com id especificado em payment\_line\_id

{% openapi src="/files/BO41QI441Vao0H7YUkuO" path="/v1/commercial\_purchases\_payments/{id}" method="patch" %}
[api.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2F2h8nz3uS2MI8cgmdxnVM%2Fapi.yaml?alt=media\&token=75c5b2a7-06b6-432a-a770-76f594a3f901)
{% endopenapi %}

### Adição de linhas

Caso pretenda adicionar novas linhas ao documento, após a sua criação, pode utilizar a seguinte rota, que utiliza o mesmo payload das lines do pedido POST de criação. Neste, o id a enviar no path é o do documento ao qual pretende adicionar a linha

{% openapi src="/files/BO41QI441Vao0H7YUkuO" path="/v1/commercial\_purchases\_payment\_lines/{id}" method="post" %}
[api.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2F2h8nz3uS2MI8cgmdxnVM%2Fapi.yaml?alt=media\&token=75c5b2a7-06b6-432a-a770-76f594a3f901)
{% endopenapi %}

### Remoção de linhas

Do mesmo modo, caso pretenda remover linhas de um documento, pode utilizar a seguinte rota, onde apenas tem de indicar o id da linha a remover, no path.

{% openapi src="/files/BO41QI441Vao0H7YUkuO" path="/v1/commercial\_purchases\_payment\_lines/{id}" method="delete" %}
[api.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2F2h8nz3uS2MI8cgmdxnVM%2Fapi.yaml?alt=media\&token=75c5b2a7-06b6-432a-a770-76f594a3f901)
{% endopenapi %}

### Consultar documento

Por fim, se pretender obter informações sobre um dado documento, pode utilizar a seguinte rota, onde deverá especificar o id do documento a analisar no path.

{% openapi src="/files/BO41QI441Vao0H7YUkuO" path="/v1/commercial\_purchases\_payments/{id}" method="get" %}
[api.yaml](https://1113994710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiTdJalKSEf3HO0XWftdu%2Fuploads%2F2h8nz3uS2MI8cgmdxnVM%2Fapi.yaml?alt=media\&token=75c5b2a7-06b6-432a-a770-76f594a3f901)
{% endopenapi %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cloudware.gitbook.io/documentacao-api/api-v1/pagamentos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
