Pular para o conteúdo

Vendas / Pedidos

Pedidos são representados como vendas (Sale). Rascunho → itens → finalizar. Uma venda pode vir de OS via POST /service-orders/:id/to-sale; nesse caso o detalhe inclui serviceOrder e o finalize marca a OS como INVOICED.

Base: https://api.nivesistemas.com.br · 58 endpoints

Listar vendas

Query params

Campo Tipo Obrigatório Descrição
status string não DRAFT | COMPLETED | CANCELLED | DRAFT_CANCELLED. CANCELLED inclui também rascunhos cancelados
q string não Busca (nº pedido, cliente, CPF, vendedor)
customerId uuid não Filtrar por cliente
sellerId string não Filtrar por vendedor(es) (UUIDs separados por vírgula)
withoutSeller boolean não true = vendas sem vendedor
productId uuid não Filtrar vendas que contenham o produto
variantId uuid não Filtrar por grade/variante específica
campaignId string não UUID da campanha, ou “none” para vendas sem item de campanha
paymentMethodId string não Filtrar por forma(s) da venda (IDs separados por vírgula)
receivablePaymentMethodId string não Filtrar por forma(s) das baixas do crediário (IDs separados por vírgula)
page integer não Página
pageSize integer não Itens por página (máx. 100)
completedFrom date não YYYY-MM-DD — filtro completedAt (finalizadas/canceladas)
completedTo date não YYYY-MM-DD — filtro completedAt
updatedFrom date não YYYY-MM-DD — filtro updatedAt (rascunhos)
updatedTo date não YYYY-MM-DD — filtro updatedAt (rascunhos)
nfcePending boolean não true = COMPLETED com NFC-e EMIT_LATER sem documento
paidViaPaymentLink boolean não true = pagas via link de pagamento
sortBy string não Coluna de ordenação (ex.: updatedAt, completedAt, order)
sortDir string não asc | desc
Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Resumo para dashboard de vendas (rascunhos, hoje, NFC-e pendente)

Query params

Campo Tipo Obrigatório Descrição
q string não Mesma busca textual da listagem
customerId uuid não Filtrar por cliente
sellerId string não Filtrar por vendedor(es) (UUIDs separados por vírgula)
withoutSeller boolean não true = vendas sem vendedor
productId uuid não Filtrar vendas que contenham o produto
variantId uuid não Filtrar por grade/variante específica
campaignId string não UUID da campanha ou “none”
paymentMethodId string não Filtrar por forma(s) de pagamento (IDs separados por vírgula)
receivablePaymentMethodId string não Filtrar por forma(s) das baixas do crediário (IDs separados por vírgula)

Resposta: draftCount, draftTotalCash, completedTodayCount, completedTodayRevenue, nfcePendingCount, paidViaPaymentLinkCount, ecommerceOrdersActive, ecommerceAFaturarCount

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/summary" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Criar venda em rascunho

Corpo (JSON)

Campo Tipo Obrigatório Descrição
customerId uuid não Cliente (opcional)
sellerId uuid não Vendedor legado (opcional)
sellerIds uuid[] não Vendedores (comissão rateada)
priceListId uuid não Tabela de preços
pendingInstagramHandle string não Instagram pendente (@usuario) quando ainda não há cliente

Resposta: 201 Created — venda com status DRAFT

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"customerId":"00000000-0000-0000-0000-000000000000","sellerId":"00000000-0000-0000-0000-000000000000","sellerIds":null,"priceListId":"00000000-0000-0000-0000-000000000000","pendingInstagramHandle":""}'

Detalhe da venda com itens e pagamentos

Parâmetros de rota: id

Resposta: Inclui serviceOrder ({ id, orderNumber, status }) quando a venda fatura uma OS.

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Cupom não fiscal 80 mm (somente venda sem NFC-e emitida)

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/non-fiscal-receipt-html" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

PDF A4 do pedido (somente venda sem NFC-e emitida)

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/order-pdf" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Enviar conferência da venda por e-mail ao cliente

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
email string sim E-mail de destino
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/notify-receipt" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"email":""}'

Enviar XML e PDF das notas autorizadas da venda (NFC-e/NF-e e/ou NFS-e)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
email string sim E-mail de destino
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/send-fiscal-email" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"email":""}'

Alterar data de conclusão de venda importada (LEGACY_IMPORT)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
saleDate string sim AAAA-MM-DD
Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}/completed-at" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"saleDate":""}'

Atualizar venda (cliente, vendedor, observações, descontos)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
customerId uuid não Cliente
sellerId uuid não Vendedor
sellerIds uuid[] não Vendedores (comissão rateada)
notes string não Observações
shippingAmount number não Valor de entrega (frete financeiro)
priceListId uuid não Tabela de preços
pendingInstagramHandle string não Instagram pendente
discountType string não NONE | PERCENT | FIXED
discountValue number não Valor do desconto
couponId uuid não Cupom aplicado
Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"customerId":"00000000-0000-0000-0000-000000000000","sellerId":"00000000-0000-0000-0000-000000000000","sellerIds":null,"notes":"","shippingAmount":0,"priceListId":"00000000-0000-0000-0000-000000000000","pendingInstagramHandle":"","discountType":"","discountValue":0,"couponId":"00000000-0000-0000-0000-000000000000"}'

Gerar link de pagamento para venda em rascunho

Parâmetros de rota: id

Resposta: 201 — { link, url } com token e expiresAt

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/payment-link" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Adicionar item à venda

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
variantId uuid sim ID da variante do produto
quantity integer sim Quantidade
unitPriceCash number não Preço à vista manual
unitPriceCredit number não Preço a prazo manual
lineNotes string não Observação do item
discountType string não NONE | PERCENT | FIXED
discountValue number não Desconto do item
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/items" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"variantId":"00000000-0000-0000-0000-000000000000","quantity":1,"unitPriceCash":0,"unitPriceCredit":0,"lineNotes":"","discountType":"","discountValue":0}'

Remover vários itens da venda (rascunho)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
itemIds uuid[] sim IDs dos itens do carrinho a remover
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/items/bulk-remove" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"itemIds":null}'

Alterar item (quantidade, preços, desconto, notas)

Parâmetros de rota: id, itemId

Corpo (JSON)

Campo Tipo Obrigatório Descrição
quantity integer não Nova quantidade
unitPriceCash number não Preço à vista
unitPriceCredit number não Preço a prazo
lineNotes string não Observação do item
discountType string não NONE | PERCENT | FIXED
discountValue number não Desconto do item
Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}/items/{itemId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"quantity":1,"unitPriceCash":0,"unitPriceCredit":0,"lineNotes":"","discountType":"","discountValue":0}'

Aplicar preço de campanha ao item

Parâmetros de rota: id, itemId

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/items/{itemId}/campaign-price" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Remover preço de campanha do item

Parâmetros de rota: id, itemId

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/{id}/items/{itemId}/campaign-price" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Remover item da venda

Parâmetros de rota: id, itemId

Resposta: 204 No Content

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/{id}/items/{itemId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Excluir venda em rascunho

Parâmetros de rota: id

Resposta: 204 No Content — apaga o registro. Prefira POST /cancel-draft para manter histórico.

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Cancelar rascunho/condicional sem excluir

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
reason string não Motivo opcional (máx. 500)

Resposta: 200 — { id, status: DRAFT_CANCELLED, cancelledAt, orderNumber, itemCount }. Peças voltam à loja; o pedido permanece na aba Canceladas.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/cancel-draft" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"reason":""}'

Finalizar venda (baixa estoque, registra pagamentos). Se a venda veio de OS (to-sale), marca a OS como INVOICED, vincula NFS-e à OS/venda e cancela recebíveis abertos da OS.

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
priceBasis string não CASH | CREDIT | MIXED (opcional)
payments array sim Lista: paymentMethodId, amount, installments?, amountTendered?, pixChargeId?, cardPaymentId?, storeCreditId?, …
customerId uuid não Cliente
sellerId uuid não Vendedor legado
sellerIds uuid[] não Vendedores (comissão rateada)
discountType string não NONE | PERCENT | FIXED
discountValue number não Valor do desconto
skipCashTableDiscount boolean não Pular desconto da tabela à vista
useCashPriceOnCredit boolean não Crediário usando preço à vista
notes string não Observações
nfceIntent string não Intent do documento de mercadoria (NFC-e 65 ou NF-e 55): EMIT_NOW | EMIT_LATER | NON_TAXABLE | SKIP
nfseIntent string não Intent da NFS-e (serviço): EMIT_NOW | EMIT_LATER | SKIP. Se a OS vinculada já tiver NFS-e autorizada/pendente, não reemite.
goodsDocumentType string não Override do tipo documental de mercadoria: NFCE_65 | NFE_55 | NONE. Sem override, usa a preferência do cliente e em seguida o resolver (canal / contribuinte).
transactionIntermediary object não Intermediador da transação (NT 2020.006). Omitido = sem marketplace (balcão/remessa). indIntermed: 0 | 1; se 1, informe cnpj e registrationId (idCadIntTran).
nonTaxableReason string não Motivo da não tributação
nonTaxableTaxId string não CPF/CNPJ para não tributável
loyaltyRedeemPoints integer não Pontos de fidelidade a resgatar
settleReceivables object não { amount, paymentMethodId, discountAmount?, cardPaymentId?, installments?, notes? } — baixa de crediário junto com a venda
notifyCustomerWhatsApp boolean não Enviar comprovante ao cliente no WhatsApp. Omitido mantém o envio automático.
customerWhatsAppPhone string não WhatsApp informado no PDV quando o cliente ainda não tem número
nfeExtras object | null não NF-e 55: transporte e dados opcionais { freightMode?, vehicle?, trailers?, volumes?, insurance?, otherExpenses?, taxpayerNote?, fiscoNote? }. Só vale com goodsDocumentType NFE_55; ignorado na NFC-e.
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/finalize" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"priceBasis":"","payments":[],"customerId":"00000000-0000-0000-0000-000000000000","sellerId":"00000000-0000-0000-0000-000000000000","sellerIds":null,"discountType":"","discountValue":0,"skipCashTableDiscount":true,"useCashPriceOnCredit":true,"notes":"","nfceIntent":"","nfseIntent":"","goodsDocumentType":"","transactionIntermediary":null,"nonTaxableReason":"","nonTaxableTaxId":"","loyaltyRedeemPoints":1,"settleReceivables":null,"notifyCustomerWhatsApp":true,"customerWhatsAppPhone":"","nfeExtras":null}'

Prévia do checkout da NF-e 55 (frete, volumes, duplicatas, avisos)

Parâmetros de rota: id

Resposta: { saleId, shippingAmount, carrier, calculatedVolume, effectiveVolume, extras, duplicates[{ number, dueDate, amount }], hazardItems[{ description, text, warnings }], warnings[], locked }. Funciona com a venda em rascunho; locked = NF-e já autorizada.

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/nfe-checkout" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Gravar transporte e dados opcionais da NF-e 55 (venda finalizada, NF-e ainda não autorizada)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
nfeExtras object | null sim freightMode (0|1|2|3|4|9), vehicle { plate, uf, rntc? }, trailers[] (até 5), volumes { quantity, species, brand, number, netWeight, grossWeight, seals[] }, insurance e otherExpenses (R$, fatias do frete cobrado), taxpayerNote e fiscoNote (até 2000). null limpa tudo.

Resposta: { nfeExtras }. 409/400 com error em português quando a NF-e não pode mais ser alterada ou os dados são inválidos.

Janela do terminal
curl -X PUT "https://api.nivesistemas.com.br/sales/{id}/nfe-extras" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"nfeExtras":null}'

Alterar cliente da venda

Parâmetros de rota: id

Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}/customer" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Alterar vendedor

Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/bulk/seller" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Listar jobs

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/bulk/seller/apply-defaults/jobs" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

DELETE /sales/bulk/seller/apply-defaults/jobs/:jobId

Seção intitulada “DELETE /sales/bulk/seller/apply-defaults/jobs/:jobId”

Cancelar / remover job

Parâmetros de rota: jobId

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/bulk/seller/apply-defaults/jobs/{jobId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Aplicar vendedor padrão em lote

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/bulk/seller/apply-defaults" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Listar jobs

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/bulk/seller/recalc-commissions/jobs" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

DELETE /sales/bulk/seller/recalc-commissions/jobs/:jobId

Seção intitulada “DELETE /sales/bulk/seller/recalc-commissions/jobs/:jobId”

Cancelar / remover job

Parâmetros de rota: jobId

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/bulk/seller/recalc-commissions/jobs/{jobId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Recalcular comissões em lote

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/bulk/seller/recalc-commissions" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Listar agendas de vendedor

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/seller-schedules" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Criar agenda de vendedor

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/seller-schedules" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Listar jobs

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/seller-schedules/apply/jobs" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Cancelar / remover job

Parâmetros de rota: jobId

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/seller-schedules/apply/jobs/{jobId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Detalhe da agenda

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/seller-schedules/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Atualizar agenda

Parâmetros de rota: id

Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/seller-schedules/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Excluir agenda

Parâmetros de rota: id

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/seller-schedules/{id}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Prévia da aplicação da agenda

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/seller-schedules/{id}/preview" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Aplicar

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/seller-schedules/{id}/apply" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Alterar vendedor

Parâmetros de rota: id

Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}/seller" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Recalcular preços

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/recalculate-prices" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Recalcular taxas de cartão da venda

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/recalculate-card-fees" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Registrar impressão do carnê/termo de crédito

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/credit-term-printed" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Cancelar (senha de administrador, usuário liberado ou pedido de aprovação)

Parâmetros de rota: id

Resposta: Mesmas regras do reopen-draft: sem senha de administrador, usuário liberado executa na hora e os demais recebem 202 PENDING_APPROVAL.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/cancel" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Mesclar rascunhos de venda

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/merge" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Enviar link de pagamento por WhatsApp

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/payment-link/whatsapp" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Finalizar venda paga por link

Parâmetros de rota: id

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/finalize-paid-link" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Promoções com brinde que a venda em aberto atinge

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/promotions/eligibility" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Adicionar o brinde de uma promoção à venda

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
promotionId uuid sim Promoção
productId uuid sim Produto brinde
variantId uuid não Variante
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/promotion-gifts" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"promotionId":"00000000-0000-0000-0000-000000000000","productId":"00000000-0000-0000-0000-000000000000","variantId":"00000000-0000-0000-0000-000000000000"}'

Marcar/desmarcar item como brinde (cortesia)

Parâmetros de rota: id, itemId

Corpo (JSON)

Campo Tipo Obrigatório Descrição
isGift boolean sim Brinde
Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/items/{itemId}/gift" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"isGift":true}'

Reabrir venda finalizada como rascunho (senha de administrador, usuário liberado ou pedido de aprovação)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
username string não Usuário administrador (opcional: libera na hora)
password string não Senha do administrador (opcional)
justification string não Justificativa

Resposta: Sem credenciais: usuário liberado executa na hora; os demais recebem 202 { status: PENDING_APPROVAL } e o administrador responde em /aprovacoes ou pelo WhatsApp.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/reopen-draft" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"username":"","password":"","justification":""}'

Quantidade de rascunhos abertos por cliente

Query params

Campo Tipo Obrigatório Descrição
allLocations boolean não Considera todas as filiais (padrão: só a filial do usuário)

Resposta: { counts } — mapa customerId para número de vendas em rascunho com cliente.

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/draft-customer-counts" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

HTML do pedido (para impressão), servido como text/html

Parâmetros de rota: id

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/order-html" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Prévia da natureza da operação que a NF-e 55 da venda vai declarar

Parâmetros de rota: id

Query params

Campo Tipo Obrigatório Descrição
customerId uuid não Cliente a considerar no cálculo (omitido = o da venda; vazio = sem cliente)

Resposta: { operationType (SALE_INTERNAL ou SALE_INTERSTATE), originUf, destUf, customerUfMissing, contributor, cfops, nature }. Usa o mesmo motor tributário da finalização.

Janela do terminal
curl -X GET "https://api.nivesistemas.com.br/sales/{id}/nfe-operation" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Copiar a venda para um novo rascunho (sem pagamentos), sem alterar a original

Parâmetros de rota: id

Resposta: 201 Created — { sale, copiedItems, skippedItems, skippedSellers, droppedCoupon }. Copia cliente, vendedores, lista de preço, canal, itens com preço e descontos, frete e observações. Não copia pagamentos, documentos fiscais, cupom nem fidelidade; itens de produtos inativos e vendedores inativos são ignorados. 400 se a venda não tem itens ou nenhum item pode ser copiado.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/duplicate-draft" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"

Adicionar embalagem para presente à venda em rascunho (a um item ou geral)

Parâmetros de rota: id

Corpo (JSON)

Campo Tipo Obrigatório Descrição
saleItemId uuid não Item da venda; omitido = embalagem geral da venda
optionId uuid não Modelo cadastrado em /gift-wraps; sem modelo, use customName e customUnitPrice
customName string não Nome livre (até 80; padrão “Embalagem para presente”)
customUnitPrice number não Valor unitário livre. Também vale para sobrepor o valor do modelo; exige valor livre habilitado na loja e a permissão sales.gift_wrap_custom_price
quantity integer não Quantidade de 1 a 999 (padrão 1)

Resposta: 201 Created — a venda recalculada. 400 se a venda não é rascunho, o recurso está desligado, o modelo está inativo ou o item não pertence à venda; 403 sem permissão para valor livre.

Janela do terminal
curl -X POST "https://api.nivesistemas.com.br/sales/{id}/gift-wraps" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"saleItemId":"00000000-0000-0000-0000-000000000000","optionId":"00000000-0000-0000-0000-000000000000","customName":"","customUnitPrice":0,"quantity":1}'

Alterar embalagem da venda em rascunho

Parâmetros de rota: id, giftWrapId

Corpo (JSON)

Campo Tipo Obrigatório Descrição
optionId uuid não Outro modelo cadastrado
customName string não Nome livre (até 80)
customUnitPrice number não Valor unitário livre (mesmas regras de permissão do POST)
quantity integer não Quantidade de 1 a 999

Resposta: A venda recalculada. 404 se a embalagem não pertence à venda.

Janela do terminal
curl -X PATCH "https://api.nivesistemas.com.br/sales/{id}/gift-wraps/{giftWrapId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo" \
-H "Content-Type: application/json" \
-d '{"optionId":"00000000-0000-0000-0000-000000000000","customName":"","customUnitPrice":0,"quantity":1}'

Remover embalagem da venda em rascunho

Parâmetros de rota: id, giftWrapId

Resposta: A venda recalculada. 404 se a embalagem não pertence à venda.

Janela do terminal
curl -X DELETE "https://api.nivesistemas.com.br/sales/{id}/gift-wraps/{giftWrapId}" \
-H "Authorization: Bearer sl_live_exemplo_abc123xyz789" \
-H "X-Store-Slug: loja-demo"