NAV
bash javascript php

Info

Welcome to the generated API reference. Get Postman Collection

Autenticação

Token de acesso

Todas as requisições para a API devem ser feitas passando o Token de acesso no header da requisição. Para obter o mesmo é necessário realizar um request com os parâmetros solicitados abaixo.

Tipos de autorizações(grant_type)

Atualmente são permitidos os seguintes grant_types

client_credentials: Somente para integrações onde não é necessário o login do usuário.

password: Nessa autorização o usuário precisa informar os campos 'username' e 'password', pois será realizado um login, onde os endpoints retornarão os dados referentes ao usuário logado.

Example request:

curl -X POST \
    "localhost/oauth/token" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"grant_type":"password","client_id":"1","client_secret":"******","username":"manoeldasilva@email.com","password":"******"}'
const url = new URL(
    "localhost/oauth/token"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "grant_type": "password",
    "client_id": "1",
    "client_secret": "******",
    "username": "manoeldasilva@email.com",
    "password": "******"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/oauth/token',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'grant_type' => 'password',
            'client_id' => '1',
            'client_secret' => '******',
            'username' => 'manoeldasilva@email.com',
            'password' => '******',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

HTTP Request

POST /oauth/token

Body Parameters

Parameter Type Status Description
grant_type text optional Tipo de autorização(password/client_credentials)
client_id Integer required Client id
client_secret text required Senha do cliente
username text optional Usuário de login da plataforma
password text optional Senha do usuário

Banners

Buscar Banners disponíveis

Método utilizado para buscar os banners disponíveis na empresa.

Example request:

curl -X GET \
    -G "localhost/api/v1/banners" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/banners"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/banners',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_banner": 1,
            "id_empresa": 1,
            "descricao": "TESTE",
            "tipo": "TESTE",
            "imagem": "TESTE",
            "link": "TESTE",
            "inicio_vigencia": "2020-03-31 00:00:00",
            "fim_vigencia": "2025-03-31 22:00:00",
            "ativo": 1
        }
    ]
}

HTTP Request

GET /api/v1/banners

Clientes

Cadastrar um cliente

Utilize este método sempre que desejar cadastrar um cliente.

Example request:

curl -X POST \
    "localhost/api/v1/cliente" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"usuario":"manoeldasilva@email.com","senha":"******","entidade":{"nome":"Manoel da Silva","apelido":"Manoel","inscricao_federal":"99999999999","genero":"MASCULINO","dt_nascimento":"1995-01-01","logradouro":"Rua x","numero":"45X","cep":"14500000","complemento":"Teste","bairro":"Bairro teste","cidade":"Cidade do manoel","estado":"SP","telefone":"99999999999","celular":"99999999999"}}'
const url = new URL(
    "localhost/api/v1/cliente"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "usuario": "manoeldasilva@email.com",
    "senha": "******",
    "entidade": {
        "nome": "Manoel da Silva",
        "apelido": "Manoel",
        "inscricao_federal": "99999999999",
        "genero": "MASCULINO",
        "dt_nascimento": "1995-01-01",
        "logradouro": "Rua x",
        "numero": "45X",
        "cep": "14500000",
        "complemento": "Teste",
        "bairro": "Bairro teste",
        "cidade": "Cidade do manoel",
        "estado": "SP",
        "telefone": "99999999999",
        "celular": "99999999999"
    }
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/cliente',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'usuario' => 'manoeldasilva@email.com',
            'senha' => '******',
            'entidade' => [
                'nome' => 'Manoel da Silva',
                'apelido' => 'Manoel',
                'inscricao_federal' => '99999999999',
                'genero' => 'MASCULINO',
                'dt_nascimento' => '1995-01-01',
                'logradouro' => 'Rua x',
                'numero' => '45X',
                'cep' => '14500000',
                'complemento' => 'Teste',
                'bairro' => 'Bairro teste',
                'cidade' => 'Cidade do manoel',
                'estado' => 'SP',
                'telefone' => '99999999999',
                'celular' => '99999999999',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):

{
    "success": true,
    "data": {
        "usuario": "manoeldasilva@email.com",
        "ativo": 1,
        "id_cliente": 11,
        "entidade": {
            "nome": "Manoel da Silva",
            "apelido": "Manu",
            "inscricao_federal": "99999999999",
            "tipo_pessoa": null,
            "genero": "MASCULINO",
            "dt_nascimento": "1995-01-01",
            "logradouro": "Rua x",
            "numero": "45X",
            "cep": "14500000",
            "complemento": "Teste",
            "bairro": "Bairro teste",
            "cidade": "Cidade do Manoel",
            "estado": "SP",
            "telefone": "17996612958",
            "celular": null,
            "email": null,
            "dt_cadastro": "2020-03-31 12:53:16",
            "dt_alteracao": "2020-03-31 12:53:16",
            "ativo": 1,
            "foto": null
        }
    }
}

Example response (406):

{
    "success": false,
    "errors": {
        "entidade.nome": [
            "Campo entidade.nome não informado"
        ],
        "entidade.apelido": [
            "Campo entidade.apelido não informado"
        ],
        "entidade.inscricao_federal": [
            "Campo entidade.inscricao federal não informado"
        ]
    },
    "code": 406
}

HTTP Request

POST /api/v1/cliente

Body Parameters

Parameter Type Status Description
usuario text required E-mail do cliente
senha text required Senha do cliente
entidade.nome text required Nome do cliente
entidade.apelido text required Apelido do cliente
entidade.inscricao_federal text required CPF
entidade.genero text optional Genero do cliente (MASCULINO,FEMININO,OUTROS)
entidade.dt_nascimento date optional Data de nascimento
entidade.logradouro text optional Logradouro
entidade.numero text optional Número da residência
entidade.cep text optional Zip code
entidade.complemento text optional Complemento
entidade.bairro text optional Bairro
entidade.cidade text optional Cidade
entidade.estado text optional Estado (Formato UF)
entidade.telefone text optional Telefone
entidade.celular text optional Celular

Adicionar um endereço para o cliente

Utilize este método para adicionar um endereço para o cliente logado.

Example request:

curl -X POST \
    "localhost/api/v1/cliente/endereco" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"descricao":"Endere\u00e7o de teste","logradouro":"Rua J de Martins","numero":"636","cep":"14150000","complemento":"Casa 2","referencia":"Perto da farm\u00e1cia","bairro":"Centro","cidade":"Serrana","estado":"S\u00e3o Paulo","padrao":"true","latitude":-21.1997509,"longitude":-47.8096209}'
const url = new URL(
    "localhost/api/v1/cliente/endereco"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "descricao": "Endere\u00e7o de teste",
    "logradouro": "Rua J de Martins",
    "numero": "636",
    "cep": "14150000",
    "complemento": "Casa 2",
    "referencia": "Perto da farm\u00e1cia",
    "bairro": "Centro",
    "cidade": "Serrana",
    "estado": "S\u00e3o Paulo",
    "padrao": "true",
    "latitude": -21.1997509,
    "longitude": -47.8096209
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/cliente/endereco',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'descricao' => 'Endereço de teste',
            'logradouro' => 'Rua J de Martins',
            'numero' => '636',
            'cep' => '14150000',
            'complemento' => 'Casa 2',
            'referencia' => 'Perto da farmácia',
            'bairro' => 'Centro',
            'cidade' => 'Serrana',
            'estado' => 'São Paulo',
            'padrao' => 'true',
            'latitude' => -21.1997509,
            'longitude' => -47.8096209,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "descricao": "Endereço de teste",
        "logradouro": "Rua J de Martins",
        "numero": "636",
        "cep": "14150000",
        "bairro": "Centro",
        "cidade": "Serrana",
        "estado": "São Paulo",
        "longitude": -1000,
        "latitude": 1000,
        "padrao": true,
        "dt_cadastro": {
            "date": "2021-01-05 18:07:19.450024",
            "timezone_type": 3,
            "timezone": "America\/Sao_Paulo"
        },
        "id_endereco": 1
    }
}

Example response (406):

{
    "success": false,
    "error": {
        "descricao": [
            "Campo descricao não informado"
        ],
        "logradouro": [
            "Campo logradouro não informado"
        ],
        "numero": [
            "Campo numero não informado"
        ],
        "cep": [
            "Campo cep não informado"
        ],
        "bairro": [
            "Campo bairro não informado"
        ],
        "cidade": [
            "Campo cidade não informado"
        ],
        "longitude": [
            "Campo longitude não informado"
        ],
        "latitude": [
            "Campo latitude não informado"
        ],
        "padrao": [
            "Campo padrao não informado"
        ]
    },
    "code": 406
}

HTTP Request

POST /api/v1/cliente/endereco

Body Parameters

Parameter Type Status Description
descricao text required Descrição do endereço
logradouro text required Endereço do cliente
numero text required Número do endereço
cep text or integer required CEP do endereço
complemento text optional Complemento do endereço
referencia text optional Referência do endereço
bairro text required Bairro do endereço
cidade text required Cidade do endereço
estado text optional Estado do endereço
padrao boolean required Definir endereço padrão
latitude float or text required Latitude do endereço
longitude float or text required Longitude do endereço

Remover endereço do cliente

Utilize este método para remover o endereço do cliente logado.

Example request:

curl -X DELETE \
    "localhost/api/v1/cliente/1/endereco" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cliente/1/endereco"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'localhost/api/v1/cliente/1/endereco',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_endereco": 5,
        "descricao": "Endereço de teste",
        "logradouro": "Rua J de Martins",
        "numero": "636",
        "cep": "14150000",
        "complemento": null,
        "referencia": null,
        "bairro": "Centro",
        "cidade": "Serrana",
        "estado": null,
        "latitude": "1000",
        "longitude": "-1000",
        "padrao": 0,
        "dt_cadastro": "2021-01-29 13:22:02"
    }
}

Example response (404):

{
    "success": false,
    "error": "Endereço não encontrado.",
    "code": 404
}

HTTP Request

DELETE /api/v1/cliente/{idEndereco}/endereco

Buscar endereços do cliente

Utilize este método para buscar os endereços do cliente logado.

"taxa_entrega": taxa calculada entre a distância da empresa e o endereço (será 0 caso esteja fora de alcance).
"alcance_empresa": true caso o endereço esteja dentro do alcance do raio da empresa, false caso o contrário.

Example request:

curl -X GET \
    -G "localhost/api/v1/cliente/enderecos" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cliente/enderecos"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/cliente/enderecos',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_endereco": 1,
            "descricao": "Endereço de teste",
            "logradouro": "Rua J de Martins",
            "numero": "636",
            "cep": "14150000",
            "complemento": null,
            "referencia": null,
            "bairro": "Centro",
            "cidade": "Serrana",
            "estado": null,
            "latitude": "1000",
            "longitude": "-1000",
            "padrao": 1,
            "dt_cadastro": "2021-01-05 18:07:19",
            "taxa": 0,
            "alcance_empresa": false
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum endereço encontrado.",
    "code": 404
}

HTTP Request

GET /api/v1/cliente/enderecos

Alterar um cliente

Utilize este método sempre que desejar alterar um cliente.

Example request:

curl -X PUT \
    "localhost/api/v1/cliente" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"senha":"******","entidade":{"nome":"Manoel da Silva","apelido":"Manoel","inscricao_federal":"99999999999","genero":"MASCULINO","dt_nascimento":"1995-01-01","logradouro":"Rua x","numero":"45X","cep":"14500000","complemento":"Teste","bairro":"Bairro teste","cidade":"Cidade do manoel","estado":"SP","telefone":"99999999999","celular":"99999999999"}}'
const url = new URL(
    "localhost/api/v1/cliente"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "senha": "******",
    "entidade": {
        "nome": "Manoel da Silva",
        "apelido": "Manoel",
        "inscricao_federal": "99999999999",
        "genero": "MASCULINO",
        "dt_nascimento": "1995-01-01",
        "logradouro": "Rua x",
        "numero": "45X",
        "cep": "14500000",
        "complemento": "Teste",
        "bairro": "Bairro teste",
        "cidade": "Cidade do manoel",
        "estado": "SP",
        "telefone": "99999999999",
        "celular": "99999999999"
    }
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/cliente',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'senha' => '******',
            'entidade' => [
                'nome' => 'Manoel da Silva',
                'apelido' => 'Manoel',
                'inscricao_federal' => '99999999999',
                'genero' => 'MASCULINO',
                'dt_nascimento' => '1995-01-01',
                'logradouro' => 'Rua x',
                'numero' => '45X',
                'cep' => '14500000',
                'complemento' => 'Teste',
                'bairro' => 'Bairro teste',
                'cidade' => 'Cidade do manoel',
                'estado' => 'SP',
                'telefone' => '99999999999',
                'celular' => '99999999999',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "usuario": "manoeldasilva@email.com",
        "ativo": 1,
        "id_cliente": 11,
        "entidade": {
            "nome": "Manoel da Silva",
            "apelido": "Manu",
            "inscricao_federal": "99999999999",
            "tipo_pessoa": null,
            "genero": "MASCULINO",
            "dt_nascimento": "1995-01-01",
            "logradouro": "Rua x",
            "numero": "45X",
            "cep": "14500000",
            "complemento": "Teste",
            "bairro": "Bairro teste",
            "cidade": "Cidade do Manoel",
            "estado": "SP",
            "telefone": "17996612958",
            "celular": null,
            "email": null,
            "dt_cadastro": "2020-03-31 12:53:16",
            "dt_alteracao": "2020-03-31 12:53:16",
            "ativo": 1,
            "foto": null
        }
    }
}

Example response (406):

{
    "success": false,
    "errors": {
        "entidade.nome": [
            "Campo entidade.nome não informado"
        ],
        "entidade.apelido": [
            "Campo entidade.apelido não informado"
        ],
        "entidade.inscricao_federal": [
            "Campo entidade.inscricao federal não informado"
        ]
    },
    "code": 406
}

HTTP Request

PUT /api/v1/cliente

Body Parameters

Parameter Type Status Description
senha text required Senha do cliente
entidade.nome text required Nome do cliente
entidade.apelido text required Apelido do cliente
entidade.inscricao_federal text required CPF
entidade.genero text optional Genero do cliente (MASCULINO,FEMININO,OUTROS)
entidade.dt_nascimento date optional Data de nascimento
entidade.logradouro text optional Logradouro
entidade.numero text optional Número da residência
entidade.cep text optional Zip code
entidade.complemento text optional Complemento
entidade.bairro text optional Bairro
entidade.cidade text optional Cidade
entidade.estado text optional Estado (Formato UF)
entidade.telefone text optional Telefone
entidade.celular text optional Celular

Buscar dados do cliente

Utilize este método sempre que desejar buscar os dados do cliente logado.

Example request:

curl -X GET \
    -G "localhost/api/v1/cliente" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cliente"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/cliente',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_cliente": 0,
        "id_entidade": 0,
        "id_empresa": 0,
        "dt_ultimo_acesso": "2020-10-07 15:05:24",
        "ativo": 1,
        "tipo_login": null,
        "usuario": "manoel@email.com",
        "entidade": {
            "nome": "Manoel da Silva",
            "apelido": "Manoel",
            "inscricao_federal": "47044488862",
            "tipo_pessoa": null,
            "genero": "MASCULINO",
            "dt_nascimento": "2004-12-31",
            "logradouro": "Avenida do Manoel",
            "numero": "5",
            "cep": "14076400",
            "complemento": "lado par",
            "bairro": "Bairro",
            "cidade": "Cidade",
            "estado": "SP",
            "telefone": "49555585588",
            "celular": "49555585588",
            "email": null,
            "dt_cadastro": "2020-04-24 14:23:35",
            "dt_alteracao": "2020-04-24 14:23:35",
            "ativo": 1,
            "foto": null
        },
        "empresa": {
            "codigo": 0,
            "id_grupo": 0,
            "perfil_facebook": null,
            "perfil_instagram": null,
            "site": null,
            "desc_maximo": "50.00",
            "sobre": null,
            "latitude": null,
            "longitude": null,
            "pedido_minimo": "0.00",
            "limite_itens": 0,
            "responsavel": null,
            "versao_app": "1.0.3",
            "ativo": 1,
            "entidade": {
                "nome": "Usuário demo",
                "apelido": "Usuário demo",
                "inscricao_federal": "11111111111111",
                "tipo_pessoa": "",
                "genero": "MASCULINO",
                "dt_nascimento": "2020-05-22",
                "logradouro": null,
                "numero": null,
                "cep": null,
                "complemento": null,
                "bairro": null,
                "cidade": null,
                "estado": null,
                "telefone": "(17) 3122-8600",
                "celular": "1731228600",
                "email": "sifat@appclubmais.com.br",
                "dt_cadastro": "2020-06-24 17:57:09",
                "dt_alteracao": "2020-06-24 17:57:09",
                "ativo": 1,
                "foto": "img\/user-default.png"
            }
        }
    }
}

HTTP Request

GET /api/v1/cliente

Buscar dados do cliente por filtro

Método utilizado para realizar busca dos dados do cliente por id, e-mail ou cpf, apenas para autorizações do tipo CLIENT_CREDENTIALS.

Example request:

curl -X GET \
    -G "localhost/api/v1/cliente/nobis" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cliente/nobis"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/cliente/nobis',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "usuario": "manoeldasilva@email.com",
        "ativo": 1,
        "id_cliente": 11,
        "entidade": {
            "nome": "Manoel da Silva",
            "apelido": "Manu",
            "inscricao_federal": "99999999999",
            "tipo_pessoa": null,
            "genero": "MASCULINO",
            "dt_nascimento": "1995-01-01",
            "logradouro": "Rua x",
            "numero": "45X",
            "cep": "14500000",
            "complemento": "Teste",
            "bairro": "Bairro teste",
            "cidade": "Cidade do Manoel",
            "estado": "SP",
            "telefone": "17996612958",
            "celular": null,
            "email": null,
            "dt_cadastro": "2020-03-31 12:53:16",
            "dt_alteracao": "2020-03-31 12:53:16",
            "ativo": 1,
            "foto": null
        }
    }
}

Example response (404):

{
    "success": false,
    "error": "Cliente não encontrado.",
    "code": 404
}

HTTP Request

GET /api/v1/cliente/{filtro}

URL Parameters

Parameter Status Description
filtro required id ou e-mail do cliente.

Registrar empresa logada

Utilize este método registrar a empresa selecionada pelo usuário, ela será responsável por buscar os seus respectivos itens (cupons, banners, produtos, etc.), apenas para autorizações do tipo PASSWORD.

Example request:

curl -X PUT \
    "localhost/api/v1/cliente/empresa/quas" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cliente/empresa/quas"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/cliente/empresa/quas',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "empresa_logada": "Supermercado Manoel da Silva",
        "usuario": "manoel@email.com"
    }
}

Example response (406):

{
    "success": false,
    "error": {
        "empresa": [
            "Empresa não existente."
        ],
        "cliente": [
            "O cliente logado não possui vínculo com a empresa informada."
        ]
    },
    "code": 406
}

HTTP Request

PUT /api/v1/cliente/empresa/{idEmpresa}

URL Parameters

Parameter Status Description
idEmpresa required id da empresa que deseja logar.

Compras

Buscar Compras do cliente

Método utilizado para buscar as compras realizadas do cliente.

Example request:

curl -X GET \
    -G "localhost/api/v1/compras" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/compras"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/compras',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "dt_emissao": "2020-04-01 15:54:00",
            "vr_total": "150.000",
            "movimentacoes": [
                {
                    "dt_compra": "2020-02-12 00:00:00",
                    "quantidade": "1.000",
                    "valor_total": "10.000",
                    "valor_desconto": "0.000"
                },
                {
                    "dt_compra": "2020-02-12 00:00:00",
                    "quantidade": "1.000",
                    "valor_total": "10.000",
                    "valor_desconto": "0.000"
                },
                {
                    "dt_compra": "2020-03-12 00:00:00",
                    "quantidade": "1.000",
                    "valor_total": "10.000",
                    "valor_desconto": "0.000"
                }
            ],
            "empresa": {
                "perfil_facebook": "TESTE",
                "perfil_instagram": "TESTE",
                "site": "TESTE",
                "ativo": 1,
                "entidade": {
                    "nome": "TESTE",
                    "apelido": "TESTE",
                    "inscricao_federal": "00689700000135",
                    "tipo_pessoa": "TESTE",
                    "genero": "TESTE",
                    "dt_nascimento": "2020-02-03",
                    "logradouro": "TESTE",
                    "numero": "TESTE",
                    "cep": "14150000",
                    "complemento": null,
                    "bairro": "TESTE",
                    "cidade": "TESTE",
                    "estado": "SP",
                    "telefone": "16992338091",
                    "celular": "16992338091",
                    "email": "TESTE@TESTE.COM",
                    "dt_cadastro": "2020-02-03 00:00:00",
                    "dt_alteracao": "2020-02-03 00:00:00",
                    "ativo": 1,
                    "foto": null
                }
            }
        }
    ]
}

HTTP Request

GET /api/v1/compras

Registrar uma compra

Utilize este método para registrar uma compra, deve se informar o valor total da venda e uma lista das vantagens utilizadas.

Também é possivel realizar as requisições via parâmetros de consulta ex:

http://developer.appclubmais.com.br/api/v1/compras/10?valor_total=100.00&vantagens[0][id_vantagem]=29&vantagens[0][quantidade]=20&vantagens[0][valor_total]=30.00&vantagens[0][valor_desconto]=5.00

Example request:

curl -X POST \
    "localhost/api/v1/compras/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"valor_total":"150.00","vantagens":[{"id_vantagem":"1","quantidade":"1","valor_total":"1","valor_desconto":"1"}]}'
const url = new URL(
    "localhost/api/v1/compras/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "valor_total": "150.00",
    "vantagens": [
        {
            "id_vantagem": "1",
            "quantidade": "1",
            "valor_total": "1",
            "valor_desconto": "1"
        }
    ]
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/compras/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'valor_total' => '150.00',
            'vantagens' => [
                [
                    'id_vantagem' => '1',
                    'quantidade' => '1',
                    'valor_total' => '1',
                    'valor_desconto' => '1',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):

{
    "success": true,
    "data": {
        "valor_total": 150,
        "dt_emissao": {
            "date": "2020-04-01 22:49:40.770027",
            "timezone_type": 3,
            "timezone": "America\/Sao_Paulo"
        },
        "movimentacoes": [
            {
                "id_vantagem": 1,
                "dt_compra": "2020-04-01 22:49:40",
                "quantidade": "2.000",
                "valor_total": "30.000",
                "valor_desconto": "5.000"
            },
            {
                "id_vantagem": 1,
                "dt_compra": "2020-04-01 22:49:40",
                "quantidade": "2.000",
                "valor_total": "30.000",
                "valor_desconto": "5.000"
            }
        ]
    }
}

Example response (406):

{
    "success": false,
    "error": {
        "valor_total": [
            "Campo valor total não informado"
        ],
        "vantagens": [
            "Campo vantagens não informado"
        ]
    },
    "code": 406
}

Example response (406):

{
    "success": false,
    "error": "Quantidade excede o permitido vantagem: 6",
    "code": 406
}

HTTP Request

POST /api/v1/compras/{cliente}

URL Parameters

Parameter Status Description
idCliente required id do cliente.

Body Parameters

Parameter Type Status Description
valor_total decimal(10,2) required Valor total da compra
vantagens.*.id_vantagem integer required Id da vantagem
vantagens.*.quantidade decimal required quantidade comprada
vantagens.*.valor_total decimal required valor total
vantagens.*.valor_desconto decimal required valor do desconto

Cupons

Buscar cupons disponíveis

Método utilizado para buscar os cupons disponíveis na empresa que o usuário está logado.

Example request:

curl -X GET \
    -G "localhost/api/v1/cupons" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/cupons"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/cupons',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "categoria": "Salgados",
            "cupons": [
                {
                    "id_cupom": 10,
                    "codigo": "123",
                    "codigo_integracao": "1234",
                    "descricao": "Salgadinhos em geral",
                    "tipo_promocional": "1",
                    "inicio_vigencia": "2020-04-09 00:00:00",
                    "fim_vigencia": "2020-04-24 00:00:00",
                    "qtd_limite": 30,
                    "ativo": 1,
                    "dt_cadastro": "2020-04-17 14:42:53",
                    "perc_desconto": "17.000",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/img\/cupons\/cupom_Cerveja_Bohemia.png"
                }
            ]
        },
        {
            "categoria": "Bebidas",
            "cupons": [
                {
                    "id_cupom": 9,
                    "codigo": "11234",
                    "codigo_integracao": "1",
                    "descricao": "COCA COLA PET 2L",
                    "tipo_promocional": "CATEGORIA",
                    "inicio_vigencia": "2020-04-09 00:00:00",
                    "fim_vigencia": "2020-04-24 00:00:00",
                    "qtd_limite": 10,
                    "ativo": 1,
                    "dt_cadastro": "2020-04-17 14:42:53",
                    "perc_desconto": "25",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/img\/cupons\/cupom_teste.png"
                }
            ]
        }
    ]
}

HTTP Request

GET /api/v1/cupons

Buscar cupons disponíveis

Método utilizado para buscar os cupons disponíveis na empresa que o usuário está logado.

Example request:

curl -X GET \
    -G "localhost/api/v2/cupons" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v2/cupons"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v2/cupons',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "categoria": "Super ofertas da semana!",
            "cupons": [
                {
                    "id_cupom": 80,
                    "codigo": "APP01",
                    "codigo_integracao": "34",
                    "descricao": "ÓLEO COCAMAR (TESTE)",
                    "tipo_promocional": "PRODUTO",
                    "inicio_vigencia": "2020-06-09 03:00:00",
                    "fim_vigencia": "2021-09-13 00:00:00",
                    "qtd_limite": 5,
                    "ativo": 1,
                    "dt_cadastro": "0000-00-00 00:00:00",
                    "perc_desconto": "10.00",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_ÓLEO_COCAMAR_(TESTE).png",
                    "esgotado": false,
                    "ativado": false
                },
                {
                    "id_cupom": 94,
                    "codigo": "1",
                    "codigo_integracao": "22970",
                    "descricao": "Barril Heineken",
                    "tipo_promocional": "PRODUTO",
                    "inicio_vigencia": "2020-06-22 00:00:00",
                    "fim_vigencia": "2021-09-13 00:00:00",
                    "qtd_limite": 10,
                    "ativo": 1,
                    "dt_cadastro": "0000-00-00 00:00:00",
                    "perc_desconto": "5.00",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_Barril_Heineken.png",
                    "esgotado": true,
                    "ativado": false
                }
            ]
        },
        {
            "categoria": "Terça Suína",
            "cupons": [
                {
                    "id_cupom": 95,
                    "codigo": "2",
                    "codigo_integracao": "7896866800013",
                    "descricao": "ARROZ PATINI",
                    "tipo_promocional": "PRODUTO",
                    "inicio_vigencia": "2020-06-16 03:00:00",
                    "fim_vigencia": "2021-09-13 00:00:00",
                    "qtd_limite": 100,
                    "ativo": 1,
                    "dt_cadastro": "0000-00-00 00:00:00",
                    "perc_desconto": "10.00",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_ARROZ_PATINI_SERIE_OURO_T-1_5.png",
                    "esgotado": true,
                    "ativado": false
                }
            ]
        },
        {
            "categoria": "Refrigerante",
            "cupons": [
                {
                    "id_cupom": 165,
                    "codigo": "3",
                    "codigo_integracao": "10",
                    "descricao": "Coca-cola",
                    "tipo_promocional": "PRODUTO",
                    "inicio_vigencia": "2020-08-20 00:00:00",
                    "fim_vigencia": "2021-09-13 00:00:00",
                    "qtd_limite": 1,
                    "ativo": 1,
                    "dt_cadastro": "2020-09-09 08:59:15",
                    "perc_desconto": "10.00",
                    "imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_Coca-cola.png",
                    "esgotado": false,
                    "ativado": false
                }
            ]
        },
        {
            "categoria": "teste",
            "cupons": []
        }
    ]
}

HTTP Request

GET /api/v2/cupons

Empresa

Buscar dados da empresa

Método utilizado para buscar os dados de sua empresa.

Example request:

curl -X GET \
    -G "localhost/api/v1/empresa" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/empresa"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/empresa',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_banner": 1,
            "id_empresa": 1,
            "descricao": "TESTE",
            "tipo": "TESTE",
            "imagem": "TESTE",
            "link": "TESTE",
            "inicio_vigencia": "2020-03-31 00:00:00",
            "fim_vigencia": "2025-03-31 22:00:00",
            "ativo": 1
        }
    ]
}

HTTP Request

GET /api/v1/empresa

Buscar formas de pagamento

Método utilizado para buscar as formas de pagamento da empresa.

Example request:

curl -X GET \
    -G "localhost/api/v1/empresa/metodos-pagamento" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/empresa/metodos-pagamento"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/empresa/metodos-pagamento',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_metodo_pagamento": 8,
            "id_empresa": 2,
            "tipo": "CREDITO",
            "ativo": 1,
            "bandeiras": [
                {
                    "id_bandeira": 16,
                    "id_metodo_pagamento": 8,
                    "descricao": "VISA",
                    "ativo": 1
                },
                {
                    "id_bandeira": 17,
                    "id_metodo_pagamento": 8,
                    "descricao": "MASTERCARD",
                    "ativo": 1
                }
            ]
        },
        {
            "id_metodo_pagamento": 12,
            "id_empresa": 2,
            "tipo": "DEBITO",
            "ativo": 1,
            "bandeiras": []
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum método de pagamento encontrado",
    "code": 404
}

HTTP Request

GET /api/v1/empresa/metodos-pagamento

Grupos Econômicos

Buscar empresas vínculadas ao grupo.

Método utilizado para buscar as empresas vínculadas do grupo econômico em ordem de distância a partir da localização enviada na rota, apenas para autorizações do tipo PASSWORD.

Example request:

curl -X POST \
    "localhost/api/v1/grupo-economico/empresas" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"latitude":-21.1997509,"longitude":-47.8096209}'
const url = new URL(
    "localhost/api/v1/grupo-economico/empresas"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "latitude": -21.1997509,
    "longitude": -47.8096209
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/grupo-economico/empresas',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'latitude' => -21.1997509,
            'longitude' => -47.8096209,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "codigo": 1,
            "id_grupo": 2,
            "perfil_facebook": "teste",
            "perfil_instagram": "teste",
            "site": "manoeldasilva.com.br",
            "desc_maximo": "99.00",
            "sobre": "teste",
            "latitude": "-22.1997509",
            "longitude": "-47.8096209",
            "pedido_minimo": "0.00",
            "limite_itens": 10,
            "responsavel": "teste",
            "versao_app": "1.0",
            "ativo": 1,
            "distancia": 10,
            "entidade": {
                "nome": "Empresa Manoel da Silva",
                "apelido": "Empresa Manu",
                "inscricao_federal": "99999999999",
                "tipo_pessoa": null,
                "genero": "MASCULINO",
                "dt_nascimento": "1995-01-01",
                "logradouro": "Rua x",
                "numero": "45X",
                "cep": "14500000",
                "complemento": "Teste",
                "bairro": "Bairro teste",
                "cidade": "Cidade do Manoel",
                "estado": "SP",
                "telefone": "17996612958",
                "celular": null,
                "email": null,
                "dt_cadastro": "2020-03-31 12:53:16",
                "dt_alteracao": "2020-03-31 12:53:16",
                "ativo": 1,
                "foto": null
            },
            "funcionamento": []
        },
        {
            "codigo": 2,
            "id_grupo": 3,
            "perfil_facebook": "teste 2",
            "perfil_instagram": "teste 2",
            "site": "manoeldasilva.com.br",
            "desc_maximo": "99.00",
            "sobre": "teste 2",
            "latitude": "-22.1997509",
            "longitude": "-47.8096209",
            "pedido_minimo": "0.00",
            "limite_itens": 10,
            "responsavel": "teste",
            "versao_app": "1.0",
            "ativo": 1,
            "distancia": 10,
            "entidade": {
                "nome": "Empresa Manoel da Silva",
                "apelido": "Empresa Manu",
                "inscricao_federal": "99999999999",
                "tipo_pessoa": null,
                "genero": "MASCULINO",
                "dt_nascimento": "1995-01-01",
                "logradouro": "Rua x",
                "numero": "45X",
                "cep": "14500000",
                "complemento": "Teste 2",
                "bairro": "Bairro teste",
                "cidade": "Cidade do Manoel",
                "estado": "SP",
                "telefone": "17996612958",
                "celular": null,
                "email": null,
                "dt_cadastro": "2020-03-31 12:53:16",
                "dt_alteracao": "2020-03-31 12:53:16",
                "ativo": 1,
                "foto": null
            },
            "funcionamento": [
                {
                    "id_funcionamento": 29,
                    "dia_semana": "SEGUNDA",
                    "horario_abertura": "00:00:00",
                    "horario_fechamento": "23:59:00",
                    "fechado": 1
                },
                {
                    "id_funcionamento": 30,
                    "dia_semana": "TERÇA",
                    "horario_abertura": "08:30:00",
                    "horario_fechamento": "09:00:00",
                    "fechado": 0
                },
                {
                    "id_funcionamento": 31,
                    "dia_semana": "QUINTA",
                    "horario_abertura": "01:10:00",
                    "horario_fechamento": "02:00:00",
                    "fechado": 0
                }
            ]
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhuma empresa encontrada.",
    "code": 404
}

HTTP Request

POST /api/v1/grupo-economico/empresas

Body Parameters

Parameter Type Status Description
latitude float or text required Latitude para ordenar as empresas
longitude float or text required Longitude para ordenar as empresas

Notificações

Buscar notificações

Método dedicado à listagem de notificações para o cliente

Example request:

curl -x GET \
"localhost/api/v1/notificacao" \
-H "Content-type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
const url = new URL(
    "localhost/api/v1/notificacao
");

let headers = {
    "Content-type: application/json",
    "Accept: application/json",
    "Authorization: Bearer {token}"
};

fetch(url, {
    method: "GET",
    headers: headers
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/notificacao',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_notificacao": 1,
        "tipo_notificacao": 1,
        "codigo": 238,
        "id_empresa": 1,
        "descricao": "Seu pedido, número 226 foi aceito pelo estabelecimento.",
        "confirmado": 0,
        "dt_cadastro": "2022-03-22 16:55:39",
        "dt_alteracao": "2022-03-22 16:55:39"
    }
}

Example response (404):

{
    "success": false,
    "error": "Nenhuma notificação foi encontrada.",
    "code": 404
}

HTTP Request

GET /api/v1/notificacao

Marcar notificação como lida

Utilize este método para confirmar que uma notificação foi enviada para um dispositivo móvel

Example request:

curl -X PUT \
    "localhost/api/v1/notificacao/1/lida" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/notificacao/1/lida"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/notificacao/1/lida',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_notificacao": 1,
        "tipo_notificacao": 1,
        "codigo": 238,
        "id_empresa": 1,
        "descricao": "Seu pedido, número 226 foi aceito pelo estabelecimento.",
        "confirmado": 1,
        "dt_cadastro": "2022-03-22 16:55:39",
        "dt_alteracao": "2022-03-22 17:05:23"
    }
}

Example response (404):

{
    "success": false,
    "error": "Notificação não encontrada.",
    "code": 404
}

HTTP Request

PUT /api/v1/notificacao/{idNotificacao}/lida

Pedidos

Buscar pedidos

Método dedicado à listagem de pedidos do cliente

Example request:

curl -X POST \
    "localhost/api/v1/pedidos" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/pedidos',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_pedido": 1,
            "id_empresa": 2,
            "numero": "99231",
            "status": "CONFIRMADO",
            "dt_agendamento": "2020-12-29 15:38:35",
            "id_cliente": 31,
            "id_endereco_cliente": 1,
            "tipo_entrega": "RETIRADA",
            "id_metodo_pagamento": 1,
            "troco": "1.25",
            "total_desconto": "10.00",
            "id_disponibilidade": 1,
            "observacao": "Pedido teste",
            "dt_pedido": "2020-12-29 14:26:38",
            "dt_atualizacao": "2021-01-04 13:48:55",
            "itens": [
                {
                    "id_pedido": 1,
                    "item": 1,
                    "id_produto": 8,
                    "quantidade": "1.00",
                    "valor": "0.10",
                    "desconto": "0.05",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 8,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "21",
                        "id_categoria": 0,
                        "descricao": "teste 5",
                        "descricao_app": "teste app",
                        "unidade_integracao": "UN",
                        "porcao": "0.00",
                        "preco_venda": "0.00",
                        "imagem": "\/img\/default-image.png",
                        "dt_cadastro": "2020-11-13 09:10:19",
                        "dt_alteracao": "2020-11-25 16:17:22",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                },
                {
                    "id_pedido": 1,
                    "item": 2,
                    "id_produto": 9,
                    "quantidade": "2.00",
                    "valor": "10.00",
                    "desconto": "5.00",
                    "acrescimo": "0.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 9,
                        "id_empresa": 2,
                        "codigo": 2,
                        "codigo_integracao": "teste",
                        "id_categoria": 97,
                        "descricao": "teste 6",
                        "descricao_app": "teste",
                        "unidade_integracao": "UN",
                        "porcao": "0.00",
                        "preco_venda": "0.00",
                        "imagem": "img\/produtos\/empresa_2\/imagem\/produto_teste_1606481376.png",
                        "dt_cadastro": "2020-11-13 09:10:50",
                        "dt_alteracao": "2020-11-27 09:49:37",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                }
            ],
            "historico": [
                {
                    "id_status": 1,
                    "id_pedido": 1,
                    "codigo": "CANCELADO",
                    "dt_status": "2020-12-30 17:38:16"
                },
                {
                    "id_status": 2,
                    "id_pedido": 1,
                    "codigo": "CONFIRMADO",
                    "dt_status": "2020-12-30 17:46:46"
                },
                {
                    "id_status": 3,
                    "id_pedido": 1,
                    "codigo": "CONCLUIDO",
                    "dt_status": "2020-12-30 17:47:22"
                },
                {
                    "id_status": 4,
                    "id_pedido": 1,
                    "codigo": "CONFIRMADO",
                    "dt_status": "2021-01-04 13:48:13"
                },
                {
                    "id_status": 5,
                    "id_pedido": 1,
                    "codigo": "CANCELADO",
                    "dt_status": "2021-01-04 13:48:55"
                }
            ],
            "metodos_pagamento": {
                "id_metodo_pagamento": 1,
                "id_empresa": 3,
                "tipo": "DINHEIRO",
                "ativo": 1,
                "bandeiras": null
            }
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum pedido encontrado.",
    "code": 404
}

HTTP Request

POST /api/v1/pedidos

Inserir um pedido para o cliente

Utilize este método para inserir um pedido para o cliente logado.

Example request:

curl -X POST \
    "localhost/api/v1/pedidos/inserir" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"numero":"123","id_endereco_cliente":"1","tipo_entrega":"RETIRADA ou ENTREGA","id_metodo_pagamento":"1","troco":"0.00","taxa_entrega":"0.00","id_disponibilidade":"1","id_cartao":"1","metodo_pagamento":"DEBITO","bandeira_cartao":"VISA","observacao":"Exemplo de observa\u00e7\u00e3o","produtos":{"item":"1","id_produto":"1","quantidade":"5.00","valor":"5.00","desconto":"5.00","acrescimo":"5.00"},"opcao_falta_estoque":"Entre em contato comigo"}'
const url = new URL(
    "localhost/api/v1/pedidos/inserir"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "numero": "123",
    "id_endereco_cliente": "1",
    "tipo_entrega": "RETIRADA ou ENTREGA",
    "id_metodo_pagamento": "1",
    "troco": "0.00",
    "taxa_entrega": "0.00",
    "id_disponibilidade": "1",
    "id_cartao": "1",
    "metodo_pagamento": "DEBITO",
    "bandeira_cartao": "VISA",
    "observacao": "Exemplo de observa\u00e7\u00e3o",
    "produtos": {
        "item": "1",
        "id_produto": "1",
        "quantidade": "5.00",
        "valor": "5.00",
        "desconto": "5.00",
        "acrescimo": "5.00"
    },
    "opcao_falta_estoque":"Entre em contato comigo"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/pedidos/inserir',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'numero' => '123',
            'id_endereco_cliente' => '1',
            'tipo_entrega' => 'RETIRADA ou ENTREGA',
            'id_metodo_pagamento' => '1',
            'troco' => '0.00',
            'taxa_entrega' => '0.00',
            'id_disponibilidade' => '1',
            'id_cartao' => '1',
            'metodo_pagamento' => 'DEBITO',
            'bandeira_cartao' => 'VISA',
            'observacao' => 'Exemplo de observação',
            'produtos' => [
                'item' => '1',
                'id_produto' => '1',
                'quantidade' => '5.00',
                'valor' => '5.00',
                'desconto' => '5.00',
                'acrescimo' => '5.00',
            ],
            'opcao_falta_estoque' => 'Entre em contato comigo'
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "numero": 1001,
        "dt_agendamento": "2000-12-12 00:00:00",
        "id_endereco_cliente": 1,
        "tipo_entrega": "RETIRADA",
        "id_metodo_pagamento": 1,
        "id_disponibilidade": 1,
        "troco": 10,
        "total_desconto": 10,
        "observacao": "teste",
        "id_cliente": 31,
        "id_empresa": 2,
        "status": "PENDENTE",
        "dt_atualizacao": "2021-01-08 16:19:42",
        "dt_pedido": "2021-01-08 16:19:42",
        "id_pedido": 63
    }
}

Example response (406):

{
    "success": false,
    "error": {
        "numero": [
            "Campo numero não informado"
        ],
        "dt_agendamento": [
            "Campo dt agendamento não informado"
        ],
        "id_endereco_cliente": [
            "Campo id endereco cliente não informado"
        ],
        "tipo_entrega": [
            "Campo tipo entrega não informado"
        ],
        "id_metodo_pagamento": [
            "Campo id metodo pagamento não informado"
        ],
        "id_disponibilidade": [
            "Campo id disponibilidade não informado"
        ]
    },
    "code": 406
}

HTTP Request

POST /api/v1/pedidos/inserir

Body Parameters

Parameter Type Status Description
numero integer required Número do pedido
id_endereco_cliente integer required ID do endereco para qual o pedido será entrega
tipo_entrega text required Tipo de entrega do pedido
id_metodo_pagamento integer required ID do método de pagamento selecionado
troco decimal(10,2) optional Troco do pedido
taxa_entrega decimal(10,2) optional Taxa de entrega do pedido
id_disponibilidade integer required ID do horário de disponibilidade da empresa
id_cartao integer required ID do cartão utilizado na transação
metodo_pagamento text required Metodo de pagamento
bandeira_cartao text required Bandeira do metodo (se for dinheiro mandar null)
observacao text optional Observação do pedido
produtos array of objects required Produtos a serem inseridos no pedido
produtos.item integer required Número da ordem dos itens
produtos.id_produto integer required ID do produto
produtos.quantidade decimal(10,2) required Quantidade de produtos nesse item
produtos.valor decimal(10,2) required Valor unitário do produto nesse item
produtos.desconto decimal(10,2) required Desconto unitário do produto nesse item
produtos.acrescimo decimal(10,2) required Acréscimo unitário do produto nesse item

Calcular taxa de entrega - frete

Método voltado para calcular o frete da entrega em relação ao endereço enviado e a localização da empresa

Example request:

curl -X GET \
    -G "localhost/api/v1/pedidos/frete/esse" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/frete/esse"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/pedidos/frete/esse',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_taxa": 2,
        "raio": "15.55",
        "valor": "1.23"
    }
}

Example response (404):

{
    "success": false,
    "error": [
        "O endereço selecionado está fora do alcance de entrega.",
        "Endereço não encontrado."
    ],
    "code": 404
}

HTTP Request

GET /api/v1/pedidos/frete/{idEndereco}

URL Parameters

Parameter Status Description
idEndereco required id do endereço do cliente.

Cancelar pedidos em andamento

Método utilizado para cancelar um pedido ainda pendente.

Example request:

curl -X PUT \
    "localhost/api/v1/pedidos/1/cancelar" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/1/cancelar"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/pedidos/1/cancelar',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_pedido": 60,
        "id_empresa": 2,
        "numero": "1002",
        "status": "CANCELADO",
        "dt_agendamento": "2000-12-12 00:00:00",
        "id_cliente": 31,
        "id_endereco_cliente": 1,
        "tipo_entrega": "RETIRADA",
        "id_metodo_pagamento": 1,
        "troco": "10.00",
        "id_disponibilidade": 1,
        "observacao": "teste",
        "dt_pedido": "2021-01-08 15:52:21",
        "dt_atualizacao": "2021-01-08 16:50:46"
    }
}

Example response (404):

{
    "success": false,
    "error": "O pedido enviado não pode ser cancelado, verifique se ele está pendente.",
    "code": 404
}

HTTP Request

PUT /api/v1/pedidos/{idPedido}/cancelar

Buscar os horários de disponibilidade da empresa

Método utilizado para buscar os horários disponíveis para a entrega de pedidos.

Example request:

curl -X POST \
    "localhost/api/v1/pedidos/horarios" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/horarios"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/pedidos/horarios',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "data": "2021-01-21",
            "dia_semana": "QUINTA",
            "horarios": [
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "09:00:00",
                    "horario_fim": "09:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 5,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "09:30:00",
                    "horario_fim": "10:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 1,
                    "limite_excedido": false
                }
            ]
        },
        {
            "data": "2021-01-22",
            "dia_semana": "SEXTA",
            "horarios": [
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "02:00:00",
                    "horario_fim": "02:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Retirada",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "02:30:00",
                    "horario_fim": "03:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Retirada",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "03:00:00",
                    "horario_fim": "03:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Retirada",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "03:30:00",
                    "horario_fim": "04:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Retirada",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                }
            ]
        },
        {
            "data": "2021-01-23",
            "dia_semana": "SABADO",
            "horarios": [
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "10:00:00",
                    "horario_fim": "10:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "10:30:00",
                    "horario_fim": "11:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "11:00:00",
                    "horario_fim": "11:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "11:30:00",
                    "horario_fim": "12:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "12:00:00",
                    "horario_fim": "12:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "12:30:00",
                    "horario_fim": "13:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "13:00:00",
                    "horario_fim": "13:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "13:30:00",
                    "horario_fim": "14:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "14:00:00",
                    "horario_fim": "14:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "14:30:00",
                    "horario_fim": "15:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "15:00:00",
                    "horario_fim": "15:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "15:30:00",
                    "horario_fim": "16:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "16:00:00",
                    "horario_fim": "16:30:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                }
            ]
        },
        {
            "data": "2021-01-24",
            "dia_semana": "DOMINGO",
            "horarios": [
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "20:00:00",
                    "horario_fim": "21:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "21:00:00",
                    "horario_fim": "22:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                }
            ]
        },
        {
            "data": "2021-01-25",
            "dia_semana": "SEGUNDA",
            "horarios": [
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "10:00:00",
                    "horario_fim": "11:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 2,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "11:00:00",
                    "horario_fim": "12:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "12:00:00",
                    "horario_fim": "13:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "13:00:00",
                    "horario_fim": "14:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": false,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "14:00:00",
                    "horario_fim": "15:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                },
                {
                    "id_disponibilidade": 1,
                    "horario_inicio": "15:00:00",
                    "horario_fim": "16:00:00",
                    "fator_taxa": "1.00",
                    "tipo": "Entrega",
                    "limite": 10,
                    "data_disponivel": true,
                    "qtd_pedidos": 0,
                    "limite_excedido": false
                }
            ]
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum horário encontrado.",
    "code": 404
}

HTTP Request

POST /api/v1/pedidos/horarios

URL Parameters

Parameter Status Description
tipo optional opitional tipo de entrega.

Buscar pedidos para o integrador

Método utilizado para buscar os pedidos para o integrador.

Example request:

curl -X GET \
    -G "localhost/api/v1/pedidos/integrados" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/integrados"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/pedidos/integrados',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_pedido": 66,
            "id_empresa": 2,
            "numero": "99233",
            "status": "CONFIRMADO",
            "dt_agendamento": "2021-01-21",
            "horario_inicio": "09:09:02",
            "horario_fim": "11:10:05",
            "id_cliente": 31,
            "id_endereco_cliente": 1,
            "tipo_entrega": "RETIRADA",
            "id_metodo_pagamento": 1,
            "endereco_entrega": null,
            "troco": "10.00",
            "taxa_entrega": "10.00",
            "observacao": "teste",
            "dt_pedido": "2021-01-13 13:46:16",
            "id_transacao": null,
            "dt_atualizacao": "2021-01-29 10:53:31",
            "logradouro_entrega": "R. Cap. Jarbas Viêira de Souza",
            "numero_entrega": "45",
            "cep_entrega": "14150000",
            "complemento_entrega": "NULL",
            "referencia_entrega": "NULL",
            "bairro_entrega": "Subsetor Sul - 2 (S-2)",
            "cidade_entrega": "Ribeirão Preto",
            "estado_entrega": "SP",
            "itens": [
                {
                    "id_pedido": 66,
                    "item": 1,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                },
                {
                    "id_pedido": 66,
                    "item": 2,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                },
                {
                    "id_pedido": 66,
                    "item": 3,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                }
            ],
            "historico": [
                {
                    "id_status": 12,
                    "id_pedido": 66,
                    "codigo": "PENDENTE",
                    "dt_status": "2021-01-13 13:46:16"
                },
                {
                    "id_status": 27,
                    "id_pedido": 66,
                    "codigo": "CONFIRMADO",
                    "dt_status": "2021-01-29 10:53:31"
                }
            ]
        },
        {
            "id_pedido": 70,
            "id_empresa": 2,
            "numero": "2",
            "status": "CONFIRMADO",
            "dt_agendamento": "1969-12-31",
            "horario_inicio": "10:00:00",
            "horario_fim": "11:00:00",
            "id_cliente": 31,
            "id_endereco_cliente": 1,
            "tipo_entrega": "ENTREGA",
            "id_metodo_pagamento": 1,
            "endereco_entrega": null,
            "troco": "10.00",
            "taxa_entrega": "10.00",
            "observacao": "teste",
            "dt_pedido": "2021-01-28 14:28:12",
            "id_transacao": null,
            "dt_atualizacao": "2021-02-03 16:20:11",
            "logradouro_entrega": "R. Cap. Jarbas Viêira de Souza",
            "numero_entrega": "45",
            "cep_entrega": "14150000",
            "complemento_entrega": "NULL",
            "referencia_entrega": "NULL",
            "bairro_entrega": "Subsetor Sul - 2 (S-2)",
            "cidade_entrega": "Ribeirão Preto",
            "estado_entrega": "SP",
            "itens": [
                {
                    "id_pedido": 70,
                    "item": 1,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                },
                {
                    "id_pedido": 70,
                    "item": 2,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                },
                {
                    "id_pedido": 70,
                    "item": 3,
                    "id_produto": 1,
                    "quantidade": "1.00",
                    "valor": "1.00",
                    "desconto": "1.00",
                    "acrescimo": "1.00",
                    "id_promocao": null,
                    "produto": {
                        "id_produto": 1,
                        "id_empresa": 2,
                        "codigo": 1,
                        "codigo_integracao": "123",
                        "id_categoria": 99,
                        "descricao": "Arroz Integral",
                        "descricao_app": "Arroz Integral",
                        "unidade_integracao": "G",
                        "unidade_agrupada": 0,
                        "porcao": "10.00",
                        "preco_venda": "12.00",
                        "imagem": "",
                        "dt_cadastro": "2020-10-28 11:31:53",
                        "dt_alteracao": "2020-10-28 11:31:53",
                        "ativo": 1,
                        "disponivel_compra": 0
                    }
                }
            ],
            "historico": [
                {
                    "id_status": 19,
                    "id_pedido": 70,
                    "codigo": "PENDENTE",
                    "dt_status": "2021-01-28 14:28:12"
                },
                {
                    "id_status": 34,
                    "id_pedido": 70,
                    "codigo": "CONFIRMADO",
                    "dt_status": "2021-02-03 16:20:11"
                }
            ]
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum pedido encontrado.",
    "code": 404
}

HTTP Request

GET /api/v1/pedidos/integrados

Buscar eventos dos pedidos para o integrador

Método utilizado para buscar eventos dos pedidos para o integrador.

Example request:

curl -X GET \
    -G "localhost/api/v1/pedidos/eventos/integrados" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/eventos/integrados"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/pedidos/eventos/integrados',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_status": 18,
            "id_pedido": 69,
            "codigo": "PENDENTE",
            "dt_status": "2021-01-28 14:24:08"
        },
        {
            "id_status": 19,
            "id_pedido": 70,
            "codigo": "PENDENTE",
            "dt_status": "2021-01-28 14:28:12"
        },
        {
            "id_status": 20,
            "id_pedido": 71,
            "codigo": "PENDENTE",
            "dt_status": "2021-01-28 14:44:13"
        },
        {
            "id_status": 31,
            "id_pedido": 71,
            "codigo": "CONFIRMADO",
            "dt_status": "2021-02-03 16:06:42"
        },
        {
            "id_status": 32,
            "id_pedido": 71,
            "codigo": "ENVIADO",
            "dt_status": "2021-02-03 16:06:44"
        },
        {
            "id_status": 33,
            "id_pedido": 71,
            "codigo": "ENTREGUE",
            "dt_status": "2021-02-03 16:06:48"
        },
        {
            "id_status": 34,
            "id_pedido": 70,
            "codigo": "CONFIRMADO",
            "dt_status": "2021-02-03 16:20:11"
        },
        {
            "id_status": 35,
            "id_pedido": 69,
            "codigo": "CANCELADO",
            "dt_status": "2021-02-03 16:23:50"
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum pedido encontrado.",
    "code": 404
}

HTTP Request

GET /api/v1/pedidos/eventos/integrados

Alterar status de eventos dos pedidos

Método utilizado para buscar eventos dos pedidos para o integrador.

Example request:

curl -X PUT \
    "localhost/api/v1/pedidos/1/eventos/integrados/1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/pedidos/1/eventos/integrados/1"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/pedidos/1/eventos/integrados/1',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": "CONFIRMADO"
}

Example response (404):

{
    "success": false,
    "error": "O status é inválido.",
    "code": 406
}

HTTP Request

PUT /api/v1/pedidos/{idPedido}/eventos/integrados/{status}

Produtos

Buscar os produtos por por filtro ou categoria

Método utilizado para buscar os produtos através de um filtro ou categoria.

Example request:

curl -X POST \
    "localhost/api/v1/produtos" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/produtos"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/produtos',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_produto": 1,
            "id_empresa": 2,
            "codigo": 7,
            "codigo_integracao": "321",
            "id_categoria": 87,
            "descricao": "teste 1",
            "descricao_app": "teste 1",
            "unidade_integracao": "UN",
            "porcao": "0.00",
            "preco_venda": "0.21",
            "imagem": "\/img\/default-image.png",
            "dt_cadastro": "2020-11-27 11:43:39",
            "dt_alteracao": "2020-11-27 11:43:39",
            "ativo": 0,
            "disponivel_compra": 1,
            "promocoes": [],
            "observacoes": []
        },
        {
            "id_produto": 2,
            "id_empresa": 2,
            "codigo": 8,
            "codigo_integracao": "123",
            "id_categoria": 86,
            "descricao": "teste 2",
            "descricao_app": "teste 2",
            "unidade_integracao": "KG",
            "porcao": "123.00",
            "preco_venda": "1.23",
            "imagem": "\/img\/default-image.png",
            "dt_cadastro": "2020-11-27 13:08:25",
            "dt_alteracao": "2020-11-27 13:08:25",
            "ativo": 1,
            "disponivel_compra": 0,
            "promocoes": [],
            "observacoes": [
                {
                    "id_observacao": 10,
                    "id_produto": 52,
                    "dt_cadastro": "2021-03-30 17:55:29",
                    "dt_alteracao": "2021-03-30 17:55:29",
                    "dados_observacao": {
                        "id_observacao": 10,
                        "id_observacao_pai": null,
                        "id_grupo_economico": 1,
                        "observacao": "teste",
                        "dt_cadastro": "2021-03-30 17:04:26",
                        "dt_alteracao": "2021-03-30 17:06:20",
                        "children": [
                            {
                                "id_observacao": 14,
                                "id_observacao_pai": 10,
                                "id_grupo_economico": 1,
                                "observacao": "teste",
                                "dt_cadastro": "2021-03-30 17:06:16",
                                "dt_alteracao": "2021-03-30 17:06:16"
                            }
                        ]
                    }
                }
            ]
        },
        {
            "id_produto": 5,
            "id_empresa": 1,
            "codigo": 4,
            "codigo_integracao": "1243535",
            "id_categoria": 15,
            "descricao": "Agua Aguada Sem Gás 500ml",
            "descricao_app": "Agua Aguada Sem Gás Teste nome 500ml",
            "unidade_integracao": "UN",
            "unidade_agrupada": 0,
            "porcao": "0.00",
            "preco_venda": "2.00",
            "imagem": "img\/produtos\/empresa_1\/imagem\/produto_Agua_Aguada_Sem_Gás_500ml_1610716713.png",
            "dt_cadastro": "2021-01-04 16:27:11",
            "dt_alteracao": "2021-01-18 13:36:51",
            "ativo": 1,
            "disponivel_compra": 1,
            "promocoes": [
                {
                    "id_promocao_produto": 39,
                    "id_promocao": 4,
                    "id_produto": 5,
                    "id_empresa": 1,
                    "vr_promocional": null,
                    "qtd_compre": null,
                    "qtd_pague": null,
                    "dt_cadastro": "2021-03-11 15:46:25",
                    "dt_alteracao": "2021-03-11 15:46:25",
                    "tipo_promocao": "PRECO_FIXO"
                },
                {
                    "id_promocao_produto": 40,
                    "id_promocao": 8,
                    "id_produto": 5,
                    "id_empresa": 1,
                    "vr_promocional": null,
                    "qtd_compre": 4,
                    "qtd_pague": 2,
                    "dt_cadastro": "2021-03-11 17:05:35",
                    "dt_alteracao": "2021-03-11 17:05:35",
                    "tipo_promocao": "COMPRE_PAGUE"
                }
            ],
            "observacoes": []
        }
    ]
}

HTTP Request

POST /api/v1/produtos

URL Parameters

Parameter Status Description
filtro optional Nome/descrição ou código dos produtos.
id_categoria optional id da categoria.

Buscar as categorias

Método utilizado para buscar as categorias da empresa logada.

Example request:

curl -X GET \
    -G "localhost/api/v1/produtos/categorias" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/produtos/categorias"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/produtos/categorias',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_categoria": 86,
            "id_categoria_pai": null,
            "descricao": "teste",
            "imagem": "img\/categorias_produto\/64c25db824bca287582828f414b11db0.png",
            "dt_cadastro": "2020-11-12 15:34:26",
            "dt_alteracao": "2020-11-12 16:18:52",
            "ativo": 1,
            "subcategorias": [
                {
                    "id_categoria": 103,
                    "id_categoria_pai": 86,
                    "descricao": "teste",
                    "imagem": null,
                    "dt_cadastro": "2020-11-12 16:38:40",
                    "dt_alteracao": "2020-11-12 16:38:40",
                    "ativo": 1,
                    "qtd_produtos": 0
                },
                {
                    "id_categoria": 105,
                    "id_categoria_pai": 86,
                    "descricao": "teste",
                    "imagem": null,
                    "dt_cadastro": "2020-11-12 16:38:42",
                    "dt_alteracao": "2020-11-12 16:38:42",
                    "ativo": 1,
                    "qtd_produtos": 0
                },
                {
                    "id_categoria": 111,
                    "id_categoria_pai": 86,
                    "descricao": "teste",
                    "imagem": "\/img\/default-image.png",
                    "dt_cadastro": "2020-11-12 16:42:54",
                    "dt_alteracao": "2020-11-12 16:42:54",
                    "ativo": 0,
                    "qtd_produtos": 0
                }
            ]
        },
        {
            "id_categoria": 87,
            "id_categoria_pai": null,
            "descricao": "teste",
            "imagem": "img\/categorias_produto\/2497d7e4f18377b2ef511c1f9f2fe284.png",
            "dt_cadastro": "2020-11-12 15:34:36",
            "dt_alteracao": "2020-11-12 15:34:36",
            "ativo": 1,
            "subcategorias": [
                {
                    "id_categoria": 93,
                    "id_categoria_pai": 87,
                    "descricao": "teste",
                    "imagem": "\/img\/default-image.png",
                    "dt_cadastro": "2020-11-12 16:19:00",
                    "dt_alteracao": "2020-11-12 16:19:00",
                    "ativo": 1,
                    "qtd_produtos": 4
                },
                {
                    "id_categoria": 94,
                    "id_categoria_pai": 87,
                    "descricao": "teste",
                    "imagem": "\/img\/default-image.png",
                    "dt_cadastro": "2020-11-12 16:19:06",
                    "dt_alteracao": "2020-11-12 16:19:06",
                    "ativo": 1,
                    "qtd_produtos": 2
                }
            ]
        },
        {
            "id_categoria": 118,
            "id_categoria_pai": null,
            "descricao": "teste",
            "imagem": "\/img\/default-image.png",
            "dt_cadastro": "2020-11-25 09:27:43",
            "dt_alteracao": "2020-11-25 09:27:43",
            "ativo": 1,
            "subcategorias": []
        }
    ]
}

HTTP Request

GET /api/v1/produtos/categorias

Transações

Salvar dados do cartão de crédito

Método utilizado para salvar os dados do cartão para o cliente logado.

Example request:

curl -X POST \
    "localhost/api/v1/transacoes/cartao" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"numero":"12345..16","cvv":"123","mes_expiracao":"12","ano_expiracao":"2021","nome_cartao":"Manoel da Silva"}'
const url = new URL(
    "localhost/api/v1/transacoes/cartao"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "numero": "12345..16",
    "cvv": "123",
    "mes_expiracao": "12",
    "ano_expiracao": "2021",
    "nome_cartao": "Manoel da Silva"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/transacoes/cartao',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'numero' => '12345..16',
            'cvv' => '123',
            'mes_expiracao' => '12',
            'ano_expiracao' => '2021',
            'nome_cartao' => 'Manoel da Silva',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "retorno": "Cartão salvo com sucesso."
    }
}

HTTP Request

POST /api/v1/transacoes/cartao

Body Parameters

Parameter Type Status Description
numero integer required Número do cartão
cvv integer required Código de verificação do cartão (cvv)
mes_expiracao integer required Mês de expiração no cartão
ano_expiracao integer required Ano de expiração no cartão
nome_cartao text required Nome no cartão

Remover cartão do cliente

Método excluir para cartão do cliente logado

Example request:

curl -X DELETE \
    "localhost/api/v1/transacoes/eaque/cartao" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/transacoes/eaque/cartao"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'localhost/api/v1/transacoes/eaque/cartao',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_cartao": 3,
        "id_cliente": 31,
        "mes_expiracao": "eyJpdiI6IllFOUs2ZWwwSGdDYT...",
        "ano_expiracao": "eyJpdiI6ImZtQ1YrQVA3dnVuNl...",
        "nome_cartao": "eyJpdiI6InBjTElYdWlHZGdcL3V0...",
        "numero": "eyJpdiI6IjNsa0tZdlwvMkMxVHEwREJOS...",
        "dt_cadastro": "2021-01-29 11:53:38",
        "dt_alteracao": "2021-01-29 11:53:38"
    }
}

Example response (404):

{
    "success": false,
    "error": "Cartão não encontrado.",
    "code": 404
}

HTTP Request

DELETE /api/v1/transacoes/{idCartao}/cartao

URL Parameters

Parameter Status Description
idCartao required id do cartão do cliente.

Buscar cartões salvos

Método utilizado para buscar os cartões cadastrados do cliente logado.

Example request:

curl -X GET \
    -G "localhost/api/v1/transacoes/cartoes" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/transacoes/cartoes"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/transacoes/cartoes',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_cartao": 1,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4562",
            "dt_cadastro": "2021-02-09 09:27:26",
            "dt_alteracao": "2021-02-09 09:27:26",
            "bandeira": "outras"
        },
        {
            "id_cartao": 2,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:27:34",
            "dt_alteracao": "2021-02-09 09:27:34",
            "bandeira": "outras"
        },
        {
            "id_cartao": 3,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:29:02",
            "dt_alteracao": "2021-02-09 09:29:02",
            "bandeira": "visa"
        },
        {
            "id_cartao": 4,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:29:11",
            "dt_alteracao": "2021-02-09 09:29:11",
            "bandeira": "mastercard"
        },
        {
            "id_cartao": 5,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:29:20",
            "dt_alteracao": "2021-02-09 09:29:20",
            "bandeira": "outras"
        },
        {
            "id_cartao": 6,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:30:04",
            "dt_alteracao": "2021-02-09 09:30:04",
            "bandeira": "discover"
        },
        {
            "id_cartao": 7,
            "id_cliente": 31,
            "mes_expiracao": "12",
            "ano_expiracao": "2020",
            "nome_cartao": "Peterson Silva",
            "numero": "**** **** **** **** 4560",
            "dt_cadastro": "2021-02-09 09:30:25",
            "dt_alteracao": "2021-02-09 09:30:25",
            "bandeira": "mastercard"
        }
    ]
}

Example response (404):

{
    "success": false,
    "error": "Nenhum cartão encontrado",
    "code": 404
}

HTTP Request

GET /api/v1/transacoes/cartoes

Vantagens

Buscar vantagem do cliente logado

Método utilizado para buscar as vantagens que o cliente ativou no aplicativo.

Example request:

curl -X GET \
    -G "localhost/api/v1/vantagens" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/vantagens"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/vantagens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "dt_ativacao": "2020-02-02 00:00:00",
            "status": "",
            "qtd_utilizada": "1.000",
            "cupom": {
                "id_cupom": 6,
                "id_empresa": 1,
                "codigo": "1",
                "codigo_integracao": "1",
                "descricao": "TESTE 1",
                "tipo_promocional": "TESTE",
                "qtd_limite": 1,
                "inicio_vigencia": "2020-03-20 00:00:00",
                "fim_vigencia": "2021-03-15 00:00:00",
                "limite_ativacoes": 10,
                "imagem": "1",
                "ativo": 1,
                "dt_cadastro": "2020-03-15 00:00:00",
                "perc_desconto": "10.000",
                "categoria": {
                    "descricao": "salgados"
                }
            }
        }
    ]
}

HTTP Request

GET /api/v1/vantagens

Buscar vantagens por CPF

Método utilizado para buscar as vantagens que o cliente ativou no aplicativo filtrado por cpf.

OBS: Salve o id do cliente para realizar o cadastro da compra posteriormente

Example request:

curl -X GET \
    -G "localhost/api/v1/vantagens/architecto" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/vantagens/architecto"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/vantagens/architecto',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": {
        "id_cliente": 9,
        "ativo": 1,
        "inscricao_federal": "43279782805",
        "vantagens": [
            {
                "dt_ativacao": "2020-02-02 00:00:00",
                "status": "",
                "id_vantagem": 6,
                "qtd_utilizada": "2.000",
                "qtd_disponivel": "1.000",
                "cupom": {
                    "id_cupom": 6,
                    "id_empresa": 1,
                    "codigo": "1",
                    "codigo_integracao": "1",
                    "descricao": "TESTE 1",
                    "tipo_promocional": "TESTE",
                    "qtd_limite": 3,
                    "inicio_vigencia": "2020-03-20 00:00:00",
                    "fim_vigencia": "2021-03-15 00:00:00",
                    "limite_ativacoes": 10,
                    "imagem": "1",
                    "ativo": 1,
                    "dt_cadastro": "2020-03-15 00:00:00",
                    "perc_desconto": "10.000",
                    "categoria": {
                        "descricao": "salgados"
                    }
                }
            }
        ]
    }
}

Example response (404):

{
    "success": false,
    "error": "Cliente não encontrado.",
    "code": 404
}

HTTP Request

GET /api/v1/vantagens/{cpf}

URL Parameters

Parameter Status Description
cpf required cpf informado na compra.

Ativar uma vantagem

Utilize este método para ativar a vantagem do cupom escolhido.

Example request:

curl -X POST \
    "localhost/api/v1/vantagens/cupom/doloremque" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/vantagens/cupom/doloremque"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "POST",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/vantagens/cupom/doloremque',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (201):

{
    "success": false,
    "error": "Cliente não encontrado.",
    "code": 404
}

Example response (404):

{
    "success": true,
    "data": {
        "dt_ativacao": {
            "date": "2020-04-03 10:32:07.732579",
            "timezone_type": 3,
            "timezone": "America\/Sao_Paulo"
        },
        "status": "ATIVADO",
        "id_vantagem": 99
    }
}

Example response (409):

{
    "success": false,
    "error": "Cupom já ativado.",
    "code": 409
}

HTTP Request

POST /api/v1/vantagens/cupom/{idCupom}

URL Parameters

Parameter Status Description
idCupom required id do cupom.

Lista Compra

Buscar Listas de compras

Método utilizado para buscar as listas de compras que o cliente cadastrou no aplicativo.

Example request:

curl -X GET \
    -G "localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->get(
    'localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": [
        {
            "id_lista": 8,
            "id_cliente": 60,
            "id_empresa": 1,
            "data_cadastro": "2022-11-03 14:59:37",
            "nome_lista": "lista Um",
            "itens": [
                {
                    "id_lista": 8,
                    "id_produto": 1,
                    "quantidade": "6.00"
                },
                {
                    "id_lista": 8,
                    "id_produto": 2,
                    "quantidade": "12.00"
                }
            ]
        }
    ]
}

HTTP Request

GET /api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}

Parameter Type Status Description
id_cliente int required Id do cliente
id_empresa int required Id da empresa

Inserir lista de compra

Utilize este método para inserir uma lista de compra.

Example request:

curl -X POST \
    "localhost/api/v1/lista-compra/inserir" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/lista-compra/inserir"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};
let body = { 
    "nome_lista": String,
    "itens": 
        [
            {
                "qtde":decimal,
                "id_produto":int
            }
        ]
    }
};

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->post(
    'localhost/api/v1/lista-compra/inserir',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [ 
        'nome_lista' => String,
        'itens' => [{
            'qtde' => Decimal,
            'id_produto' => Int,
        }],
    ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data":[]
}

HTTP Request

POST /api/v1/lista-compra/inserir

Body Parameters

Parameter type Status Description
nome_lista String required Nome da lista de compra
itens Array of objects optional Itens da lista de compra

Alterar lista de compra

Utilize este método sempre que desejar alterar uma lista de compra. Este método permite adicionar novos itens a lista de compra

Example request:

curl -X PUT \
    "localhost/api/v1/lista-compra/atualizar" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{"id_lista":int,"itens":[{"qtde":decimal, "id_produto":int}]}'
const url = new URL(
    "localhost/api/v1/lista-compra/atualizar"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "id_lista": Int,
    "nome_lista": String,
    "itens": 
        [
            {
                "qtde":decimal,
                "id_produto":int
            }
        ]
    }
}

fetch(url, {
    method: "PUT",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->put(
    'localhost/api/v1/lista-compra/atualizar',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'id_lista' => 'String',
            'nome_lista' => 'String',
            'itens' => [{
                'qtde' => 'Decimal,
                'id_produto' => 'Int',
            }],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": []
    }
}

HTTP Request

PUT /api/v1/lista-compra/atualizar

Body Parameters

Parameter Type Status Description
id_lista int required Id da lista de compra
nome_lista String optional Nome da lista de compra
itens Array of objects optional Itens da lista de compra

Remover lista de compra

Utilize este método para remover uma lista de compra.

Example request:

curl -X DELETE \
    "localhost/api/v1/lista-compra/delete-lista/{id_lista}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/lista-compra/delete-lista/{id_lista}"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'localhost/api/v1/lista-compra/delete-lista/{id_lista}',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": []
}

HTTP Request

DELETE /api/v1/lista-compra/delete-lista/{id_lista}

Request Parameters

Parameter Type Status Description
id_lista int required Id da lista de compra

Remover item da lista de compra

Utilize este método para remover um item da lista de compra.

Example request:

curl -X DELETE \
    "localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: Bearer {token}"
const url = new URL(
    "localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();
$response = $client->delete(
    'localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

{
    "success": true,
    "data": []
}

HTTP Request

DELETE /api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}

Request Parameters

Parameter Type Status Description
id_lista int required Id da lista de compra
id_produto int required Id do produto