Pular para o conteúdo principal

Guia de Compras

Endpoint: POST /gateway/invoice/purchases

Identificadores ilustrativos

Valores como "documentTypeId": 1 ou "entityKeyId": "F001" são ilustrações. Resolva os identificadores correctos em cada tenant (GET /gateway/document-type, catálogo de entidades, armazéns, impostos, tipos de pagamento). Ver Resolver IDs de tipo de documento.

Crie documentos de compra a fornecedor com POST /gateway/invoice/purchases. Após criar, consulte o documento com GET /gateway/invoice/invoices/{id}. Os preços de linha usam taxIncludedUnitPrice (com imposto) e netUnitPrice (sem imposto). Identifique o fornecedor com entityKeyId e/ou entityVat. O endpoint aceita apenas naturezas de compra, resolve preços a partir do catálogo do fornecedor quando necessário e actualiza dados de custo artigo/fornecedor após a emissão.

Para liquidar documentos de compra em aberto, use pagamentos a fornecedor (PF) no Guia de Recibos e Pagamentos a Fornecedores.


Visão geral​

TópicoComportamento
EndpointPOST /gateway/invoice/purchases
CorpoVer Cria um documento de compra. Preços de linha: taxIncludedUnitPrice / netUnitPrice.
EntidadeFornecedor — entityKeyId e/ou entityVat; fallback de consumidor final não permitido
Tipo de documentoTem de ser um tipo de documento de compra
Após criar201 + Location → GET /gateway/invoice/invoices/{id}

Naturezas suportadas (Onda A)​

Apenas estas naturezas são aceites pelo endpoint actual:

NaturezaUso típico
FTFFactura de fornecedor
FSFFactura simplificada de compra
FRFFactura-recibo de compra
NEFEncomenda a fornecedor
ORFOrçamento / pedido de compra
FFFFactura de compra (caminho fiscal alternativo, quando configurado)
DIFDocumento interno de compra
GRFGuia de recepção de mercadorias
GTFGuia de transporte (compra)
GAFGuia de consignação / remessa (compra)
GCFGuia de consignação global (compra)

Indisponíveis neste endpoint​

São rejeitadas hoje (incluindo qualquer outra natureza fora da tabela):

  • NCF, NDF, GDF, NGT, FCF
  • VDF e qualquer outra natureza fora da tabela acima

FCF e VDF têm lógica de actualização de custos preparada no motor, mas não são emitíveis por POST /gateway/invoice/purchases nesta versão.

Uma natureza rejeitada devolve Purchase.DocumentNature.NotSupported.


Criar uma compra (FTF)​

POST /gateway/invoice/purchases
Content-Type: application/json
Authorization: Bearer {token}
X-Timezone: Europe/Lisbon
{
"serieId": 1,
"documentTypeId": 1,
"entityKeyId": "F001",
"entityDescription": "Fornecedor Exemplo, Lda",
"entityVat": "502123456",
"entityAddress": "Rua do Fornecedor, 10",
"entityPostalCode": "1000-000",
"entityCity": "Lisboa",
"entityCountry": "PT",
"paymentModeId": 1,
"docReference": "ENC-2026-001",
"obs": "Factura de compra FTF",
"payments": [
{
"paymentTypeId": 1,
"amount": 1230
}
],
"documentBodies": [
{
"itemKeyId": "ART001",
"itemDescription": "Artigo comprado",
"quantity": 10,
"netUnitPrice": 8.5,
"taxId": 1,
"originWarehouse": 1,
"supplierItemId": "FORN-ART001"
}
]
}

Referência da API: Cria um documento de compra para um fornecedor.


Regras do fornecedor​

  • Indique entityKeyId e/ou entityVat. Omitir ambos devolve Purchase.Supplier.Required.
  • Com entityKeyId, a API resolve o fornecedor pela chave. Se apenas indicar entityVat, resolve-o pelo NIF.
  • A entidade tem de ser um fornecedor. Entidades inválidas / que não sejam fornecedor devolvem Purchase.Supplier.Invalid.
  • Não há fallback de consumidor final.
  • O tipo de documento tem de ser de compra; caso contrário Purchase.DocumentType.Required (ou erros relacionados de tipo de documento).

Pagamentos​

Os documentos de compra usam a mesma estrutura payments[] das vendas. Mecanismos permitidos nas compras:

CódigoDescriçãopaymentBankDetail
NUNumerárioNão permitido
OUOutrosNão permitido
CCCartão de créditoNão permitido
CDCartão de débitoNão permitido
CSCrédito / conta de fornecedorNão permitido
TBTransferência bancáriaObrigatório (accountNumber)
CHChequeObrigatório (checkSequenceNumber)

Transferência e cheque exigem payments[].paymentBankDetail — ver Detalhe bancário do pagamento.

Pagamentos opcionais (documentos de trabalho / guias)​

Quando o tipo de documento tem ambos CashierFlow e CheckingAccountFlow inactivos (zero), payments pode ser omitido — típico em documentos de trabalho e em muitas guias (por exemplo NEF, ORF, GRF, GTF, GAF, GCF, conforme a configuração). A caixa não é obrigatória nesse caso.


Prioridade de preço de linha​

Para linhas de compra, a resolução do custo unitário segue esta ordem:

  1. Preço explícito no corpo (netUnitPrice / taxIncludedUnitPrice, conforme aplicável)
  2. Preço do catálogo do fornecedor para o par fornecedor + artigo
  3. Custo do artigo na ficha do item

Se o artigo estiver configurado com custo fixo, o preço do catálogo do fornecedor é ignorado na resolução de custo (prevalece o custo fixo do artigo).


supplierItemId (opcional)​

Cada linha pode incluir supplierItemId — a referência do artigo no catálogo do fornecedor.

  • Quando omitido, a API resolve a referência a partir do catálogo do fornecedor para o artigo.
  • Quando enviado, identifica / actualiza a linha correspondente do catálogo do fornecedor.

Após a emissão: sincronização do catálogo do fornecedor​

Após uma criação com sucesso, nas compras suportadas a API actualiza o catálogo do fornecedor:

  • Cria ou actualiza linhas de catálogo elegíveis
  • Exclui linhas especiais (informativas / especiais sem stock, conforme configuração)
  • Deduplica por fornecedor + artigo (+ referência do fornecedor, quando aplicável)

Se a sincronização falhar depois de o documento ser criado, a API pode devolver Purchase.ItemSync.Failed.


Histórico de custos e preço líquido de compra global​

Histórico de custos​

Para linhas elegíveis com quantidade não nula e custo diferente do valor anterior, a API regista histórico de custos, incluindo artigos com custo fixo.

Preço líquido de compra global​

Entre as naturezas actualmente aceites por este endpoint, apenas FTF, FRF e FSF podem actualizar o preço líquido de compra global do artigo. As actualizações respeitam:

  • Descontos de linha / cabeçalho
  • Custo fixo do artigo
  • Quantidade e total líquido
  • Compras posteriores que não devem ser sobrescritas incorrectamente

De novo: FCF e VDF ficam preparados para actualização de custos numa versão posterior, mas não são emitíveis aqui ainda.


Erros comuns​

CódigoSignificado
Purchase.DocumentType.RequiredO tipo de documento não é de compra / tipo de compra obrigatório
Purchase.DocumentNature.NotSupportedNatureza fora do conjunto suportado (Onda A)
Purchase.Supplier.RequiredFaltam entityKeyId e entityVat
Purchase.Supplier.InvalidA entidade não é um fornecedor válido (ex.: consumidor final)
Purchase.ItemSync.FailedFalhou a sincronização do catálogo do fornecedor / custos após a criação

Lista completa: Referência de erros da Invoice API.


Recursos relacionados​


Última actualização: 8 de setembro de 2026