Documentação Carrinho de Compras Provedor - Manual API Checkout
Esse documento explica com exemplos de uso de nossa API REST a criação e finalização de carrinho de compras.
Requisições POST devem ter o header “Content-Type“ com o valor “application/vnd.api+json“ para evitar erros na criação de itens
Pré-checagem
Pegar informações de um endereço pelo CEP
Checagem inicial de cobertura na cidade do cliente
Checagem financeira
KMZ
Pegar coordenadas de um endereço
Pegar endereço pelas coordenadas
Verificar cobertura de um endereço
Checkout
Pegar ID do Revendedor
Salvar endereço do cliente
Criação de carrinho
Pegar contratos disponíveis
Pegar os planos disponíveis
Adição de produto no carrinho
Pegar os adicionais de um produto
Remoção de um produto do carrinho
Pegar carrinho
Aplicar cupom
Remover cupom
Pegar dados do "Como você chegou até nós?"
Pegar bancos
Pegar datas de vencimento de uma cidade
Pegar termos de um carrinho
Pegar documentos necessários
Atualizar o carrinho
Conversão em pedido
Pré-checagem:
Pegar informações de um endereço pelo CEP:
Possibilita pegar informações como rua, bairro, cidade e outras informações a partir do CEP.
Endpoint: GET /api/address/{CEP}/postal_code/
Parâmetros:
CEP | CEP que deseja buscar as informações | String |
---|
Exemplo de resposta:
{
"data": {
"type": "Address",
"id": null,
"attributes": {
"nickname": "",
"first_name": "",
"last_name": "",
"company_name": "",
"number": "",
"street_address_1": "Avenida José Antônio Lorenzetti",
"street_address_2": "",
"street_address_3": "Jardim São João",
"city": "Lençóis Paulista",
"state": "SP",
"postal_code": "18680-410",
"country": null,
"country_area": "",
"phone": "",
"is_default": false,
"type": null,
"latitude": "",
"longitude": ""
}
}
}
Checagem inicial de cobertura na cidade do cliente:
Permite fazer uma verificação se existe cobertura em uma cidade, pelo CEP.
Endpoint: GET /api/provider/city/{CEP}/postal_code/
Parâmetros:
CEP | CEP que deseja verificar | String |
---|
Exemplo de resposta:
Caso exista cobertura, retornará as informações do CEP, com o status 200:
{
"data": {
"type": "City",
"id": "11",
"attributes": {
"neighborhood": "Jardim São João",
"state": "SP",
"postal_code": "18680-410",
"street": "Avenida José Antônio Lorenzetti",
"created": "2021-08-19T19:37:43.708091-03:00",
"updated": "2022-02-16T17:31:40.001758-02:00",
"name": "Lençóis Paulista",
"short_name": "Lençóis Paulista",
"code": "lencoisPaulista",
"lat": "-22.6036000",
"long": "-48.7975000",
"redirect_url": null,
"due_date": null,
"is_neighborhood": false,
"neighborhood_name": null
},
"relationships": {
"postal_codes": {
"meta": {
"count": 0
},
"data": [],
"links": {
"self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/postal_codes/",
"related": "http://devisp.datacake.com.br/api/provider/city/11/postal_codes/"
}
},
"streets": {
"meta": {
"count": 0
},
"data": [],
"links": {
"self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/streets/",
"related": "http://devisp.datacake.com.br/api/provider/city/11/streets/"
}
},
"due_dates": {
"meta": {
"count": 9
},
"data": [
{
"type": "DueDate",
"id": "6"
},
{
"type": "DueDate",
"id": "5"
},
{
"type": "DueDate",
"id": "4"
},
{
"type": "DueDate",
"id": "3"
},
{
"type": "DueDate",
"id": "2"
},
{
"type": "DueDate",
"id": "1"
},
{
"type": "DueDate",
"id": "8"
},
{
"type": "DueDate",
"id": "7"
},
{
"type": "DueDate",
"id": "9"
}
],
"links": {
"self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/due_dates/",
"related": "http://devisp.datacake.com.br/api/provider/city/11/due_dates/"
}
},
"products": {
"meta": {
"count": 3
},
"data": [
{
"type": "Product",
"id": "51"
},
{
"type": "Product",
"id": "50"
},
{
"type": "Product",
"id": "42"
}
],
"links": {
"self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/products/",
"related": "http://devisp.datacake.com.br/api/provider/city/11/products/"
}
},
"integration": {
"links": {
"self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/integration/",
"related": "http://devisp.datacake.com.br/api/provider/city/11/integration/"
},
"data": {
"type": "Integration",
"id": "9"
}
}
}
}
}
Caso não exista cobertura no CEP informado, retornara uma mensagem de erro, com o status 404:
{
"errors": [
{
"detail": "Desculpe, infelizmente não temos cobertura na cidade Manaus CEP:69015-754",
"status": "404",
"source": {
"pointer": "/data"
},
"code": "not_found"
}
]
}
Checagem financeira
Permite verificar se o usuário possui restriçoes, não é ativado em todos os nossos clientes, então deve ser uma configuração “Liga/Desliga” na hora de vocês implementarem.
Endpoint: POST /api/store/cart/pre_check/
Atributos:
taxvat | CPF | String |
---|---|---|
token | Token do carrinho | String |
stop_invalid_taxvat | Parar se o CPF for invalido | Boolean |
Exemplo:
Body:
KMZ:
Pegar coordenadas de um endereço:
Possibilita pegar as coordenas de um local pelo endereço.
Endpoint: POST /api/provider/coverage/geocode/
Atributos:
street_address_1 | Rua | String |
---|---|---|
street_address_3 | Bairro | String |
address_number | Número | String |
postal_code | CEP | String |
state | Estado (sigla) | String |
city | Cidade | String |
Exemplo:
Body:
Resposta:
Pegar endereço pelas coordenadas:
Permite pegas as informações de um endereço através de coordenadas
Endpoint: POST /api/provider/coverage/address/
Atributos:
latitude |
| Number |
---|---|---|
longitude |
| Number |
Exemplo:
Body:
Resposta:
Verificar cobertura de um endereço:
Permite verificar se existe cobertura em um endereço
Endpoint: POST /api/provider/coverage/check_coverage/
Atributos:
street_address_1 | Rua | String |
---|---|---|
street_address_3 | Bairro | String |
address_number | Número | String |
postal_code | CEP | String |
state | Estado (sigla) | String |
city | Cidade | String |
latitude | Latitude | Number |
longitude | Longitude | Number |
Exemplo:
Body:
Caso tenha cobertura retornara o status 200:
Caso não tenha cobertura retornará uma mensagem de erro, e o status 400:
Checkout:
Salvar endereço do cliente:
Permite salvar um endereço
Endpoint: POST /api/address/
Atributos:
first_name | Nome | String |
---|---|---|
last_name | Sobrenome | String |
city | Cidade | String |
number | Número | String |
street_address_1 | Rua | String |
street_address_2 | Complemento | String |
street_address_3 | Bairro | String |
state | Estado (sigla) | String |
postal_code | CEP | String |
country | Pais (sigla) | String |
country_area | Pais (sigla) | String |
Exemplo:
Body:
Resposta:
Pegar ID do Revendedor:
Permite encontrar o ID do Revendedor buscando por CPF/CNPJ
Endpoint: GET /api/provider/reseller/{cpf}/by_taxvat/
Resposta:
Criação de carrinho:
Permite criar o carrinho, para iniciar o processo de compra.
Endpoint: POST /api/store/cart/?include=billing_address,shipping_address
Atributos:
extra_data |
| JSON |
---|---|---|
String |
Atributos do “extra_data”:
resseller_id | ID do Revendedor | String |
---|---|---|
mobile | Número de telefone | String |
paymentType | Tipo de pagamento | String |
current_step | Etapa atual do checkout | String |
current_wizard_step | Subetapa atual do checkout | String |
condo | Condominio | String |
condo_number | Número do condominio | String |
plan_type_id | ID do tipo de plano | String |
customer_type | Tipo de usuario (novo ou velho) | String |
city_id | ID da cidade | String |
is_migration | É migração | Boolean |
city_has_radio | Cidade tem radio | Boolean |
city_has_fiber | Cidade tem fibra | Boolean |
city_has_phone | Cidade tem telefone | Boolean |
city_has_tv | Cidade tem tv | Boolean |
cpf | CPF | String |
migration_type | Tipo de migração (apenas se for migração) | String |
has_hidden_product | Existe produto oculto | Boolean |
Atributos do “relationships”:
billing_address | ID do endereço do cliente criado anteriormente |
---|---|
shipping_address | ID do endereço do cliente criado anteriormente |
Exemplo de uso:
Body:
Resposta:
Pegar contratos disponíveis:
Permite obter os contratos disponíveis.
Endpoint: GET /api/store/cart-contract-period/get_cart_contract_period/
Exemplo de resposta:
Pegar os planos disponíveis:
Possibilita pegar os planos disponíveis na cidade
Endpoint: GET /api/store/product/?page[number]={page_number}&page[size]={page_size}&include=product_type&city__id={city__id}&restricted_customers={restricted_customers}
Parâmetros:
page[size] | Quantidades de itens por página | Number |
---|---|---|
page[number] | Qual página deseja pegas as informações | Number |
city__id | ID da cidade que desaja pegar os planos | Number |
restricted_customers | TRUE se o usuario tiver restrição | Boolean |
Exemplo:
Resposta:
Adição de produto no carrinho:
Possibilita adicionar produto ao carrinho.
Endpoint: POST /api/store/cart-item/?include=product%2Ccart%2Ccart.items%2Ccart.items.product
Atributos:
quantity | Quantidade do produto | Number |
---|
Headers:
x-cart-token | Token do carrinho | String |
---|
Atributos do “relationships“:
product | ID do produto que deseja colocar no carrinho |
---|---|
cart | ID do carrinho |
Exemplo de uso:
Body:
Resposta:
Pegar os adicionais de um produto:
Permite pegar os adicionais de um produto
Endpoint: GET /api/store/product/{product_id}/addons/?include=product_type%2Ccategories
Parâmetros:
product_id | ID do produto que deseja pegar os adicionais |
---|
Exemplo de resposta:
Remoção de um produto do carrinho:
Permite remover produto do carrinho.
Endpoint: DELETE /api/store/cart-item/{cart_item_id}/
Parâmetros:
cart_item_id | ID do “CartItem” |
---|
Headers:
x-cart-token | Token do carrinho | String |
---|
Exemplo de resposta:
Status Code 204 No Content
Pegar carrinho:
Possibilita pegar o carrinho.
Endpoint: GET /api/store/cart/{cart_id}/?include=billing_address%2Cshipping_address%2Cshipping_method%2Ccontract_period%2Corigin%2Citems.product%2Citems.product.categories%2Citems.product.product_type%2Cuser%2Cbilling_address%2Cshipping_address
Parâmetros:
cart_id | ID do carrinho que deseja |
---|
Exemplo de resposta:
Aplicar cupom:
Permite aplicar cupom de desconto. Ele adiciona o cupom atualizando o carrinho.
Endpoint: PATCH /api/store/cart/{cart_id}/
Parâmetros:
cart_id | ID do carrinho |
---|
Atributos:
id | ID do carrinho | String |
---|---|---|
voucher_code | CUPOM | String |
Exemplo:
Body:
Resposta Cupom valido (retorna o carrinho):
Resposta Cupom invalido:
Remover Cupom:
Permite remover cupom de desconto. Ele remove o cupom atualizando o carrinho.
Endpoint: PATCH /api/store/cart/{cart_id}/
Parâmetros:
cart_id | ID do carrinho |
---|
Atributos:
id | ID do carrinho | String |
---|---|---|
voucher_code | CUPOM | String |
Exemplo:
Body:
Resposta (retorna o carrinho):
Pegar dados do "Como você chegou até nós?":
Pega as informações do "Como você chegou até nós?".
Endpoint: GET /api/store/origin/?filter[is_active]={is_active}&page[size]={page_size}&page[number]={page_number}
Parâmetros:
is_active | Filtra se quer apenas ativo ou apenas desativado | Boolean |
---|---|---|
page[size] | Quantidades de itens por página | Number |
page[number] | Qual página deseja pegas as informações | Number |
Exemplo de resposta:
Pegar bancos:
Endpoint: /api/store/bank/?page[size]={page_size}&page[number]={page_number}
Parâmetros:
page[size] | Quantidades de itens por página | Number |
---|---|---|
page[number] | Qual página deseja pegas as informações | Number |
Exemplo de resposta:
Pegar datas de vencimento de uma cidade:
Permite pegar as datas de vencimento de fatura de uma cidade.
Endpoint: GET /api/provider/city/{{city_id}}/?fields=due_dates&include=due_dates
Parâmetros:
city_id | ID da cidade |
---|
Exemplo de resposta:
Pegar termos de um carrinho:
Possibilita pegar os termos dos produtos de um carrinho.
Endpoint: GET /api/store/cart-term/?carts={{cart_id}}&fields=id,content
Parâmetros:
cart_id | ID do carrinho |
---|
Exemplo de resposta:
Pegar documentos necessários:
Permite pegar a lista de documentos necessários para realizar o pedido.
Endpoint: GET /api/provider/document/
Exemplo de resposta:
Conversão em pedido:
Permite finalizar o pedido
Endpoint GET /api/store/cart/{cart_id}/complete_order/
Parâmetros:
cart_id | ID do carrinho que deseja finalizar o pedido |
---|
Exemplo de resposta:
Atualizar o carrinho
Permite atualizar o carrinho, para adicionar os documentos, adicionar dados faltando, alterar passo e outras alterações.
Endpoint: PATCH /api/store/cart/{cart_id}/?include=billing_address,shipping_address,shipping_method,contract_period,origin,items.product,items.product.categories
Parâmetros:
cart_id | ID do carrinho |
---|
Exemplo:
body:
Resposta: