Documentos de venda

As rotas aqui descritas permitem gerir todos os processos relativos a documentos de venda: orçamentos, faturas-proforma, guias, faturas e notas.

Criação do documento

Cada documento é constituído por:

  1. Um cabeçalho

  2. Uma ou mais linhas

Após a sua criação, o documento fica no estado "em preparação", podendo, nesse estado, continuar a ser alterado. Para terminar definitivamente as alterações ao documento, assiná-lo e permitir a sua impressão, há depois que:

3. Finalizar o documento

Um documento finalizado já não pode ser alterado nem eliminado, apenas anulado.

1. Criação do cabeçalho

post
Body
Responses
200

OK

application/json
post
/commercial_sales_documents
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth. O payload JSON a enviar contém a seguinte informação:

  • NOTA 1: A série associada ao documento tem já que existir, e o seu "id" interno pode ser obtido por um

  • NOTA 2: Se o cliente for identificado pelo seu "id" interno tem já que existir, e o seu "id" interno pode ser obtido por um

  • NOTA 3: São também suportados dois "países" adicionais: "PT-AC" (Portugal, Açores) e "PT-MA" (Portugal, Madeira). Os países disponíveis podem ser consultados por um GET /countries, ou um em particular por um

  • NOTA 4: O "id" interno da conta bancária da empresa deve ser obtido por um

  • NOTA 5: O "id" interno da conta de caixa da empresa deve ser obtido por um

  • NOTA 6: O "id" interno do motivo de isenção deve ser obtido por um

  • NOTA 7: O "id" interno da moeda deve ser obtido por um

2. Criação da(s) linha(s)

As linhas podem referenciar três tipos de itens: produtos, serviços ou descritores (juros, imobilizado, impostos especiais...). Para cada um destes o payload é ligeiramente diferente, e cada um será descrito de seguida. Podem ainda ser criadas linhas apenas de descrição, com ou sem valor associado.

post
Body
Responses
200

OK

application/json
post
/commercial_sales_document_lines
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth. O payload JSON genérico a enviar contém a seguinte informação:

  • NOTA 1: O "id" interno do documento (cabeçalho) a que a linha pertence é o devolvido no campo "id" da resposta ao pedido de criação do cabeçalho (ver ponto 1. Criação do cabeçalho).

  • NOTA 2: O item (serviço, produto ou descritor) tem já que existir, e o seu "id" interno pode ser obtido por um

  • NOTA 3: Além de "PT" (Portugal, Continente) são também suportadas as duas regiões de IVA "PT-AC" (Portugal, Açores) e "PT-MA" (Portugal, Madeira).

  • Para os regimes de IVA no âmbito do OSS, os códigos de região são os mesmos que os códigos do país, podendo ser consultadas por um

  • NOTA 4: A unidade de medida tem já que existir, e o seu "id" interno pode ser obtido por um

  • NOTA 5: O "id" interno da taxa de IVA deve ser obtido por um

2.1. Criação de uma linha de produto

Para o caso particular de uma linha de produto, o payload contém a seguinte informação:

2.2. Criação de uma linha de serviço

Para o caso particular de uma linha de serviço, este payload contém a seguinte informação:

2.3. Criação de uma linha de descritor

Para o caso particular de uma linha de descritor, este payload contém a seguinte informação:

2.4. Criação de uma linha de descrição com valor

Para o caso particular de uma linha de descrição com valor, este payload contém a seguinte informação:

2.5. Criação de uma linha de descrição sem valor

Para o caso particular de uma linha de descrição sem valor, este payload contém a seguinte informação:

3. Finalização do documento

Após todas as linhas criadas, e se não houver mais nenhuma alteração ao documento, este pode ser finalizado.

patch
Path parameters
idintegerRequired

id of the document to update or finalize

Body
Responses
200

OK

application/json
patch
/commercial_sales_documents/{id}
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id do documento é o "id" interno do documento (cabeçalho) é o devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 1. Criação do cabeçalho). O payload JSON a enviar contém a seguinte informação:

Este pedido é equivalente ao pedido de alteração do cabeçalho do documento (ver Alteração do cabeçalho do documento). Por isso, a finalização do documento — que é a alteração do atributo "status" do cabeçalho — pode ser realizada juntamente com a alteração de outros atributos ou relações do cabeçalho, num único pedido.

Alteração do documento

Enquanto o documento não for finalizado, tanto o seu cabeçalho como qualquer uma das suas linhas podem ser alteradas a qualquer momento. Além disso, qualquer uma das linhas pode ser eliminada (ver Eliminação de uma linha), e novas linhas criadas e adicionadas (ver 2. Criação da(s) linha(s)).

Alteração do cabeçalho

patch
Path parameters
idintegerRequired

id of the document to update or finalize

Body
Responses
200

OK

application/json
patch
/commercial_sales_documents/{id}
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id do documento é o "id" interno do documento (cabeçalho), devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 1. Criação do cabeçalho). O payload JSON a enviar contém a seguinte informação:

A informação que pode ser enviada no pedido de alteração do cabeçalho do documento é a mesma que é enviada no pedido de criação, com a eventual adição do atributo "status" para finalizar o documento.

Alteração de uma linha

patch
Path parameters
idintegerRequired

id of the document line to update

Body
Responses
200

OK

application/json
patch
/commercial_sales_document_lines/{id}
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id da linha é o "id" interno da linha do documento, devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 2. Criação da(s) linha(s)). O payload JSON a enviar contém a seguinte informação:

A informação que pode ser enviada no pedido de alteração da linha do documento é a mesma que é enviada no pedido de criação. O exemplo de payload acima deve por isso ser ajustado consoante se trate da alteração duma linha de produto, de serviço, de descritor ou de descrição. É ainda possível alterar o tipo de linha (de uma linha de serviço para uma de produto, por exemplo).

Eliminação de uma linha

delete
Path parameters
idintegerRequired

id of the document line to delete

Responses
200

OK

No content

delete
/commercial_sales_document_lines/{id}
200

OK

No content

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id da linha é o "id" interno da linha do documento, devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 2. Criação da(s) linha(s)).

Eliminação do documento

Enquanto estiver em preparação, o documento pode ser eliminado.

delete
Path parameters
idintegerRequired

id of the document to delete

Responses
200

OK

No content

delete
/commercial_sales_documents/{id}
200

OK

No content

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id do documento é o "id" interno do documento (cabeçalho) é o devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 1. Criação do cabeçalho).

Anulação do documento

Após a sua finalização, o documento deixa de poder ser eliminado, podendo apenas ser anulado.

patch
Path parameters
idintegerRequired

id of the document to update or finalize

Body
Responses
200

OK

application/json
patch
/commercial_sales_documents/{id}
200

OK

No pedido acima, o access_token é o token de acesso válido devolvido pelo serviço de OAuth e o id do documento é o "id" interno do documento (cabeçalho) é o devolvido no campo "id" da resposta ao seu pedido de criação (ver ponto 1. Criação do cabeçalho). O payload JSON a enviar contém a seguinte informação:

Last updated