> For the complete documentation index, see [llms.txt](https://cloudware.gitbook.io/documentacao-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cloudware.gitbook.io/documentacao-api/api-v1/pagamentos.md).

# 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 %}
