Vendas do PDV
Registra vendas numa sessão aberta (com baixa de estoque e NFC-e opcionais), lista as vendas e lê o recibo.
Listar vendas
/api/v1/vendor/erp/pdv/salesSellerLista as vendas do PDV
Parâmetros de consulta
session_iduuidregister_iduuidfromstringtostringpageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição: Listar vendas
Resposta: Listar vendas
Campos da resposta
salesarrayVendas da página, da mais nova para a mais antiga.
iduuidvendor_iduuidsession_iduuidtotal_centsintegerpayment_methodstringcashcreditdebitpixothercreated_atdatetimestock_appliedintegeritemsarraySó na criação: o carrinho. A listagem não traz itens.
product_iduuidproduct_namestringwarehouse_iduuidquantityintegerunit_price_centsintegerline_total_centsintegerestablishment_iduuidorder_iduuidnfe_record_iduuidemission_statusstringpendingauthorizedfailedfiscal_errorstringfailed.totalintegerErros: Listar vendas
| Status | Quando | Corpo |
|---|---|---|
| 500 | Um filtro de id não é um UUID válido (a plataforma devolve 500, não 400). | {"error":"failed to list sales","detail":"o valor \"xyz\" não é um uuid válido. Envie o identificador completo, com os 36 caracteres e os hífens. Corrija o campo e reenvie."} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Registrar venda
Grava uma venda numa sessão aberta. Com items, o total é calculado pelo servidor a partir das linhas (e o total_cents enviado é ignorado, exceto na emissão fiscal, veja o aviso). Sem itens, vale o total_cents informado, útil para venda avulsa sem carrinho. Dois comportamentos opcionais: baixar estoque e emitir a NFC-e (nota fiscal de consumidor).
/api/v1/vendor/erp/pdv/salesSellerRegistra uma venda no PDV
Corpo da requisição
session_iduuidobrigatóriopayment_methodstringobrigatóriocashcreditdebitpixothertotal_centsintegeritems com preço.itemsarrayCarrinho.
product_iduuidobrigatórioquantityintegerobrigatóriounit_price_centsintegerproduct_namestringwarehouse_iduuidemit_fiscalbooleanpadrão: falsetrue pede a emissão da NFC-e. Exige establishment_id e itens com produto e preço.establishment_iduuidcustomer_cpfstringcustomer_namestringExemplo de requisição: Registrar venda
Resposta: Registrar venda
Campos da resposta
iduuidvendor_iduuidsession_iduuidtotal_centsintegerpayment_methodstringcashcreditdebitpixothercreated_atdatetimestock_appliedintegeritemsarraySó na criação: o carrinho. A listagem não traz itens.
product_iduuidproduct_namestringwarehouse_iduuidquantityintegerunit_price_centsintegerline_total_centsintegerestablishment_iduuidorder_iduuidnfe_record_iduuidemission_statusstringpendingauthorizedfailedfiscal_errorstringfailed.Erros: Registrar venda
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | session_id em branco. | {"error":"vendorerp: session_id required"} |
| 400 | Forma de pagamento inválida. | {"error":"vendorerp: payment_method must be cash|credit|debit|pix|other"} |
| 400 | Item sem produto. | {"error":"vendorerp: item product_id required"} |
| 400 | Item com quantidade <= 0. | {"error":"vendorerp: item quantity must be > 0"} |
| 400 | Preço negativo. | {"error":"vendorerp: item unit_price_cents must be >= 0"} |
| 400 | Total final menor ou igual a zero. | {"error":"vendorerp: total_cents must be > 0"} |
| 400 | A sessão está fechada. | {"error":"session is not open"} |
| 400 | emit_fiscal sem establishment_id. | {"error":"vendorerp: estabelecimento obrigatório para emissão fiscal"} |
| 400 | emit_fiscal sem item com preço. | {"error":"vendorerp: emissão fiscal exige itens com produto e preço unitário"} |
| 400 | O ambiente não tem emissão fiscal configurada. | {"error":"vendorerp: emissão fiscal indisponível neste ambiente"} |
| 404 | A sessão não existe ou é de outro seller. | {"error":"session not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Recibo
Devolve os dados para imprimir o comprovante: caixa, sessão, total, pagamento e o vínculo fiscal quando houve emissão. Não traz as linhas do carrinho.
/api/v1/vendor/erp/pdv/sales/{id}/receiptSellerRecibo de uma venda
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Recibo
Resposta: Recibo
Campos da resposta
sale_iduuidvendor_iduuidregister_namestringsession_iduuidtotal_centsintegerpayment_methodstringcustomer_cpfstringcustomer_namestringemission_statusstringnfe_record_iduuidorder_iduuidcreated_atdatetimeErros: Recibo
| Status | Quando | Corpo |
|---|---|---|
| 404 | A venda não existe ou é de outro seller. | {"error":"venda não encontrada"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |