# Converte um pedido de venda em uma venda Converte um pedido de venda em uma venda. Endpoint: POST /api/v3/sale-orders/convert-to-sale Version: 3.0.0 Security: OAuth2 ## Header parameters: - `CPlug-Company-Id` (number, required) Id da Empresa (Company). Você pode localizar os IDs das empresas no _endpoint_ de listagem de empresas. Example: 12 - `Idempotency-Key` (string, required) UUID aleatório gerado por você. Nós utilizamos esse header para evitar duplicidade de registros, ou seja, caso você não tenha recebido a resposta de alguma requisição e mandar o mesmo UUID, nós não duplicaremos o registro. ## Request fields (application/json): - `sale_orders` (array) Lista de pedidos de venda a serem convertidos. - `sale_orders.id` (integer, required) Id único do pedido de venda. Você pode localizar os IDs dos pedidos de venda no _endpoint_ de [listagem de pedidos de venda](#tag/SaleOrders/operation/get-sale-orders). Example: 123 - `sale_orders.convert_without_link` (boolean) Indica se o pedido de venda deve ser convertido sem linkar com a venda. Se true, o pedido de venda será convertido sem linkar com a venda. ## Response 200 fields (application/json): - `data` (object) - `data.sales` (array) Representa a lista de vendas que foram criadas - `data.sales.id` (integer) Identificador numérico único da venda. Example: 123 - `data.sales.number` (integer) Número da venda. Example: 123 - `data.sales.unique_id` (string) Identificador único da venda. Example: "cf2e0a5e-aa58-4181-9c9b-47702bd2be99" - `data.sales.sales_order_id` (integer) Identificador numérico único do pedido da venda, caso esta venda veio da conversão do pedido. Example: 456 - `data.sales.customer` (object) Dados do cliente - `data.sales.customer.id` (integer) Identificador único do Cliente. Example: 123 - `data.sales.customer.name` (string) Nome do cliente pessoa física ou Razão social. Example: "Nome do Cliente" - `data.sales.customer.type` (string) Tipo do cliente. - individual (Pessoa física) - company (Pessoa jurídica) Enum: "individual", "company" - `data.sales.customer.order_count` (integer) Quantidade de pedidos do cliente. Example: 10 - `data.sales.customer.last_order_id` (integer) ID do último pedido do cliente. Example: 123 - `data.sales.customer.birthday` (string) Data de nascimento do cliente Pessoa física. Formato "YYYY-MM-DD" Example: "1990-12-25" - `data.sales.customer.companies` (array) Lista de empresas que permite visualizar. - `data.sales.customer.companies.id` (integer) Identificador único da empresa Example: 1234 - `data.sales.customer.companies.name` (string) Nome fantasia da empresa. Example: "CPlug" - `data.sales.customer.companies.company_name` (string,null) Razão social da empresa. Example: "CPlug Tecnologia da Informação" - `data.sales.customer.company_name` (string) Razão social da pessoa jurídica. Example: "MyCompany" - `data.sales.customer.notes` (string) Observações do cliente. Example: "Minhas obervações do cliente" - `data.sales.customer.documents` (array) Lista de documentos do cliente. - `data.sales.customer.documents.type` (string, required) Indica o tipo do documento. - cpf: CPF Pessoa física - rg: RG Pessoa física - cnpj: CNPJ Pessoa jurídica - ie: Inscrição Estadual Pessoa jurídica - im: Inscrição Municipal Pessoa jurídica Enum: "cpf", "rg", "cnpj", "ie", "im" - `data.sales.customer.documents.identify` (string, required) Identificação do documento. Example: "11144477735" - `data.sales.customer.category` (object) Representa uma categoria de Cliente. - `data.sales.customer.category.id` (integer) Identificador único da categoria de cliente. Example: 123 - `data.sales.customer.category.name` (string) Nome da categoria. Example: "Ouro" - `data.sales.customer.category.is_wholesale` (boolean) Indica que todos os clientes vinculados à essa categoria irão pagar o valor de atacado dos produtos. - `data.sales.customer.category.discount_in_percent` (number) Desconto em percentual para a categoria. Todos os clientes vinculados à essa categoria receberão o desconto informado automáticamente. Example: 2.5 - `data.sales.customer.category.deleted` (boolean) Indica se está apagado ou não. - `data.sales.customer.category.created_at` (string) Data da última criação. Example: "2020-01-01T09:00:00-03:00" - `data.sales.customer.category.updated_at` (string) Data da última atualização. Example: "2020-01-01T09:00:00-03:00" - `data.sales.customer.created_at` (string) Data da criação do cliente. Example: "2020-01-01T09:00:00-03:00" - `data.sales.customer.updated_at` (string) Data da atualização do cliente. Example: "2020-01-01T09:00:00-03:00" - `data.sales.address` (object) Endereço da venda - `data.sales.address.id` (number) id do endereço. Example: 220 - `data.sales.address.nickname` (string) Apelido do endereço. Example: "Casa" - `data.sales.address.type` (string, required) Tipo do endereço. - default endereço principal. - shipping endereço de entrega. - charge endereço de cobrança. - other outro tipo de endereço. Enum: "default", "shipping", "charge", "other" - `data.sales.address.street` (string, required) Nome do logradouro (Rua, Avenida, praça, etc). Example: "Avenida Paulista" - `data.sales.address.number` (string) Número do logradouro. Example: "42 A" - `data.sales.address.city_id` (number) ID da cidade. Obrigatório quando o campo ibge_code não for passado. Example: 1234 - `data.sales.address.ibge_code` (string) Código do município segundo IBGE. Exemplo: O código do município segundo IBGE é 3550308 Obrigatório quando o campo city_id não for passado. Example: "3550308" - `data.sales.address.state` (string) Sigla do estado do endereço. Example: "SP" - `data.sales.address.city` (string) Nome da cidade. Example: "São Paulo" - `data.sales.address.neighborhood` (string) Nome do Bairro. Example: "Bela Vista" - `data.sales.address.complement` (string) Complemento do endereço. Example: "Apto 2550" - `data.sales.address.zip_code` (string) CEP do endereço. Example: "01311000" - `data.sales.observation` (string) Obervação da venda Example: "Sem copo" - `data.sales.status` (any) Status da venda. - canceled venda cancelada. - closed venda fechada. - in_preparation venda em preparação. - in_route venda em entrega. - open venda em aberta. - reserved venda reservada. - takeout venda para retirar. - waiting venda em espera. Enum: "canceled", "closed", "in_preparation", "in_route", "open", "reserved", "takeout", "waiting" - `data.sales.items` (array) Lista de produtos desta venda. - `data.sales.items.item_id` (integer) Id único do produto Example: 123 - `data.sales.items.id` (integer) Id único do produto na relação Example: 123 - `data.sales.items.grid_id` (integer) Id único do grid que este item faz parte. O grid_id é o ID do Product Grid. Example: 456 - `data.sales.items.amount` (number) quantidade Example: 5 - `data.sales.items.image` (string) imagem do produto Example: "mobile/totem/58723627fcebc230ab0d53ddf5f16e34/100/product_1_c1.jpeg" - `data.sales.items.name` (string) Nome do produto Example: "Banana" - `data.sales.items.unitary_value` (object) Valor unitário do item. É a soma do valor base deste item com a soma dos adicionais e com a soma do total dos atributos. Fórmula: unitary_value = valor base do item + sum(attributes.total_value) + sum(additionals.total_value) - `data.sales.items.unitary_value.amount` (number, required) Valor expresso como um número decimal das principais unidades monetárias Example: 99.95 - `data.sales.items.unitary_value.currency` (string, required) Código de moeda de 3 letras conforme definido pela ISO-4217 Example: "BRL" - `data.sales.items.total_value` (object) Valor total do item. É a multiplicação da quantidade pelo valor unitário deste item. Fórmula: total_value = amount * unitary_value - `data.sales.items.discount` (object) Desconto do produto - `data.sales.items.stock_id` (integer) Id único do estoque Example: 1234 - `data.sales.items.attributes` (array) Lista de atributos deste produto nesta venda. - `data.sales.items.attributes.id` (integer) Id único do atributo do produto na relação Example: 123 - `data.sales.items.attributes.attribute_id` (integer) Id único do atributo do produto Example: 123 - `data.sales.items.attributes.min_choices` (integer) Quantidade mínima de opções que devem ser selecionadas Example: 1 - `data.sales.items.attributes.max_choices` (integer) Quantidade máxima de opções que podem ser selecionadas Example: 2 - `data.sales.items.attributes.name` (string) Nome do atributo Example: "Atributo" - `data.sales.items.attributes.charge_from_quantity` (integer) Indica a partir de qual opção irá começar a cobrar. Ex: 3, indica se a partir da terceira opção que irá fazer parte do cálculo do total do atributo. Portanto, a primeira e a segunda opção será de graça, ou seja, essas duas opções deverão estar com o desconto igual ao valor total da opção. Example: 2 - `data.sales.items.attributes.total_value` (object) Valor total deste atributo. É a soma dos valores das opções. Fórmula: total_value = sum((option.amount * option.unitary_value) - option.discount) - `data.sales.items.attributes.price_calculation_type` (any) Tipo de cálculo no total do atributo. Ex: average, quer dizer a o valor total do atributo será a média dos valores das opções - Highest maior valor das opções - Average média dos valores das opções - Cumulative soma dos valores das opções Enum: "Highest", "Average", "Cumulative" - `data.sales.items.attributes.options` (array) Lista de opções de um atributo. - `data.sales.items.attributes.options.id` (integer) Id único da opção na relação Example: 123 - `data.sales.items.attributes.options.option_id` (integer) Id único da opção Example: 123 - `data.sales.items.attributes.options.code` (string) Código personalizado da opção Example: "code-123" - `data.sales.items.attributes.options.name` (string) Nome da opção Example: "Opção 1" - `data.sales.items.attributes.options.image` (string,null) URL da imagem da opção Example: "https://images.connectplug.com.br/4f01c1252eea.jpg" - `data.sales.items.attributes.options.unitary_value` (object) Valor unitário da opção - `data.sales.items.attributes.options.discount` (object) Desconto na opção - `data.sales.items.attributes.options.notes` (string) Observação da opção Example: "Sem cebola" - `data.sales.items.components` (array) Lista de componente que fazem parte deste combo, caso este item for um combo. - `data.sales.items.components.combo_item_id` (integer) Id único do produto combo na relação, caso este item pertence a um combo Example: 3 - `data.sales.items.components.additionals` (array) Lista de adicionais deste produto nesta venda. - `data.sales.items.components.additionals.additional_id` (integer) ID do adicional Example: 123 - `data.sales.items.components.additionals.amount` (integer) quantidade deste adicional Example: 1 - `data.sales.items.components.additionals.unitary_value` (object) Valor unitário deste adicional - `data.sales.items.components.additionals.total_value` (object) Valor total deste adicional - `data.sales.items.components.additionals.image` (string) imagem do adicional Example: "mobile/totem/58723627fcebc230ab0d53ddf5f16e34/100/product_1_c1_add1.jpeg" - `data.sales.items.components.additionals.name` (string) Nome do adicional Example: "Adicional do produto" - `data.sales.items.price_list_product_id` (integer) Id único da lista de produto do produto. Você pode localizar os IDs da lista de preço do produto no _endpoint_ de [listagem de produtos de uma lista de preço](#tag/PriceLists/operation/get-price-list-products). Example: 456 - `data.sales.items.combo_id` (integer) Id único do combo que este item faz parte. Você pode localizar os IDs dos combos no _endpoint_ de [listagem de produtos](#tag/Products/operation/get-products) com o filtro types=combo. Example: 456 - `data.sales.payments` (array) Lista de pagamentos. - `data.sales.payments.id` (integer) Id da único do método de pagamento na relação Example: 1 - `data.sales.payments.payment_method` (object) Método de pagamento utilizado na venda - `data.sales.payments.payment_method.id` (integer) Id único do método de pagamento Example: 123 - `data.sales.payments.payment_method.name` (string) Nome do método de pagamento Example: "Cartão de crédito" - `data.sales.payments.payment_method.allow_installment` (boolean) Indica se o método de pagamento permite parcelamento. Example: true - `data.sales.payments.bank_account_id` (integer) Id da conta bancária Example: 1 - `data.sales.payments.total_value` (object) valor total deste pagamento - `data.sales.payments.exchange_value` (object) valor do troco, quando o tipo de pagamento for dinheiro - `data.sales.payments.installments` (array) Lista de parcelas deste método de pagamento - `data.sales.payments.installments.id` (integer) Id da único da parcela do método de pagamento na relação Example: 1 - `data.sales.payments.installments.value` (object) valor desta parcela - `data.sales.payments.installments.due_date` (string) Data de vencimento da parcela Example: "2020-01-01T09:00:00-03:00" - `data.sales.payments.installments.observation` (string) observação desta parcela Example: "primeira parcela" - `data.sales.payments.card_brand` (object) Bandeira do cartão de crédito - `data.sales.payments.card_brand.id` (integer) Identificador único da bandeira. Example: 123 - `data.sales.payments.card_brand.name` (string) Nome da bandeira. Example: "Master" - `data.sales.payments.card_brand.icon` (string) ícone da bandeira. Example: "mastercard.png" - `data.sales.payments.card_brand.nfe_code` (string) Código da NFe da bandeira. Example: "02" - `data.sales.payments.card_contract_id` (integer) Id do contrato do cartão Example: 1 - `data.sales.payments.card_receipt` (object) Dados do recibo do cartão - `data.sales.payments.card_receipt.authorization` (string) Número da autorização do cartão. Normalmente é o número que aparece ao lado da palavra AUT, AUTORIZACAO, A Example: "999996" - `data.sales.payments.card_receipt.nsu` (string) Número sequencial único. Normalmente é o número que aparece ao lado da palavra DOC, CV, NSU. Example: "009999997" - `data.sales.payments.card_receipt.receipt` (string) Dados do recebio. Example: "SITEF\n00001\nBIN\nVIA - ESTABELECIMENTO\nCPLUG COMERCIO DE SOFTWARE LTDA\nAvenida da CPlug\nCuritibaTT000181\nEC:000000033999999 TERM:TFI038B9\n************9999\nAUT=999996 CV=009999997 DOC=999998\n18/03/20 17:27:57 C\nVISA\nCREDITO A VISTA\nVALOR 8.90\nTRANSACAO AUTORIZADA COM SENHA\n\n\nARQC: 35E8DF8A3234C308\nVISA CREDITO\nAID:A0000000031010\n(SiTef)" - `data.sales.seller` (object) Dados do vendedor - `data.sales.seller.id` (integer) Identificador único do vendedor. Example: 123 - `data.sales.seller.name` (string) Nome do vendedor. Example: "Fulano de tal" - `data.sales.seller.email` (string) E-mail do vendedor. Example: "vendedor@email.com" - `data.sales.seller.username` (null,string) Nome de usuário do vendedor. Example: "Vendedor" - `data.sales.seller.created_at` (string) Data da criação da vendedor. Example: "2020-01-01T09:00:00-03:00" - `data.sales.seller.updated_at` (string) Data da atualização da vendedor. Example: "2020-01-01T09:00:00-03:00" - `data.sales.seller.deleted_at` (string) Data que foi apagado o vendedor. Example: "2020-01-01T09:00:00-03:00" - `data.sales.carrier` (object) Dados do frete e do transportador - `data.sales.carrier.shipping_fee` (object) valor do frete - `data.sales.carrier.carrier_id` (integer) Id do transportador Example: 1 - `data.sales.total` (object) Resumo monetário da venda - `data.sales.total.value` (object) Valor total da venda já considerando o desconto e o frete e o valor de outras despesas - `data.sales.total.discount` (object) Valor de desconto na venda. Deixar em nulo quando um desconto no item for aplicado - `data.sales.total.total_value_ipi` (object) Valor total de IPI - `data.sales.total.other_expenses_value` (object) Valor total de outras despesas - `data.sales.source_type` (string) Canal de venda: - erp - pdv - store - totem Enum: "erp", "pdv", "store", "totem" - `data.sales.registration_date` (string) Data do registro da venda. Example: "2020-01-01T09:00:00-03:00" - `data.sales.delivery_type` (any) Tipo de entrega do pedido: - delivery entrega - withdrawal retirada Enum: "delivery", "withdrawal" - `data.sales.created_at` (string) Data da criação da venda. Example: "2020-01-01T09:00:00-03:00" - `data.sales.updated_at` (string) Data da atualização da venda. Example: "2020-01-01T09:00:00-03:00" ## Response 400 fields (application/json): - `code` (string, required) Código de erro. Example: "missing_headers" - `message` (string) Descrição do erro. Example: "error message" - `meta` (array) Dados adicionais sobre o erro. ## Response 422 fields (application/json): - `code` (string, required) Código de erro. Example: "uneditable_entity" - `message` (string) Descrição do erro. Example: "description error" - `meta` (array) Dados adicionais sobre o erro. - `meta.field` (string, required) Nome do campo no qual existe um erro de validação. Example: "name" - `meta.validations` (array) - `meta.validations.type` (string, required) Tipo da validação aplicada. Example: "Required" - `meta.validations.value` (array) Tipo de valor aplicável (esse campo pode ser vazio). ## Response 401 fields ## Response 404 fields