# Configurar integrações

Api Responsável pela comunicação com o Checkout Payhow

Para a utilização da API é necessário integração em nossa [Dashboard ](http://appv1.dev.payhow.com.br/)para gerar o Access Token que será utilizado como forma de autenticação.


# Login do lojista

Login do usuário para gerar token de autenticação

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/icustomers/login/gateway`

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>       | String | application/json |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |

#### Request Body

| Name                                       | Type   | Description       |
| ------------------------------------------ | ------ | ----------------- |
| password<mark style="color:red;">\*</mark> | String | \[senha-da-conta] |
| email<mark style="color:red;">\*</mark>    | String | \[email-da-conta] |


# Atualizar configurações cartão de crédito

Para realizar as configurações de pagamento é necessário o token gerado pelo login do lojista

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/icustomers/gateway/config/payments`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>        | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>  | String | application/json |
| Authorization<mark style="color:red;">\*</mark> | String | \[Bearer token]  |

#### Request Body

| Name                                                            | Type   | Description                       |
| --------------------------------------------------------------- | ------ | --------------------------------- |
| enable<mark style="color:red;">\*</mark>                        | String | 1 ou 0                            |
| credentials<mark style="color:red;">\*</mark>                   | JSON   |                                   |
| credentials.antecipation<mark style="color:red;">\*</mark>      | String | true ou false                     |
| credentials.max\_installments<mark style="color:red;">\*</mark> | Int    | 1 a 12                            |
| type<mark style="color:red;">\*</mark>                          | String | "credit\_card" / "boleto" / "pix" |


# Atualizar configurações boleto

Para realizar as configurações de pagamento é necessário o token gerado pelo login do lojista

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/icustomers/gateway/config/payments`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>        | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>  | String | application/json |
| Authorization<mark style="color:red;">\*</mark> | String | \[Bearer token]  |

#### Request Body

| Name                                                                   | Type    | Description                     |
| ---------------------------------------------------------------------- | ------- | ------------------------------- |
| type<mark style="color:red;">\*</mark>                                 | String  | "credit\_card", "boleto", "pix" |
| enable<mark style="color:red;">\*</mark>                               | Int     | 1 ou 0                          |
| credentials<mark style="color:red;">\*</mark>                          | JSON    |                                 |
| credentials.kit\_pix<mark style="color:red;">\*</mark>                 | Boolean | true ou false                   |
| credentials.negativity\_serasa<mark style="color:red;">\*</mark>       | Int     | 1 a 12                          |
| credentials.notification\_voice<mark style="color:red;">\*</mark>      | Boolean | true ou false                   |
| credentials.notification\_whatsapp<mark style="color:red;">\*</mark>   | Boolean | true ou false                   |
| credentials.notification\_sms\_email<mark style="color:red;">\*</mark> | Boolean | true ou false                   |
| credentials.discount\_percentage<mark style="color:red;">\*</mark>     | Int     | null ou valor em inteiro        |
| credentials.fine\_percentage<mark style="color:red;">\*</mark>         | Int     | null ou valor em inteiro        |
| credentials.interest\_percentage<mark style="color:red;">\*</mark>     | Int     | null ou valor em inteiro        |


# Atualizar configurações pix

Para realizar as configurações de pagamento é necessário o token gerado pelo login do lojista

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/icustomers/gateway/config/payments`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>        | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>  | String | application/json |
| Authorization<mark style="color:red;">\*</mark> | String | \[Bearer token]  |

#### Request Body

| Name                                                                   | Type    | Description                     |
| ---------------------------------------------------------------------- | ------- | ------------------------------- |
| type<mark style="color:red;">\*</mark>                                 | String  | "credit\_card", "boleto", "pix" |
| enable<mark style="color:red;">\*</mark>                               | Int     | 1 ou 0                          |
| credentials<mark style="color:red;">\*</mark>                          | JSON    |                                 |
| credentials.notification\_voice<mark style="color:red;">\*</mark>      | Boolean | true ou false                   |
| credentials.notification\_whatsapp<mark style="color:red;">\*</mark>   | Boolean | true ou false                   |
| credentials.notification\_sms\_email<mark style="color:red;">\*</mark> | Boolean | true ou false                   |


# Atualizar configurações do frete

Para realizar as configurações de frete é necessário o token gerado pelo login do lojista

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/icustomers/gateway/config/shipping`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>        | String | application/json |
| Content-Type<mark style="color:red;">\*</mark>  | String | application/json |
| Authorization<mark style="color:red;">\*</mark> | String | \[Bearer token]  |

#### Request Body

| Name                                             | Type   | Description                    |
| ------------------------------------------------ | ------ | ------------------------------ |
| delivery\_time<mark style="color:red;">\*</mark> | Int    | \[tempo de entrega em inteiro] |
| time\_type<mark style="color:red;">\*</mark>     |        | "hours" ou "days"              |
| amount<mark style="color:red;">\*</mark>         | Int    | valor do frete em centavos     |
| shipping\_name<mark style="color:red;">\*</mark> | String | \[título do frete]             |


# 1. Fluxo de carrinho


# Envio de Carrinho

Endpoint para envio dos dados de um pedido feito na loja que será finalizado no checkout payhow

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/external/cart`

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>       | String | application/json |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |

### &#x20;<a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

### Descrição do body JSON da requisição <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave         | Tipo   | Descrição                                                                                                                                                                           |
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| access\_token | string | Gerado na integração da API (obrigatório)                                                                                                                                           |
| order\_id     | string | id de pedido da loja do usuário caso já tenha sido criando antes de ser redirecionado para o checkout, caso seja enviado, voltara no callback após finalização da compra (opcional) |
| cart          | string | Id do carrinho gerado pela Payhow, por padrão irá vazio na criação do carrinho, só será preenchido quando for uma atualização de um carrinho existente.                             |
| merchant\_url | string | URL da loja, mesma inserida na integração da API                                                                                                                                    |

#### &#x20;I**tems**

| Chave              | Tipo   | Descrição                                                            |
| ------------------ | ------ | -------------------------------------------------------------------- |
| id                 | int    | Id do produto dentro da loja (obrigatório)                           |
| sku                | string | código único de identificação atribuído a um produto (obrigatório)   |
| name               | string | Nome do produto (obrigatório)                                        |
| price              | string | Preço unitário do produto sem ponto separando centavos (obrigatório) |
| width              | string | largura (obrigatório)                                                |
| height             | string | altura (obrigatório)                                                 |
| lenght             | string | comprimento (obrigatório)                                            |
| weight             | string | peso (obrigatório)                                                   |
| images.src         | string | caminho da imagem do produto (obrigatório)                           |
| images.name        | string | nome da imagem com extensão (obrigatório)                            |
| quantity           | int    | quantidade do produto (obrigatório)                                  |
| description        | string | descrição do produto (opcional)                                      |
| shipping\_taxable  | string | não utilizado no momento, enviar fixo "true" (obrigatorio)           |
| shipping\_required | string | não utilizado no momento, enviar fixo "true" (obrigatorio)           |

#### **User**

| Chave            | Tipo   | Descrição                           |
| ---------------- | ------ | ----------------------------------- |
| user\_address\_1 | string | endereço (obrigatório)              |
| user\_address\_2 | string | complemento (opcional)              |
| user\_city       | string | Cidade do usuário (obrigatório)     |
| user\_country    | string | País do usuário (obrigatório)       |
| user\_email      | string | e-mail do usuário (obrigatório)     |
| user\_firstname  | string | Nome (obrigatório)                  |
| user\_id         | string | id do usuário na loja (obrigatório) |
| user\_lastname   | string | Sobrenome (obrigatório)             |
| user\_login      | string | Nome Login usuário (obrigatório)    |
| user\_nicename   | string | Apelido (obrigatório)               |
| user\_postcode   | string | CEP Usuário (Obrigatório)           |
| user\_state      | string | Estado Usuário (Obrigatório)        |

Obs: Todos os parâmetros que forem opcionais, enviar aspas vazias ("")

### **Exemplo de Requisição**

```json
{
    "access_token": "aOGND2Z9uNnQIih7UeyuUtWavC1IZwsMn6UImXRS",
    "order_id" : "102030405099",
    "cart": "ec_615caa5360376",
    "merchant_url" : "https://exemploeccommerce.com.br",
    "items":[{
    "id": 12705,
    "sku": "4960",
    "name": "Blazer Suede - P, Off",
    "price": "14900",
    "width": "18.0",
    "height": "3.0",
    "length": "23.0",
    "weight": "0.332",
    "images": [
     {
          "src": "https://exemploecommerce.com.br/product/56/image/product56.jpg",
          "name": "product56.jpg"
        }
    ],    
    "quantity": 1,
    "description": "",
    "shipping_taxable": true,
    "shipping_required": true
    },
    {
    "id": 12507,
    "sku": "5006",
    "name": "Vestido tule Lara - P/M, Roxo",
    "price": "18900",
    "width": "18.0",
    "height": "3.0",
    "images": [
        {
        "src": "https://exemploecommerce.com.br/product/68/image/product68.jpg",
        "name": "product68.jpg"
        }
    ],
    "length": "23.0",
    "weight": "0.390",
    "quantity": 1,
    "description": "",
    "shipping_taxable": true,
    "shipping_required": true
    }],
    "user" : {
        "user_address_1": "Rua das palmeiras",
        "user_address_2": "bla bla",
        "user_city": "Sorocaba",
        "user_country": "BR",        
        "user_email" : "email@email.com",
        "user_firstname" : "Felipe",
        "user_id" : "1",
        "user_lastname" : "Martins",
        "user_login" : "lionsoft",
        "user_nicename" : "lionsoft",
        "user_postcode" : "18051-868",
        "user_state" : "SP"
    }
  }
```

### **Exemplo de Resposta da Requisição**

```json
{
    "checkout_url": "https://checkout.payhow.com.br/?ec_616845a081528",
    "cart": "ec_616845a081528"
}
```

### **Descrição do JSON de Resposta**

| Chave             | Tipo   | Descrição                                                                                                       |
| ----------------- | ------ | --------------------------------------------------------------------------------------------------------------- |
| **checkout\_url** | string | url que redireciona para o checkout Payhow com os dados do carrinho criado                                      |
| cart              | string | id do carrinho criado, pode ser utilizado no envio do carrinho quando for apenas um update dos dados do pedido. |


# Obter Public Key

Endpoint para obter chave publica

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/payhow/data`

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>       | String | application/json |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |

#### Request Body

| Name                                           | Type   | Description       |
| ---------------------------------------------- | ------ | ----------------- |
| checkout\_id<mark style="color:red;">\*</mark> | String | \[id do carrinho] |

### &#x20;<a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

### Descrição do body JSON da requisição <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave        | Tipo   | Descrição                         |
| ------------ | ------ | --------------------------------- |
| checkout\_id | string | Id do carrinho gerado pela Payhow |


# Obter Checkout Session

Endpoint obter o checkout session a partir da public-key

<mark style="color:blue;">`GET`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/[id_do_carrinho]/checkout_session`

#### Headers

| Name                                           | Type   | Description      |
| ---------------------------------------------- | ------ | ---------------- |
| Accept<mark style="color:red;">\*</mark>       | String | application/json |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json |
| public-key<mark style="color:red;">\*</mark>   | String | \[public-key]    |


# Selecionar frete do carrinho

Endpoint para envio do frete do pedido

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/set_shipping`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                             | Type   | Description         |
| ------------------------------------------------ | ------ | ------------------- |
| shipping\_slug<mark style="color:red;">\*</mark> | String | frete-personalizado |


# 2. Processar pagamentos


# processar pagamento - cartão de crédito

Endpoint para processar pagamento via cartão de crédito

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                                 | Type   | Description                     |
| ---------------------------------------------------- | ------ | ------------------------------- |
| payment\_method<mark style="color:red;">\*</mark>    | String | payhow-gat                      |
| type<mark style="color:red;">\*</mark>               | String | credit\_card                    |
| name\_customer<mark style="color:red;">\*</mark>     | String | \[nome e sobrenome do cliente]  |
| first\_name<mark style="color:red;">\*</mark>        | String | \[nome do cliente]              |
| last\_name<mark style="color:red;">\*</mark>         | String | \[sobrenome do cliente]         |
| document<mark style="color:red;">\*</mark>           | String | cpf                             |
| document\_number<mark style="color:red;">\*</mark>   | String | \[cpf do cliente]               |
| email<mark style="color:red;">\*</mark>              | String | \[email do cliente]             |
| phone<mark style="color:red;">\*</mark>              | String | \[telefone do cliente]          |
| installments<mark style="color:red;">\*</mark>       |        | \[número de parcelas]           |
| installment\_value<mark style="color:red;">\*</mark> | String | \[valor da parcela em centavos] |
| token<mark style="color:red;">\*</mark>              | String | \[token gerado do cartão]       |

{% tabs %}
{% tab title="200: OK Pagamento processado" %}

```
"payment_status": "processing"
```

{% endtab %}

{% tab title="403: Forbidden Falha ao processar pagamento" %}

{% endtab %}
{% endtabs %}


# processar pagamento recorrente - cartão de crédito

Endpoint para processar pagamento recorrente via cartão de crédito

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                                 | Type   | Description                                    |
| ---------------------------------------------------- | ------ | ---------------------------------------------- |
| payment\_method<mark style="color:red;">\*</mark>    | String | payhow-gat                                     |
| type<mark style="color:red;">\*</mark>               | String | credit\_card                                   |
| name\_customer<mark style="color:red;">\*</mark>     | String | \[nome e sobrenome do cliente]                 |
| first\_name<mark style="color:red;">\*</mark>        | String | \[nome do cliente]                             |
| last\_name<mark style="color:red;">\*</mark>         | String | \[sobrenome do cliente]                        |
| document<mark style="color:red;">\*</mark>           | String | cpf                                            |
| document\_number<mark style="color:red;">\*</mark>   | String | \[cpf do cliente]                              |
| email<mark style="color:red;">\*</mark>              | String | \[email do cliente]                            |
| phone<mark style="color:red;">\*</mark>              | String | \[telefone do cliente]                         |
| installments<mark style="color:red;">\*</mark>       |        | \[número de parcelas]                          |
| installment\_value<mark style="color:red;">\*</mark> | String | \[valor da parcela em centavos]                |
| token<mark style="color:red;">\*</mark>              | String | \[token gerado do cartão]                      |
| subscription<mark style="color:red;">\*</mark>       | String | true                                           |
| interval<mark style="color:red;">\*</mark>           | String | "year" ou "month"                              |
| interval\_count<mark style="color:red;">\*</mark>    | Int    | 1 a 12                                         |
| discount                                             | Int    | porcentagem de desconto em inteiros \| null    |
| increment                                            | Int    | porcentagem de incrementos em inteiros \| null |

{% tabs %}
{% tab title="200: OK Pagamento processado" %}

```
"payment_status": "processing"
```

{% endtab %}

{% tab title="403: Forbidden Falha ao processar pagamento" %}

{% endtab %}
{% endtabs %}


# processar pagamento - boleto

Endpoint para processar pagamento via cartão de crédito

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                               | Type   | Description                    |
| -------------------------------------------------- | ------ | ------------------------------ |
| payment\_method<mark style="color:red;">\*</mark>  | String | payhow-gat                     |
| type<mark style="color:red;">\*</mark>             | String | boleto                         |
| name\_customer<mark style="color:red;">\*</mark>   | String | \[nome e sobrenome do cliente] |
| first\_name<mark style="color:red;">\*</mark>      | String | \[nome do cliente]             |
| last\_name<mark style="color:red;">\*</mark>       | String | \[sobrenome do cliente]        |
| document<mark style="color:red;">\*</mark>         | String | cpf                            |
| document\_number<mark style="color:red;">\*</mark> | String | \[cpf do cliente]              |
| email<mark style="color:red;">\*</mark>            | String | \[email do cliente]            |
| phone<mark style="color:red;">\*</mark>            | String | \[telefone do cliente]         |

{% tabs %}
{% tab title="200: OK Pagamento processado" %}

```
"url": [url-do-boleto]
```

{% endtab %}

{% tab title="403: Forbidden Falha ao processar pagamento" %}

{% endtab %}
{% endtabs %}


# processar pagamento recorrente - boleto

Endpoint para processar pagamento recorrente via boleto

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                               | Type   | Description                                          |
| -------------------------------------------------- | ------ | ---------------------------------------------------- |
| payment\_method<mark style="color:red;">\*</mark>  | String | payhow-gat                                           |
| type<mark style="color:red;">\*</mark>             | String | boleto                                               |
| name\_customer<mark style="color:red;">\*</mark>   | String | \[nome e sobrenome do cliente]                       |
| first\_name<mark style="color:red;">\*</mark>      | String | \[nome do cliente]                                   |
| last\_name<mark style="color:red;">\*</mark>       | String | \[sobrenome do cliente]                              |
| document<mark style="color:red;">\*</mark>         | String | cpf                                                  |
| document\_number<mark style="color:red;">\*</mark> | String | \[cpf do cliente]                                    |
| email<mark style="color:red;">\*</mark>            | String | \[email do cliente]                                  |
| phone<mark style="color:red;">\*</mark>            | String | \[telefone do cliente]                               |
| subscription<mark style="color:red;">\*</mark>     | String | true                                                 |
| cycle<mark style="color:red;">\*</mark>            | String | "YEARLY" / "MONTHLY" / "QUARTERLY" ou "SEMIANNUALLY" |
| discount\_percentage                               | Int    | porcentagem de desconto em inteiros \| null          |
| fine\_percentage                                   | Int    | porcentagem de multa em inteiros \| null             |
| interest\_percentage                               | Int    | porcentagem de jutos em inteiros \| null             |

{% tabs %}
{% tab title="200: OK Pagamento processado" %}

```
"payment_status": "processing"
```

{% endtab %}

{% tab title="403: Forbidden Falha ao processar pagamento" %}

{% endtab %}
{% endtabs %}


# processar pagamento - pix

Endpoint para processar pagamento via cartão de crédito

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name                                               | Type   | Description         |
| -------------------------------------------------- | ------ | ------------------- |
| Accept<mark style="color:red;">\*</mark>           | String | application/json    |
| Content-Type<mark style="color:red;">\*</mark>     | String | application/json    |
| checkout-session<mark style="color:red;">\*</mark> | String | \[checkout-session] |

#### Request Body

| Name                                               | Type   | Description                    |
| -------------------------------------------------- | ------ | ------------------------------ |
| payment\_method<mark style="color:red;">\*</mark>  | String | payhow-gat                     |
| type<mark style="color:red;">\*</mark>             | String | pix                            |
| name\_customer<mark style="color:red;">\*</mark>   | String | \[nome e sobrenome do cliente] |
| first\_name<mark style="color:red;">\*</mark>      | String | \[nome do cliente]             |
| last\_name<mark style="color:red;">\*</mark>       | String | \[sobrenome do cliente]        |
| document<mark style="color:red;">\*</mark>         | String | cpf                            |
| document\_number<mark style="color:red;">\*</mark> | String | \[cpf do cliente]              |
| email<mark style="color:red;">\*</mark>            | String | \[email do cliente]            |
| phone<mark style="color:red;">\*</mark>            | String | \[telefone do cliente]         |

{% tabs %}
{% tab title="200: OK Pagamento processado" %}

```
"url": [url-do-link-qrcode]
"app_url": [url-da-imagem-qrcode]
```

{% endtab %}

{% tab title="403: Forbidden Falha ao processar pagamento" %}

{% endtab %}
{% endtabs %}


# Processar pagamento - pix Paga Leve

<mark style="color:green;">`POST`</mark> `https://api.payhow.com.br/api/v1/ecommerce/checkout/cart/payment/process`

#### Headers

| Name             | Type             | Description |
| ---------------- | ---------------- | ----------- |
| Accept           | application/json |             |
| Content-Type     | application/json |             |
| checkout-session | String           |             |

#### Request Body

| Name            | Type                | Description |
| --------------- | ------------------- | ----------- |
| payment\_method | paga-leve           |             |
| type            | pix                 |             |
| first\_name     | Jane                |             |
| last\_name      | Doe                 |             |
| phone           | 15997563254         |             |
| email           | <janedoe@teste.com> |             |
| document        | 14258965478         |             |
| pix\_upfront    | false               |             |

{% tabs %}
{% tab title="200: OK " %}

```json
{
    "redirect_url": "https://sandbox-checkout.pagaleve.io/?c=98444dd3-5df6-4487-92bd-4d2d1b9b95a4&m=5a086c74-f938-4ac5-a304-620e43ae94fa&p=5515997627342&a=33800&u=www.gmail.com&cb=0&cr=0&pm=split"
}
```

{% endtab %}
{% endtabs %}

Fluxo de carrinho segue o mesmo padrão que as outras integrações, apenas no momento que for processar o pagamento, deve ser enviado os campos acima descritos, sendo que o campo “pix\_upfront” determina se o pagamento será pix a vista (true) ou parcelado (false), o retorno será o “redirect\_url” que contem a url do checkout de pagamento da paga leve ao qual o cliente finalizará o pagamento.

FLUXO CHECKOUT PAGA LEVE&#x20;

Dentro do checkout Paga Leve, se o pix for parcelado, o cliente confirmará seu celular para receber um token SMS para validação, na sequência, seus dados serão analisados para permitir ou não a liberação do QR code para pagamento e o preview das datas dos próximos pagamentos quinzenais, conforme imagens abaixo.

<div><figure><img src="https://3349912480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MlNadconSHPfCQXn9wO%2Fuploads%2FvlOsuQmV2HJIUvGaLzKg%2Fpagalevestep2.png?alt=media&amp;token=a64698ff-b212-4930-9b8c-32bf37ba6c47" alt=""><figcaption></figcaption></figure> <figure><img src="https://3349912480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MlNadconSHPfCQXn9wO%2Fuploads%2FyL0dV1jbWWYDfcrYSCOu%2Fpagalevestep3.png?alt=media&amp;token=c9dd8a5f-dc2f-4dd8-b213-52d37f242f52" alt=""><figcaption></figcaption></figure></div>

Na próxima tela onde aparece o QR code, consta os dados da parcela, por estarmos testando em ambiente de sandbox, é necessário copiar o código pix na imagem abaixo.

<figure><img src="https://3349912480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MlNadconSHPfCQXn9wO%2Fuploads%2FXW8GPgWBq0u1c6WFWj4E%2Fpagalevestep4.png?alt=media&amp;token=0961ba85-34fc-4b89-aeb0-db64bc8a11fc" alt=""><figcaption></figcaption></figure>

Na sequência é necessário acessar a url de simulação da PAGA LEVE para dar como pago o pix, sendo ela:

<https://sandbox-checkout.pagaleve.io/simulate?bypass=1&individualId=$%7BCPF%7D>

Nessa URL utilizarão 2 campos para o fluxo de testes, o primeiro para inserir o código pix e dar como pago e o segundo para limpar o telefone de um cliente, isso as vezes será necessário pois se criar um checkout e não finaliza-lo em sandbox, pode ocorrer um erro nos próximos testes com o mesmo telefone, caso ocorra, preencha o telefone e limpe antes de gerar um novo checkout, conforme imagem abaixo.

<figure><img src="https://3349912480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MlNadconSHPfCQXn9wO%2Fuploads%2FNhTl2v3ZQ8jHv00RTU0T%2Fpagalevestep5.png?alt=media&amp;token=e5f64816-2fdf-430c-8065-4a1993c64d85" alt=""><figcaption></figcaption></figure>

O cliente finalizando o pagamento, será redirecionado para uma url configurada na integração (deverá ser fornecida pelo lojista), a PAYHOW receberá o callback e retornaremos pelo webhook configurado na integração o status de pagamento, sendo que este mantem a mesma estrutura de retorno das outras integrações já implementadas.

<figure><img src="https://3349912480-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MlNadconSHPfCQXn9wO%2Fuploads%2FqLvR28Zrc5iQYgVThWvA%2Fpagalevestep6.png?alt=media&amp;token=c777af4c-123f-4e46-a696-a965236c2de5" alt=""><figcaption></figcaption></figure>


# 3. Callbacks


# Callback

Modelo de callback retornado a loja após pagamento do pedido dentro de nosso Checkout Payhow.

Após a finalização do pedido, será retornado através do callback\_url (cadastrado na integração da Api dentro da Dashboard Payhow), dados referentes ao pedido finalizado. Sendo que o body pode altera se for um create (primeiro retorno de callback do pedido) ou update (quando há uma atualização no status de pagamento)

### Descrição do body JSON do Callback (Create) <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave                  | Tipo   | Descrição                                                                                                                |
| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------ |
| order\_status          | string | create (primeiro callback referente ao pedido)                                                                           |
| order\_id              | string | É o nº do pedido enviado no parametro opcional "order\_id" do carrinho, caso não sido enviado, será retornado como null. |
| payhow\_order\_id      | int    | Número de pedido criado dentro da Payhow                                                                                 |
| payment\_method        | string | forma de pagamento podendo ser : wallet*app (qr\_code), credit*card\_checkout (cartão de crédito) ou boleto              |
| payment\_method\_title | string | descrição da forma de pagamento                                                                                          |
| status\_payment        | string | status do pagamento: (processing, paid, refunded, cancelled)                                                             |
| user\_id               | string | id do usuário, que foi enviado no endpoint do carrinho.                                                                  |

#### Billing

| Chave       | Tipo   | Descrlção                           |
| ----------- | ------ | ----------------------------------- |
| first\_name | string | Nome                                |
| last\_name  | string | Sobrenome                           |
| address     | string | Endereço                            |
| complement  | string | Complemento                         |
| city        | string | Cidade                              |
| state       | string | Estado                              |
| postcode    | string | CEP                                 |
| country     | string | País                                |
| email       | string | email recebido pela API do carrinho |
| phone       | string | Telefone                            |

<br>

#### Shipping

| Chave                   | Tipo   | Descrição                                                                                            |
| ----------------------- | ------ | ---------------------------------------------------------------------------------------------------- |
| method\_title           | string | Método de envio escolhido                                                                            |
| method\_id              | string | id do método de envio                                                                                |
| melhor\_envio\_protocol | string | caso tenha sido cotado pelo melhor envio, retornará o protocolo, se não, voltará null.               |
| melhor\_envio\_tracking | string | caso tenha sido cotado pelo melhor envio, retornará o código de monitoramento, se não, voltará null. |
| total                   | string | valor total do frete.                                                                                |
| first\_name             | string | Nome                                                                                                 |
| last\_name              | string | Sobrenome                                                                                            |
| company                 | string | empresa (apenas se for enviado para PJ, caso contrário virá null).                                   |
| address                 | string | Endereço                                                                                             |
| complement              | string | complemento                                                                                          |
| city                    | string | Cidade                                                                                               |
| state                   | string | Estado                                                                                               |
| postcode                | string | CEP                                                                                                  |
| country                 | string | País                                                                                                 |

#### Items

| Chave    | Tipo   | Descrição                                           |
| -------- | ------ | --------------------------------------------------- |
| id       | int    | id do produto fornecido na API de envio do carrinho |
| name     | string | Nome do produto                                     |
| price    | string | Preço unitário do produto.                          |
| quantity | string | Quantidade comprada.                                |
| total    | string | Valor total da compra do produto.                   |

### Exemplo de Callback (Create)

```json
{
    "order_status": "create",
    "order_id" : "1029",
    "payhow_order_id": 1649,
    "payment_method": "wallet_app",
    "payment_method_title": "Pagamento via aplicativo",
    "status_payment": "processing",
    "user_id": "1",
    "billing": {
        "first_name": "João",
        "last_name": "da Silva",
        "address": "Avenida são sebastião",
        "complement": "Piso 3 loja 7",
        "city": "Ibiúna",
        "state": "SP",
        "postcode": "18180-000",
        "country": "BR",
        "email": "comprador@sandbox.pagseguro.com.br",
        "phone": "15999999910"
    },
    "shipping": {
        "method_title": "Correios - PAC",
        "method_id": "Correios",
        "melhor_envio_protocol": null,
        "melhor_envio_tracking": null,
        "total": "24.30",
        "first_name": "João",
        "last_name": "da Silva",
        "company": "",
        "address": "Avenida são sebastião",
        "complement": "Piso 3 loja 7",
        "city": "Ibiúna",
        "state": "SP",
        "postcode": "18180-000",
        "country": "BR"
    },
    "items": [
        {
            "id": 495,
            "name": "Dying Light",
            "price": "1.50",
            "quantity": 1,
            "total": "1.50"
        },
        {
            "id": 495,
            "name": "Dying Light",
            "price": "1.50",
            "quantity": 1,
            "total": "1.50"
        }
    ]
}
```

### Descrição do body JSON do Callback (Update) <a href="#descricao-do-body-json-da-requisicao" id="descricao-do-body-json-da-requisicao"></a>

| Chave             | Tipo   | Descrição                                                                                        |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------ |
| order\_status     | string | Retorna update, indicando que é uma atualização de status de pagamento de um pedido já realizado |
| order\_id         | string | retornar caso tenha sido previamente enviado na criação do carrinho                              |
| payhow\_order\_id | int    | id criado pela payhow de referência para criação e atualização de pedido                         |
| status\_payment   | string | volta o status de pagamento atualizado.                                                          |

## Exemplo de Callback (Update)

```json
{
    "order_status": "create",
    "order_id" : "1029",
    "payhow_order_id": 1649,
    "status_payment": "processing"    
}
```

## Observações

O callback é um POST, por isso é esperado que seja retornado um true, para confirmarmos que os dados foram recebidos.


# Falha no Callback

Em caso de falha de envio na url de callback cadastrada na integração da Api, estaremos enviando todos os parametros informados no body do callback por e-mail, para que a loja não perca a comunicação

Modelo de Callback por e-mail

{% file src="/files/k4iCE5mbF2xepEePzTUG" %}


