Fulfillment

Fulfillment é o serviço de armazenamento dos produtos e envio do pedido através do CD B2W, ou seja, o lojista utiliza o centro de distribuição da B2W para estocar seus produtos e despachar ao cliente. Por este motivo foi disponibilizado via API a possibilidade da loja enviar o XML da nota em 2 formatos, tanto o arquivo quanto o caminho onde o XML se encontra. Além da possibilidade de efetuar a consulta (GET) do estoque que possui no CD e baixar as notas de retorno simbólico.

Como saber se o pedido é Fulfillment?

Existem situações em que os lojistas, além do Fulfillment, utilizam o próprio CD para fazer o envio dos pedidos.

Caso haja estoque do item em ambos os CDs, a prioridade do envio será sempre pelo Fulfillment. Nestes casos, haverá uma identificação no pedido no campo "shipping_method", onde será informado "B2W Fulfillment".

Uma vez que a informação é "B2W Fulfillment", significa que o pedido será enviado via Fulfillment, ou seja, o seller deve enviar o XML da nota para a B2W via integração ou via upload do arquivo diretamente no portal da Skyhub.

Se o parâmetro "shipping_method" vier preenchido com informação diferente da citada acima, o lojista terá de verificar qual transportadora utilizará para atender o pedido em questão.

Por exemplo: Se, "shipping_method":"b2wentregacorreios", o pedido deverá ser atendido pelo modo de serviço B2W Entrega by Correios.

Pedidos identificados como "B2W Fulfillment", NÃO devem ser enviados pelo CD da loja.

Como enviar o XML da Nota ?

Para enviar o XML será utilizado o método POST o Endpoint:

POST /fulfillment/b2w/delivery

A baixo descreveremos como enviar os 2 formatos, tanto o arquivo quanto o caminho do arquivo.

Envio do Arquivo XML:

Neste formato será necessário enviar o arquivo XML no body da requisição:

Example Request:

curl --request POST \
--url https://api.skyhub.com.br/fulfillment/b2w/delivery \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-accountmanager-key: SUAXACCOUNT' \
--header 'x-api-key: YOUR API KEY HERE' \
--header 'x-user-email: MUDAR@SEU_EMAIL.COM' \
--data '{"recipient_document":"cnpj do CD","invoice":{"payload":"...insert XML body here..."}}'

Request Headers

Name

Type

Required

Description

Example

accept

String

Required

O formato que você deseja receber o retorno da requisição

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Request Body

{
"recipient_document": "cnpj do CD",
"invoice": {
"payload": "...insert XML body here..."
}
}

O envio do XML deve ser em UTF-8-BOM

Responses:

200 - Success

Caso envie o XML em UTF-8, o aquivo não será aceito pela B2W, retornando erro de formatação.

Envio do caminho do arquivo XML

Neste formato será necessário enviar o caminho do aquivo XML no body da requisição:

Example Request:

curl --request POST \
--url https://api.skyhub.com.br/fulfillment/b2w/delivery \
--header 'accept: application/json' \
--header 'content-type: multipart/form-data' \
--header 'x-accountmanager-key: SUAXACCOUNT' \
--header 'x-api-key: YOUR API KEY HERE' \
--header 'x-user-email: MUDAR@SEU_EMAIL.COM' \
--data '{"invoice[payload]=caminho do arquivo XML":null,"recipient_document":"cnpj CD"}'

Request Headers

Name

Type

Required

Description

Example

accept

String

Required

O formato que você deseja receber o retorno da requisição

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

Código identificador da sua Integração

XACCOUNT

Request Body:

{
"invoice[payload]=caminho do arquivo XML": null,
"recipient_document": "cnpj CD"
}

O envio do XML deve ser em UTF-8-BOM

Responses:

200 - Success

Caso envie o XML em UTF-8, o aquivo não será aceito pela B2W, retornando erro de formatação.

Consulta de estoque

Para se certificar da quantidade de estoque dos itens que estão no CD, foi desenvolvido um Endpoint para que a quantidade seja consultada via API.

Para consultar o estoque será utilizado o método GET e o Endpoint abaixo:

GET /fulfillment/b2w/stock

Ao fazer a consulta através do Endpoint acima, será listado apenas os primeiros 100 skus. Para consultar mais de 100 skus, será necessário paginar através de querys utilizando os parâmetros abaixo:

page: identifica qual página será solicitada. per_page: quantidade de registro, sendo que o limite por pagina é 100.

Demais parâmetros:

sku= : Informar o código sku

recipient_document=cnpjdoCD: CNPJ do cd onde o produto esta estocado.

Utilizando os parâmetros informados acima, a requisição ficará da seguinte forma:

Example Request

curl --request GET \
--url 'https://api.skyhub.com.br/fulfillment/b2w/stock?recipient_document=cnpjdoCD&sku=SKU&page=1&per_page=100' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: YOUR API KEY HERE' \
--header 'x-user-email: MUDAR@SEU_EMAIL.COM'

Request Headers:

Name

Type

Required

Description

Example

accept

String

Required

O formato que você deseja receber o retorno da requisição

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

Código identificador da sua Integração

XACCOUNT

Query Parameters

Name

Type

Required

Description

Example

recipient_document

String

Optional

CNPJ do CD

58441889000122

sku

String

Optional

sku do produto

123

page

Integer

Optional

Página da requisição de pedidos

1

per_page

Integer

Optional

Quantidade de pedidos por página (máximo = 100)

100

Responses:

200 - Success

{
"stock": [{
"sku": "SKU",
"recipient_document": "776574000741",
"deposit_type": "3022 SB Revenda Outlet",
"stock": "2",
"reserved_stock": "0"
}]
}

Download das Notas de Retorno Simbólico:

Essa função será utilizado para que o seller tenha o retorno das baixas de estoque que ocorreram no CD, por exemplo: A loja enviou a quantidade de 100 itens para o CD. A cada pedido que ocorre é emitido a Nota, e a loja pode baixa-la, para que auxilie em sua contabilidade.

Para baixar a nota será necessário utilizar ao Endpoint:

GET fulfillment/b2w/delivery/nfe?cd_vat_number=05886614004476&delivery=12345678

Example Request:

curl --request GET \
--url 'https://api.skyhub.com.brfulfillment/b2w/delivery/nfe?cd_vat_number%20=05886614004476&delivery=12345678&order_access_key=foo&cd_vat_number=05886614004476' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: YOUR API KEY HERE' \
--header 'x-user-email: MUDAR@SEU_EMAIL.COM'

Request Headers

Name

Type

Required

Description

Example

accept

String

Required

O formato que você deseja receber o retorno da requisição

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

Código identificador da sua Integração

XACCOUNT

Query Parameters

Name

Type

Required

Description

Example

cd_vat_number

String

Required

CNPJ do CD

05886614004476

delivery

String

Optional

Numero da Entrega

12345678

order_access_key

String

Optional

Chave de Acesso da Venda

IMPORTANTE delivery e order_access_key: Estes dois parâmetros são opcionais, porém um deles deve ser informado para efetuar a busca, ou seja é obrigatório informar um ou outro.

Responses

200 - SUCCESS

{ "nfes": [{ "id": "NFe35190105886614004476550030000537481149312314", "xml_content": "CONTEUDO DA NFE XML AQUI" }] }

422 - ERROR

{ "error": "ORA-20000: [PC_NFCA_WS.CONSULTA_XML_NF_POST] - ORA-20101: [PC_NFCA_CON.obtem_xml_nf_cnpj] Erro ao obter lista NFe (id_cia/entrega/chave) 123456 ORA-20000: pc_fire.obtem_filial: CNPJ 7123456000123 nao encontrado.\nPC_FILI.Registro 2" }

Lista de Pedidos para Notas de Retorno

Possibilidade de listar as entregas e fazer o download das notas de retorno simbólico, para cada entrega com status finalizado.

Para baixar a nota será necessário utilizar o Endpoint:

GET https://api.skyhub.com.br/fulfillment/b2w/delivery

Example Request

curl --request GET \
--url 'https://desenvolvedores.skyhub.com.brhttps//api.skyhub.com.br/fulfillment/b2w/delivery?from_date=DD%2FMM%2FAAAA&to_date=DD%2FMM%2FAAAA&status=finished%20&cd_vat_number=05886614004476&page=1&per_page=50' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: YOUR API KEY HERE' \
--header 'x-user-email: YOUR@EMAIL.HERE'

Request Headers

Name

Type

Required

Description

Example

accept

String

Required

O formato que você deseja receber o retorno da requisição

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

Código identificador da sua Integração

XACCOUNT

Query Parameters

Name

Type

Required

Description

Example

from_date

String

Required

Data de inicio para o filtro dos pedidos

DD%2FMM%2FAAAA

to_date

String

Required

Data final para o filtro dos pedidos

DD%2FMM%2FAAAA

status

String

Optional

As opçoes são: finished (Entregas Liquidadas), open (em aberto), canceled (Cancelados), all ou se não passar esse parâmetro virá todas. Lembrando que apenas as Entregas Liquidadas(finished) terão Nota Fiscal disponível para download.

finished+

cd_vat_number

String

Optional

CNPJ do CD: quando informado irá trazer apenas as entregas do CD Informado.

05886614004476

page

String

Optional

Numero da página,. Caso não informe retornará a primeira página que é a 0

1

per_page

String

Optional

Quantidade de registros por página. Caso não informe retornará 50 por padrão.

50

Responses

200 - SUCCESS

{
"deliveries": [
{
"cd_vat_number": "5886614004476",
"delivery": "107209378701",
"status": "Finalizada",
"order_access_key": "35190133014556138384550010000499781579904321",
"invoice_sent_at": "10/01/2019 00:00:00",
"xml_nfes_path": "/fulfillment/b2w/delivery/nfe?cd_vat_number=5886614004476&order_access_key=35190133014556138384550010000499781579904321"
}
],
"total_items": 7,
"next_page_path": "/fulfillment/b2w/delivery?from_date=10%2F01%2F2019&page=1&status=finished&to_date=10%2F01%2F2019"
}

404 - ERROR

422 - ERROR

{
"error": "ORA-20000: pc_pedc_ag_con.lista_pedidos - erro: ORA-20000: Informe o periodo De, para lista de pedidos."
}