# Criação e Aprovação de Pedido Teste

{% hint style="danger" %}
As operações descritas abaixo <mark style="color:red;">não</mark> estão disponíveis para contas em produção.

Caso ainda não possua um ambiente de teste para a homologação de seu sistema, consulte a guia [Processo de Homologação](https://desenvolvedores.skyhub.com.br/processo-de-homologacao).
{% endhint %}

## POST - Criando um pedido

Como descrito em [Integração Pedido](https://desenvolvedores.skyhub.com.br/pedidos/integracao-pedido), durante o processo de homologação de um sistema são solicitados os passos de criação, consumo e notificação de pedidos.&#x20;

### Criando um pedido teste (status NEW)

Para realizar a criação de um pedido via API deverá ser utilizado o método POST para o seguinte endpoint:&#x20;

```
https://api.skyhub.com.br/orders
```

#### Request headers:

| Key                  | Value                                       |
| -------------------- | ------------------------------------------- |
| X-User-Email         | email\_de\_usuario                          |
| X-Api-Key            | token\_de\_integracao de sua conta SkyHub   |
| X-Accountmanager-Key | token\_account único de cada Plataforma/ERP |
| Accept               | application/json                            |
| Content-Type         | application/json                            |

#### Request body:

```
{
    "order": {
        "channel": "Marketplace",
        "items": [
            {
                "id": "{SKU da Venda}",
                "qty": 1,
                "original_price": 8.45,
                "special_price": 8.45
            }
        ],
        "customer": {
            "name": "Nome do Comprador",
            "email": "comprador@exemplo.com.br",
            "date_of_birth": "1995-01-01",
            "gender": "male",
            "vat_number": "12312312309",
            "phones": [
                "8899999999"
            ]
        },
        "billing_address": {
            "street": "Rua de Teste",
            "number": "1234",
            "detail": "Ponto de Referência",
            "neighborhood": "Bairro",
            "city": "Cidade",
            "region": "UF",
            "country": "BR",
            "postcode": "90000000"
        },
        "shipping_address": {
            "street": "Rua de teste",
            "number": "1234",
            "detail": "Ponto de referência teste",
            "neighborhood": "Bairro teste",
            "city": "Cidade de teste",
            "region": "UF",
            "country": "BR",
            "postcode": "90000000"
        },
        "payments": [
        {
            "method": "skyhub_payment",
            "description": "Skyhub",
            "parcels": 1,
            "value": 8.45
         }
        ],
        "shipping_method": "Transportadora",
        "estimated_delivery": "AAAA-MM-DD",
        "shipping_calculation_type": "Método do Cálculo",
        "shipping_cost": 0.0,
        "interest": 0.0,
        "discount": 0.0
    }
}
```

{% hint style="warning" %}
No objeto **items** é necessário informar o **SKU adquirido na compra**. Isto é, caso deseje simular um pedido realizado para um produto que contém variações, a criação requer que <mark style="color:green;">seja informado o</mark> <mark style="color:green;"></mark><mark style="color:green;">**SKU da variação**</mark> e <mark style="color:red;">não do produto pai/agrupador</mark>.
{% endhint %}

#### Example request:

<pre><code><strong>curl --location --request POST 'https://api.skyhub.com.br/orders' \
</strong>--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "order": {
        "channel": "Lojas Americanas",
        "items": [
            {
                "id": "2023001",
                "qty": 1,
                "original_price": 39.90,
                "special_price": 39.90
            }
        ],
        "customer": {
            "name": "João dos Santos",
            "email": "comprador@exemplo.com.br",
            "date_of_birth": "1989-01-01",
            "gender": "male",
            "vat_number": "23455567899",
            "phones": [
                "11 99999-9999"
            ]
        },
        "billing_address": {
            "street": "Avenida Paulista",
            "number": "1234",
            "detail": "Próximo ao museu",
            "neighborhood": "Bela Vista",
            "city": "São Paulo",
            "region": "SP",
            "country": "BR",
            "postcode": "90000000"
        },
        "shipping_address": {
            "street": "Avenida Paulista",
            "number": "1000",
            "detail": "Ao lado da cafeteria",
            "neighborhood": "Bela Vista",
            "city": "São Paulo",
            "region": "SP",
            "country": "BR",
            "postcode": "90000000"
        },
        "payments": [
            {
                "method": "CREDIT_CARD",
                "description": "SkyHub",
                "parcels": 1,
                "value": 39.90
            }
        ],
        "shipping_method": "Courier",
        "estimated_delivery": "2023-03-30",
        "shipping_calculation_type": "b2wentregadirect",
        "shipping_cost": 0,
        "interest": 0,
        "discount": 0
    }
}'
</code></pre>

{% hint style="info" %}
É possível determinar numerações específicas para os pedidos criados. Para tal, basta incluir o campo "**remote\_code**" no *array* **ORDER**.&#x20;
{% endhint %}

{% hint style="warning" %}
Durante a criação de pedido é possível enviar o método de cálculo do frete, feito através do campo "**shipping\_calculation\_type**". O retorno dessa informação no consumo do endpoint **/queues/orders** será no campo "**calculation\_type**".
{% endhint %}

#### Response esperado:

{% hint style="success" %}
201 \[Success] - Created
{% endhint %}

## POST - Aprovando um pedido teste (status APPROVED)

O ciclo de vida de um pedido comum é iniciado com a sua criação (status NEW) e o próximo passo é a sua aprovação (status APPROVED). No ambiente de produção estes dois status (NEW e APPROVED) são gerados no marketplace, porém em homologação/ambiente de teste, além da criação, é possível realizar também a aprovação do pedido.

A aprovação em ambiente de teste requer os [headers apresentados acima](#request-headers) e se dá através de um POST no endpoint:

```
https://api.skyhub.com.br/orders/{code}/approval
```

{% hint style="info" %}
O **code** deve ser substituído pelo **código do pedido**, visualizado após o [consumo](https://desenvolvedores.skyhub.com.br/pedidos/consumo-de-pedidos-queues).
{% endhint %}

#### Request body:

```
{
    "status": "payment_received"
}
```

#### Example request:

```
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1000000000000/approval' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
    "status": "payment_received"
}'
```

#### Response esperado:

{% hint style="success" %}
204 \[Success] - No content
{% endhint %}

## POST - Criando pedido para o Fulfillment&#x20;

Existem recursos disponíveis para homologação que requerem a criação de pedidos contendo campos específicos, como é o caso da homologação para o serviço Fulfillment.

### Pedido Fulfillment

#### Criando um pedido teste para o serviço Fulfillment

Para homologação do recurso Fulfillment é imprescindível a identificação de pedidos que se enquadrem neste serviço.&#x20;

No ambiente de teste é possível simular um pedido Fulfillment e para isto será necessário seguir o padrão disponibilizado na seção [Criação de Pedido](#criacao-de-pedido) com atenção para o campo **shipping\_method**:

```
curl --location --request POST 'https://api.skyhub.com.br/orders' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
    "order": {
        "channel": "Lojas Americanas",
        "items": [
            {
                "id": "2023001",
                "qty": 1,
                "original_price": 39.90,
                "special_price": 39.90
            }
        ],
        "customer": {
            "name": "João dos Santos",
            "email": "comprador@exemplo.com.br",
            "date_of_birth": "1989-01-01",
            "gender": "male",
            "vat_number": "23455567899",
            "phones": [
                "11 99999-9999"
            ]
        },
        "billing_address": {
            "street": "Avenida Paulista",
            "number": "1234",
            "detail": "Próximo ao museu",
            "neighborhood": "Bela Vista",
            "city": "São Paulo",
            "region": "SP",
            "country": "BR",
            "postcode": "90000000"
        },
        "shipping_address": {
            "street": "Avenida Paulista",
            "number": "1000",
            "detail": "Ao lado da cafeteria",
            "neighborhood": "Bela Vista",
            "city": "São Paulo",
            "region": "SP",
            "country": "BR",
            "postcode": "90000000"
        },
        "payments": [
            {
                "method": "CREDIT_CARD",
                "description": "SkyHub",
                "parcels": 1,
                "value": 39.90
            }
        ],
        "shipping_method": "B2W Fulfillment",
        "estimated_delivery": "2023-03-15",
        "shipping_calculation_type": "b2wentregadirect",
        "shipping_cost": 0,
        "interest": 0,
        "discount": 0
    }
}'
```

Para informações sobre a homologação do recurso Fulfillment, consulte a guia a seguir:

{% content-ref url="../americanas-fulfillment/integracao-fulfillment" %}
[integracao-fulfillment](https://desenvolvedores.skyhub.com.br/americanas-fulfillment/integracao-fulfillment)
{% endcontent-ref %}
