Processa XML da NF-e no recebimento (PHP)
POST/purchase/:idpurchase/invoice
Handler PHP. Recebe XML cru de NF-e (<NFe> + <protNFe>) e popula StockKeepingUnitPurchaseXml, StockKeepingUnitPurchaseXmlProduct, StockKeepingUnitPurchaseXmlPayment, StockKeepingUnitMovement, StockKeepingUnitBatch, StockKeepingUnitLocation, AccountsPayableReceivable (1432 linhas, ~50 validações).
Matching de SKU: ImportType define a ordem (1=código fornecedor, 2=código de barras, 3=código de referência, 5=código integração). Sem ImportType, tenta em sequência. Quando PurchaseCreateSkuIfNotExists=1, cria SKU automaticamente para produtos não encontrados.
Cálculo de custo: vProd + vICMSST + vFCPST + vIPI - vDesc + vFrete + vOutro menos os impostos configurados para subtrair (PurchaseSubtractPis/Cofins/Icms). CFOPs em CFOPCostZero zeram o custo.
Lock distribuído: registro em LogScript chave PurchaseInvoicePost_<account>_<idpurchase> TTL 900 s — Processo já esta rodando, aguardar!.
Devolução (NF com tpNF=0 + refNFe): usa custo da NF original (proporcional).
Request
Responses
- 200
- 400
XML processado.
Mensagens BusinessException:
XML não é válido/XML não esta assinado/O arquivo não é um XML de Nota Fiscal válidoRecebimento não encontrado/O status atual não permite inserir XMLTipo documento padrão não cadastrado/Plano de contas padrão para compras não cadastradoXML já importado/Recebimento já tem XML importadoArmazém informado não cadastrado/Armazém informado não pertence ao centro de distribuiçãoProcesso já esta rodando, aguardar!(lock)SKU(s) não cadastrados: produto código:X EAN:Y(semPurchaseCreateSkuIfNotExists)SKU(s) sem alíquota de entrada de PIS/COFINS cadastrada(comRequirePisCofinsInboundAliquot=1)Certificado digital não encontrado/Erro validação SEFAZ: X(comValidadeInboundInvoice=1)Erro salvar Xml.