API de Sellout

Criada por Adrier Santos, Modificado em Ter, 28 Mai na (o) 10:43 PM por Adrier Santos

API Sellout

  1. Autenticação
  2. Recomendações
  3. Envio de Vendas
  4. Envio de Clientes
  5. Envio de Estoque

Autenticação

Saiba mais sobre a autenticação em Documentação API Autenticação

Recomendações

  • Enviar até 500 registros por requisição ou 10mb (enviar a maior quantidade possível de uma única vez)
  • Limitar o número de envios simultâneos em até 5 threads

Envio de Vendas

As vendas, são todos os tickets (pedidos) gerados, sejam eles concluídos com sucesso ou cancelados.

POST <https://sellout.newtail.com.br/v1/sales/**{store_id}**/**{pos_id}**>

Path Parameters

  • store_id: Código da loja onde a venda foi realizada
  • pos_id: Código do PDV onde a venda foi realizada (se não existir o pos_id, enviar 0)

Body

AtributoDescriçãoTipoObrig.PadrãoRecomendado
invoice_idIdentificador único da vendaStringSim  
currencyIdentifica em qual moeda a venda foi pagaStringNãoBRL 
total_priceIdentifica o total da vendaFloatSim  
sub_totalIdentifica o total dos itens da venda sem descontoFloatSim  
additional_costIdentifica o total de acréscimo na vendaFloatNão0 
total_discountIdentifica o total de desconto da vendaFloatNão0 
shipping_costIdentifica o total da entrega na vendaFloatNão  
channelIdentifica o canal de origem da venda.
Exemplos:
- ifood
- rappi
- local
- whatsapp
- commerce
StringSim  
status

Identifica o status da nota fiscal.

- issued: para venda feita com sucesso

- cancelled: para venda cancelada

StringSim  
delivery_type

Diz qual é o tipo de entrega do pedido.

- delivery: para entrega

- pick_up: retirada

StringSim  
purchase_type

Diz qual foi o tipo de compra.

- online: para compras feitas online
- local: para compras feitas no local

StringSim  
created_at

Data de criação da venda

StringSim  
customer

Informações do Cliente Final

ObjectNão  
customer.id

Identificação única do cliente

StringNão  
customer.name

Nome do Cliente Final

StringNão  
customer.gender

Identifica o gênero do cliente

StringNão  
customer.date_of_birth

Identifica a data de nascimento do cliente

StringNão  
customer.document

Identifica unicamente o cliente final com o código do registro. ex.: CPF ou CNPJ.

StringNão  
Items

Lista de Itens que foram vendidos naquele pedido

Array<Object>Sim  
items[].sku

Identifica unicamente o Produto com um código interno

StringSim  
items[].parent_sku

Identifica unicamente o Produto Pai com um código interno

StringNãonull 
items[].original_sku

Identifica o produto substituído (caso houver)

StringNão  
items[].unit_measurement

Indica como o produto foi vendido.

- KG para venda por kilo
- UN para venda por unidade

StringSim  
items[].name

Indica qual é o nome do produto

String   
items[].gtins

Indica a lista de Código de Barras do produto

Array<String>Sim  
items[].total_value

Indica qual foi o valor total vendido do produto. (Quantidade * Preço Unitário)

- Discount.

Float   
items[].unit_price

Indica qual o Preço por Unidade do Produto

Float   
items[].quantity

Indica a quantidade vendida do produto

Float   
items[].discount

Indica a valor de desconto dado ao produto

Float   
items[].brand

Indica qual é o nome da marca do item vendido

StringNão Sim
items[].categories

Indica quais são as categorias do item vendido

Array<String>Sim[] 
payments[].type

Identifica qual o tipo de pagamento utilizado.

* cash
* credit_card
* debit_card
* other

StringSim  
payments[].total

Identifica o total do pagamento

FloatSim  
payments[].card_first_numbers

Identifica o bin do cartão

StringNão  
payments[].card_last_numbers

Identifica os últimos dígitos do cartão

StringNão  
payments[].autorization_id

Identifica o código de autorização da transação

StringNão  
billing_address

Informações do endereço de cobrança

ObjectNão  
billing_address.street

Identifica a rua

StringSim  
billing_address.reference

Identifica uma possível referência do endereço

StringNão  
billing_address.number

Identifica o número

StringSim  
billing_address.neighborhood

Identifica o bairro

StringSim  
billing_address.city

Identifica a cidade

StringSim  
billing_address.region

Identifica a UF

StringSim  
billing_address.country

Identifica o país

StringNão  
billing_address.complement

Identifica o complemento

StringNão  
billing_address.full_name

Nome do pagador

StringNão  
billing_address.document

Documento (RG ou CPF) do responsável pela cobrança

StringNão  
shipping_address

Informações do endereço de entrega

ObjectNão  
shipping_address.street

Identifica a rua

StringSim  
shipping_address.reference

Identifica uma possível referência do endereço

StringNão  
shipping_address.number

Identifica o número

StringSim  
shipping_address.neighborhood

Identifica o bairro

StringSim  
shipping_address.postcode

Código postal

StringNão  
shipping_address.city

Identifica a cidade

StringSim  
shipping_address.region

Identifica a UF

StringSim  
shipping_address.country

Identifica o país

StringNão  
shipping_address.complement

Identifica o complemento

StringNão  
shipping_address.full_name

Nome de quem recebeu o pedido

StringNão  
shipping_address.main_phone

Telefone de quem recebeu o pedido

StringNão  
shipping_address.document

Documento (RG ou CPF) de quem recebeu o pedido

StringNão  


[
    {
        "invoice_id": "53478534",
        "currency": "BRL",
        "total_discount": 2.60,
        "additional_cost": 0.00,
        "total_price": 48.55,
        "shipping_cost": 10.0,
        "sub_total": 38.55,
        "channel": "whatsapp",
        "status": "issued",
        "created_at": "2019-09-13T15:30:25.000-0300",
        "customer": {
            "id": "123",
            "name": "João Silva",
            "document": "62167733305",
            "gender": "male",
            "date_of_birth": "2000-01-01"
        },
        "items": [
            {
                "sku": "01",
                "gtins": [
                    "123"
                ],
                "name": "banana prata",
                "quantity": 3.5,
                "unit_price": 9.70,
                "total_value": 31.35,
                "discount": 2.60,
                "unit_measurement": "kg",
            },
            {
                "sku": "02",
                "gtins": [
                    "7896008100216"
                ],
                "name": "coca cola",
                "quantity": 2.00,
                "unit_price": 3.60,
                "total_value": 7.20,
                "unit_measurement": "un",
            }
        ],
        "shipments": [
            {
                "delivery_type": "delivery",
                "carrier_id": "123",
                "items": [
                    "01",
                    "02"
                ],
                "schedule_date": "2022-02-07",
                "schedule_time_start_at": "14:00",
                "schedule_time_finish_at": "15:00"
            }
        ],
        "payments": [
            {
                "type": "cash",
                "total": 48.55,
                "card_first_numbers": "123456",
                "card_last_numbers": "4776",
                "autorization_id": "123"
            }
        ],
        "billing_address": {
            "street": "Avenida Teste",
            "reference": null,
            "number": "1000",
            "neighborhood": "Bairro",
            "postcode": "22790707",
            "city": "Rio de Janeiro",
            "region": "RJ",
            "country": "Brasil",
            "complement": "Casa 2",
            "full_name": "Joao Souza",
            "main_phone": null,
            "document": "12345678910"
        },
        "shipping_address": {
            "street": "Avenida Teste",
            "reference": null,
            "number": "1000",
            "neighborhood": "Bairro",
            "postcode": "22790707",
            "city": "Rio de Janeiro",
            "region": "RJ",
            "country": "Brasil",
            "complement": "Casa 2",
            "full_name": "Joao Souza",
            "main_phone": null,
            "document": "12345678910"
        }
    }
]

Envio de Clientes

Envio de informações demográficas dos clientes.

POST <https://sellout.newtail.com.br/v1/customers>


AtributoDescriçãoTipoObrigatórioPadrão
customer_idIndica qual o identificador único do cliente finalStringSim 
genderIndica qual o sexo do clienteString  
Valores: F ou MNãonull  
birth_datedata de nascimentoString.  
Formato: YYYY-MM-DDNãonull  
stateUnidade federativa (estado)String  
ex.: RJ, SP…Nãonull  
cityCidade do EstadoString  
Ex.: Rio de janeiro, São Paulo, …Nãonull  
districtBairroString  
Ex.: Copacabana, Madureira, …Nãonull  
postal_codeCepString  
Ex.: 21000000Nãonull  
exists_phoneIndica se o cliente tem telefone de contato cadastradoBoolean  
true ou falseNãonull  
exists_emailIndica se o cliente tem email de contato cadastradoBoolean  
true ou falseNãonull  
{
    "customer_id": "123",
    "gender": "F",
    "birth_date": "2022-01-01",
    "state": "RJ",
    "city": "Rio de Janeiro",
    "district": "Copacabana",
    "postal_code": "21660000",
    "exists_phone": true,
    "exists_email": false
}

Envio de Estoque

POST <https://sellout.newtail.com.br/v1/stocks/{store_id}>


Path Parameters

  • store_id: Código da loja onde a venda foi realizada
AtributoDescriçãoTipoObrigatórioPadrão
skuIdentifica unicamente o Produto com um código internoString  
ex.: abc123Sim   
stockQuantidade de estoque do produtoFloat  
ex.: 1.5Sim   
is_dcindica se este stock é referente a um centro de distribuiçãoBoolean  
true ou falseNãofalse  
unit_measurementIndica se o estoque é vendido por KG ou por UNString  
ex.: UNKGNãoUN 
created_atIndica qual a datahora que estoque foi geradoString  
Formato: iso8601    
Ex.: 2019-09-13T15:30:25.000-03:00Sim   

Respostas com Sucesso

O retorno da requisição terá código HTTP 202 com o seguinte body quando os dados forem enviados com sucesso:

{
    "messages": [
        "sales will be processed soon"
    ]
}

Erros de Validação

Implementamos o padrão https://datatracker.ietf.org/doc/rfc8927/ nas mensagens de erro:

Em caso de erro de validação será enviado um HTTP 422 com os problemas.

{
    "messages": [
        {
            "keyword": "required",
            "params": {
                "missingProperty": "invoice_id"
            },
            "message": "must have required property 'invoice_id'"
        }
    ]
}


Erros Internos

Em caso de erro será enviado um HTTP 5XX com o possível problema.

{
    "messages": [
        "error message"
    ]
}

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo