O2O - Rehub - Processos via API
Antes de mais nada, é preciso entender o que é o Rehub.
Diferente das rotas informadas nos tópicos anteriores, o Rehub se trata de uma nova rota, para efetuar requisições.
Para utiliza-la, é necessário solicitar as credenciais, pois será utiliza o JWT para que a requisição ocorra.

Como solicitar credenciais:

A validade do Bearer JWT é de 6 horas. Apenas após este prazo deve ser solicitado um novo token.
Importante saber que não deve solicitar um novo Bearer JWT antes do vencimento das 6 horas , para manter a integridade da API.
No caso da Warehouse, deve ser utilizado a rota do Rehub, para isto é necessário solicitar o Bearer JWT.
Para solicitar Bearer JWT é necessário efetuar o POST através da seguinte Endpoint:
1
https://api.skyhub.com.br/auth
Copied!
Request Body:
1
{
2
"user_email":"[email protected]",
3
"api_key":"SuaApiKey"
4
}
Copied!

Example Request:

1
curl --location --request POST 'https://api.skyhub.com.br/auth' \
2
--header 'accept: application/json' \
3
--header 'Content-type: application/json' \
4
--header 'Content-Type: application/json' \
5
--data-raw '{
6
"user_email":"[email protected]",
7
"api_key":"SuaApiKey"
8
}'
Copied!

Request Headers:

Name
Type
Required
Description
Example
accept
String
Required
application/json
Content-type
String
Required
application/json
Responses:
200 - Success
1
{
2
"token": "eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk"
3
}
Copied!

Como criar uma Warehouse (CD) via API:

Para criar uma warehouse, caso o cliente tenha mais de uma, será necessário utilizar o método POST e a seguinte endpoint:
1
https://api.skyhub.com.br/rehub/stores
Copied!
Request Body:
1
{
2
"store": {
3
"code": "loja1",
4
"name": "Loja 1",
5
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
6
"phone": "(11) 3454-3258",
7
"address": {
8
"street": "R. Fidêncio Ramos",
9
"number": "302",
10
"detail": "2° andar",
11
"neighborhood": "Vila Olímpia",
12
"city": "São Paulo",
13
"region": "SP",
14
"post_code": 1233416,
15
"reference": "Próximo ao Shopping Vila Olímpia"
16
},
17
"email": "[email protected]",
18
"latitude": -23.594721,
19
"longitude": -46.686015,
20
"max_delivery_distance": 1.2,
21
"schedules": {
22
"monday": {
23
"start": "08:00",
24
"end": "16:00"
25
},
26
"tuesday": {
27
"start": "08:00",
28
"end": "16:00"
29
},
30
"wednesday": {
31
"start": "08:00",
32
"end": "16:00"
33
},
34
"thursday": {
35
"start": "08:00",
36
"end": "16:00"
37
},
38
"friday": {
39
"start": "08:00",
40
"end": "16:00"
41
},
42
"saturday": {
43
"start": "08:00",
44
"end": "12:00"
45
},
46
"sunday": {
47
"start": null,
48
"end": null
49
}
50
},
51
"properties": [
52
"CONFIRM_STOCK",
53
"AME_FLASH"
54
]
55
}
56
}
Copied!
Como podemos observar no body acima, pode criar algumas duvidas, por exemplo:
code: se refere ao código da warehouse.
name: nome da warehouse ou do ponto de retirada
open_hours: Horário de funcionamento
properties: [PICK_UP_STORE, CONFIRM_STOCK, AME_FLASH, EXPRESS_DELIVERY, EXPEDITION]
    PICK_UP_STORE:
      tipo de contrato que trabalha
    CONFIRM_STOCK:
      Confirma estoque? Sim ou Não
    EXPEDITION:
      A loja expede? sim ou não
    Para lojas que utilizam a forma de envio próprio, ou seja, nenhuma forma de envio da B2W.
    EXPRESS_DELIVERY
      A loja faz entrega expressa. A entrega será feita via motoboy, mas por conta da loja
    AME_FLASH
      A loja usa a forma de entrega Ame Flash.
AME_FLASH e EXPRESS_DELIVERY são referentes ao contrato SHIP_FROM_STORE
Não é possivel trabalhar com AME_FLASH e EXPRESS_DELIVERY simultaneamente. Será um ou outro.

Example Request:

1
curl --location --request POST 'https://api.skyhub.com.br/rehub/stores' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json' \
4
--data-raw '{
5
"store": {
6
"code": "loja1",
7
"name": "Loja 1",
8
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
9
"phone": "(11) 3454-3258",
10
"address": {
11
"street": "R. Fidêncio Ramos",
12
"number": "302",
13
"detail": "2° andar",
14
"neighborhood": "Vila Olímpia",
15
"city": "São Paulo",
16
"region": "SP",
17
"post_code": 1233416,
18
"reference": "Próximo ao Shopping Vila Olímpia"
19
},
20
"email": "[email protected]",
21
"latitude": -23.594721,
22
"longitude": -46.686015,
23
"max_delivery_distance": 1.2,
24
"schedules": {
25
"monday": {
26
"start": "08:00",
27
"end": "16:00"
28
},
29
"tuesday": {
30
"start": "08:00",
31
"end": "16:00"
32
},
33
"wednesday": {
34
"start": "08:00",
35
"end": "16:00"
36
},
37
"thursday": {
38
"start": "08:00",
39
"end": "16:00"
40
},
41
"friday": {
42
"start": "08:00",
43
"end": "16:00"
44
},
45
"saturday": {
46
"start": "08:00",
47
"end": "12:00"
48
},
49
"sunday": {
50
"start": null,
51
"end": null
52
}
53
},
54
"properties": [
55
"CONFIRM_STOCK",
56
"AME_FLASH"
57
]
58
}
59
}'
Copied!

Request Headers

Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Responses:
201 - Created
400 - Bad request

Como Atualizar uma Warehouse (CD):

Caso o cliente precise atualizar alguma informação é possível também após a criação. É importante também saber que depois de criar uma Warehouse, você precisará dizer se ela estará ATIVA (active) ou INATIVA (inactive) através do status, onde fará referência direta se o parceiro irá trabalhar com ela ou não. Para atualizar uma warehouse será necessário utilizar o método PUT e a seguinte endpoint:
1
https://api.skyhub.com.br/rehub/stores/{code}
Copied!
Request Body:
1
{
2
"store": {
3
"code": "775",
4
"name": "nome da loja",
5
"email": "[email protected]",
6
"open_hours": "Dom: 16:00 às 22:00",
7
"phone": "1100000000",
8
"latitude": null,
9
"longitude": null,
10
"max_delivery_distance": 2.0,
11
"address": {
12
"street": "Rua",
13
"number": "569",
14
"detail": "Loja 151",
15
"neighborhood": "Consolação",
16
"city": "São Paulo",
17
"region": "SP",
18
"post_code": "00000000",
19
"reference": null
20
},
21
"properties": [
22
"PICK_UP_STORE",
23
"CONFIRM_STOCK"
24
],
25
"store_status": [{
26
"platform": "B2W",
27
"status": "inactive",
28
"remote_code": "775"
29
}]
30
}
31
}
Copied!

Example Request:

1
curl --location --request PUT 'https://api.skyhub.com.br/rehub/stores/{code}' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json' \
4
--header 'accept: application/json' \
5
--data-raw '{
6
"store": {
7
"code": "775",
8
"name": "nome da loja",
9
"email": "[email protected]",
10
"open_hours": "Dom: 16:00 às 22:00",
11
"phone": "1100000000",
12
"latitude": null,
13
"longitude": null,
14
"max_delivery_distance": 2.0,
15
"address": {
16
"street": "Rua",
17
"number": "569",
18
"detail": "Loja 151",
19
"neighborhood": "Consolação",
20
"city": "São Paulo",
21
"region": "SP",
22
"post_code": "00000000",
23
"reference": null
24
},
25
"properties": [
26
"PICK_UP_STORE",
27
"CONFIRM_STOCK"
28
],
29
"store_status": [{
30
"platform": "B2W",
31
"status": "inactive",
32
"remote_code": "775"
33
}]
34
}
35
}'
Copied!
Após a criação da warehouse (CD) é OBRIGATORIO a atualização da warehouse com a inserção do "store_status"
Request Headers
Name
Type
Required
Description
Example
Content-type
String
Required
application/json
accept
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Responses:
201 - Created
400 - Bad request
404 - Not found

Como consultar Warehouses (CDs):

Nesta consulta, será possível consultar todos os warehouses que a loja possui.
Para consultar as warehouses, é necessário utilizar o método GET e a endpoint a baixo:
1
https://api.skyhub.com.br/rehub/stores
Copied!

Example Request:

1
curl --location --request GET 'https://api.skyhub.com.br/rehub/stores' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json'
Copied!

Request Headers

Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Responses:
200 - OK
1
{
2
"code": "lojaverde",
3
"name": "Loja verde",
4
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
5
"phone": "(11) 3454-3258",
6
"address": {
7
"street": "R. Fidêncio Ramos",
8
"number": "302",
9
"detail": "2° andar",
10
"neighborhood": "Vila Olímpia",
11
"city": "São Paulo",
12
"region": "SP",
13
"post_code": 1233416,
14
"reference": "Próximo ao Shopping Vila Olímpia"
15
},
16
"email": "[email protected]",
17
"latitude": -23.594721,
18
"longitude": -46.686015,
19
"max_delivery_distance": 1.2,
20
"schedules": {
21
"monday": {
22
"start": "08:00",
23
"end": "16:00"
24
},
25
"tuesday": {
26
"start": "08:00",
27
"end": "16:00"
28
},
29
"wednesday": {
30
"start": "08:00",
31
"end": "16:00"
32
},
33
"thursday": {
34
"start": "08:00",
35
"end": "16:00"
36
},
37
"friday": {
38
"start": "08:00",
39
"end": "16:00"
40
},
41
"saturday": {
42
"start": "08:00",
43
"end": "12:00"
44
},
45
"sunday": {
46
"start": null,
47
"end": null
48
}
49
},
50
"properties": [
51
"PICK_UP_STORE",
52
"CONFIRM_STOCK",
53
"AME_FLASH",
54
"EXPEDITION",
55
"EXPRESS_DELIVERY"
56
],
57
"statuses": [
58
{
59
"platform": "B2W",
60
"remote_code": "lojaverde",
61
"status": "active"
62
},
63
{
64
"platform": "Meli",
65
"remote_code": "30048008",
66
"status": "inactive"
67
}
68
]
69
}
Copied!

Como consultar warehouse (CD) especifica:

Uma vez que a loja possue muitas warehouses ou gostaria de verificar se ela foi cadastrada, é possivel consultar especificamente uma warehouse, de acordo com o código que ela foi criada no campo "code".
Para efetuar a consulta é necessário utilizar o método GET e seguinte endpoint:
1
https://api.skyhub.com.br/rehub/stores/{code}
Copied!

Example Request:

1
curl --location --request GET 'https://api.skyhub.com.br/rehub/stores/{code}' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json'
Copied!
Request Headers
Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Responses:
200 - OK
1
{
2
"code": "lojaverde",
3
"name": "Loja verde",
4
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
5
"phone": "(11) 3454-3258",
6
"address": {
7
"street": "R. Fidêncio Ramos",
8
"number": "302",
9
"detail": "2° andar",
10
"neighborhood": "Vila Olímpia",
11
"city": "São Paulo",
12
"region": "SP",
13
"post_code": 1233416,
14
"reference": "Próximo ao Shopping Vila Olímpia"
15
},
16
"email": "[email protected]",
17
"latitude": -23.594721,
18
"longitude": -46.686015,
19
"max_delivery_distance": 1.2,
20
"schedules": {
21
"monday": {
22
"start": "08:00",
23
"end": "16:00"
24
},
25
"tuesday": {
26
"start": "08:00",
27
"end": "16:00"
28
},
29
"wednesday": {
30
"start": "08:00",
31
"end": "16:00"
32
},
33
"thursday": {
34
"start": "08:00",
35
"end": "16:00"
36
},
37
"friday": {
38
"start": "08:00",
39
"end": "16:00"
40
},
41
"saturday": {
42
"start": "08:00",
43
"end": "12:00"
44
},
45
"sunday": {
46
"start": null,
47
"end": null
48
}
49
},
50
"properties": [
51
"PICK_UP_STORE",
52
"CONFIRM_STOCK",
53
"AME_FLASH",
54
"EXPEDITION",
55
"EXPRESS_DELIVERY"
56
],
57
"statuses": [
58
{
59
"platform": "B2W",
60
"remote_code": "lojaverde",
61
"status": "active"
62
},
63
{
64
"platform": "Meli",
65
"remote_code": "30048008",
66
"status": "inactive"
67
}
68
]
69
}
Copied!
404 - Not Found

Status da Warehouse (CD):

Cada warehouse criada pode ser ativada e inativada via API. Por exemplo:
A loja não quer mais que o produto seja vendido para retirada po determinada Warehouse, desta forma ele pode inativar.
Caso decida que a loja deve voltar ser um ponto de retirada novamente, basta ativa-la.
Para que tanto a ativação quanto a inativação ocorram, é necessário utilizar o método POST e a seguinte Endpoint:
1
https://api.skyhub.com.br/rehub/stores/{code}/statuses
Copied!
No campo {code} será necessário informar o código da Warehouse e no Body o campo {platform} seria referente ao Marketplace em si.

Example body:

1
{
2
"statuses": [
3
{
4
"platform": "B2W",
5
"status": "active"
6
},
7
{
8
"platform": "Meli",
9
"status": "inactive"
10
}
11
]
12
}
Copied!
Os possíveis valores a serem informado em "status" é:
    active: para ativar
    inactive: para inativar
Example Request
1
curl --location --request POST 'https://api.skyhub.com.br/stores/{code}/statuses' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json' \
4
--header 'accept: application/json' \
5
--data-raw '{
6
"statuses": [
7
{
8
"platform": "B2W",
9
"status": "active"
10
},
11
{
12
"platform": "Meli",
13
"status": "inactive"
14
}
15
]
16
}'
Copied!
Request Headers
Name
Type
Required
Description
Example
Content-type
String
Required
application/json
accept
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
204 - No content (success)
400 - Bad request
404 - Not found
422 - Unprocessable entity

Meli - Como enviar anúncios para as Warehouses :

Para os casos de anúncios Mercado Libre, um sku pode ter vários anúncios, neste caso é possível vincular os anúncios para as warehouses de escolha.
Para que isto ocorra é necessário utilizar o método POST e a seguinte endpoint:
1
https://api.skyhub.com.br/products/{sku}/stores
Copied!
Request Body:
1
{
2
"action_type": "enable",
3
"platform": "Meli",
4
"store_codes": [
5
"30048008"
6
],
7
"remote_codes": [
8
"MLB1154783459",
9
"MLB1154783460"
10
],
11
"availability_time": 24
12
}
Copied!
Os possíveis valores dos campos são:
    "action_type": "enable" ou "disable"
    "platform": "Meli"
    "store_codes": código warehouse
    "remote_codes":
    "availability_time": tempo em horas para o produto ficar disponível na loja

Example Request:

1
curl --location --request POST 'https://api.skyhub.com.br/rehub/products/{sku}/stores' \
2
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
3
--header 'Content-type: application/json' \
4
--data-raw '{
5
"action_type": "enable",
6
"platform": "Meli",
7
"store_codes": [
8
"30048008"
9
],
10
"remote_codes": [
11
"MLB1154783459",
12
"MLB1154783460"
13
],
14
"availability_time": 24
15
}'
Copied!

Request Headers:

Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Responses:
207 - Multi-Status
1
{
2
"data": [
3
{
4
"store_code": 30048008,
5
"remote_code": "MLB1154783459",
6
"status": 200
7
},
8
{
9
"store_code": 30048008,
10
"remote_code": "MLB1154783460",
11
"status": 404,
12
"error": "Not found"
13
}
14
],
15
"metadata": {
16
"failures": 1,
17
"success": 1,
18
"total": 2
19
}
20
}
Copied!
400 - Bad request
404 - Not found
422 - Unprocessable entity

Meli - Como listar warehouses por anuncio:

Neste caso é possível listar as warehouses de acordo com o sku. Por exemplo:
A loja possui o sku 123 e fez o POST dos anúncios abc e def, e gostaria de saber exatamente em quais warehouses eles foram enviados com sucesso. Neste caso será necessário efetuar o método GET e a seguinte endpoint:
1
https://api.skyhub.com.br/rehub/products/{sku}/stores
Copied!

Query Parameter:

Name
Type
Required
Description
Example
platform
String
Required
Meli
Meli
Example Request:
1
curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/stores?platform=Meli' \
2
--header 'Authorization: application/json' \
3
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'
Copied!

Request Headers:

Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Response:
207 - Multi-Status
1
{
2
"data": [
3
{
4
"remote_code": "MLB1154783459",
5
"status": 200,
6
"stores": [
7
{
8
"code": "30048008",
9
"name": "Loja A"
10
}
11
]
12
},
13
{
14
"remote_code": "MLB1154783460",
15
"status": 404,
16
"error": "Not found"
17
},
18
{
19
"remote_code": "MLB1154783461",
20
"status": 200,
21
"stores": [
22
{
23
"code": "30048008",
24
"name": "Loja A"
25
},
26
{
27
"code": "40038909",
28
"name": "Loja B"
29
}
30
]
31
}
32
],
33
"metadata": {
34
"failures": 1,
35
"success": 2,
36
"total": 3
37
}
38
}
39
No links
40
400
41
Bad request
Copied!
400 - Bad request
404 - Not found

Como consultar estoque por produto:

Para consultar o estoque de determinado sku, é necessário efetuar o método GET e a seguinte endpoint:
1
https://api.skyhub.com.br/rehub/products/{sku}/store_stocks
Copied!
Na consulta acima será listado o estoque de todas as warehouses do sku informado na endpoint.

Example Request:

1
curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/store_stocks' \
2
--header 'Authorization: application/json' \
3
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'
Copied!
Responses:
200 - OK
1
{
2
"store_stocks": [
3
{
4
"store_code": "18",
5
"sku_code": "sku-001",
6
"qty": 200,
7
"cross_docking": 3
8
},
9
{
10
"store_code": "L001",
11
"sku_code": "sku-001",
12
"qty": 2,
13
"cross_docking": 0
14
},
15
{
16
"store_code": "998",
17
"sku_code": "sku-001",
18
"qty": 0,
19
"cross_docking": 15
20
}
21
]
22
}
Copied!

Como consultar estoque:

Para consultar o estoque de um determinado SKU em suas respectivas warehouses, é necessário utilizar o método GET e a seguinte endpoint.
1
https://api.skyhub.com.br/rehub/products/{sku}/store_stocks?store_code={store_code}
Copied!
Como é possivel observar, será necessário incluir a query "store_code", que será, que será o código da warehouse.
Example Request:
1
curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/store_stocks?store_code={store_code}' \
2
--header 'Authorization: application/json' \
3
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'
Copied!

Request Headers:

Name
Type
Required
Description
Example
Content-type
String
Required
application/json
Authorization
String
Required
Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk
x-accountmanager-key
String
Required
Código identificador da sua Integração
SUAXACCOUNT
Last modified 22d ago