O que é?
Swagger:
Para acessar o swagger, insira após o domínio da loja '/web-api/docs/index.html'
Exemplo:
Collection Postman:
Contratos de Checkout (Request)
- Base path ilustrativo:
/web-api/v1/Shopping/Checkout- Autenticação:
Authorization: Basic <credenciais>- Content-Type:
application/json
1) Recuperar Checkout
- Endpoint:
POST /Get- Objetivo: Retornar o estado atual do Checkout (endereços, grupos/pagamentos, etc.)
Body (request)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
sessionID | string | Sim | Identificador de sessão do cliente. |
BasketID | integer | Sim | ID do carrinho. |
BasketAuthorityToken | string | Sim | Token de autoridade do carrinho. |
Exemplo mínimo
{
"sessionID":"<SessionID>",
"BasketID":123456,
"BasketAuthorityToken":"<BasketAuthorityToken>"
}
2) Definir Opção de Entrega
- Endpoint:
POST /SetDeliveryOption- Objetivo: Selecionar a opção de entrega para um grupo do carrinho/checkout.
Body (request)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
sessionID | string | Sim | Identificador de sessão do cliente. |
deliveryOptionID | string | Sim | ID da opção de entrega retornada pelo cálculo de frete. |
groupKey | string | Sim | Chave do grupo de itens ao qual a entrega será aplicada (ex.: 14_group1). |
BasketID | integer | Sim | ID do carrinho. |
BasketAuthorityToken | string | Sim | Token de autoridade do carrinho. |
Exemplo mínimo
{
"sessionID":"<SessionID>",
"deliveryOptionID":"3_589-fe_entrega-oms-STANDARD",
"groupKey":"14_group1",
"BasketID":123456,
"BasketAuthorityToken":"<BasketAuthorityToken>"
}
3) Definir Endereço (seleção de endereço salvo)
- Endpoint:
POST /SetAddress- Objetivo: Definir um endereço previamente cadastrado como entrega e/ou cobrança.
Body (request)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ID | integer | Sim | ID do endereço existente (catálogo de endereços do cliente). |
SessionID | string | Sim | Identificador de sessão do cliente. |
BasketID | integer | Sim | ID do carrinho. |
BasketAuthorityToken | string | Sim | Token de autoridade do carrinho. |
SetAsShippingAddress | boolean | Sim | True para aplicar como endereço de entrega. |
SetAsBillingAddress | boolean | Sim | True para aplicar como endereço de cobrança. |
Exemplo mínimo
{
"ID":338862,
"SessionID":"<SessionID>",
"BasketID":123456,
"BasketAuthorityToken":"<BasketAuthorityToken>",
"SetAsShippingAddress":true,
"SetAsBillingAddress":true
}
4) Finalizar Pedido (PlaceOrder)
- Endpoint:
POST /PlaceOrder- Objetivo: Efetivar o pedido com uma ou mais formas de pagamento.
Body (request)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Payments | array<object> | Sim (≥1) | Lista de pagamentos a aplicar. |
SessionID | string | Sim | Identificador de sessão do cliente. |
Estrutura de Payments[]
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
PaymentMethodID | integer | Sim | ID do meio de pagamento habilitado no Checkout. |
Installments | integer | Sim | Número de parcelas. |
CardInfo | object | Condicional | Necessário quando o meio exigir dados de cartão. |
Estrutura de CardInfo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
Holder | string | Sim* | Nome impresso no cartão (*quando aplicável). |
Number | string | Sim* | PAN do cartão (formato aceito pelo provedor). |
SecurityCode | string | Sim* | CVV/CVC. |
Month | integer | Sim* | Mês de expiração (1–12). |
Year | integer | Sim* | Ano de expiração (YYYY). |
ExpirationDate | string | Opcional | Alternativa de expiração (MM/YY), se suportado. |
Exemplo mínimo
{
"Payments":[
{
"PaymentMethodID":955,
"CardInfo":{
"Holder":"NOME DO CLIENTE",
"Number":"4000 0000 0000 0010",
"SecurityCode":"123",
"Month":1,
"Year":2026,
"ExpirationDate":"01/26"
},
"Installments":1
}
],
"SessionID":"<SessionID>"
}
Observações importantes
Headers: além do
Authorization: Basic ..., em integrações padrão oContent-Type: application/jsoné recomendado.IDs e tokens (
BasketID,BasketAuthorityToken,PaymentMethodID,groupKey,deliveryOptionID,IDde endereço) devem ser obtidos previamente pelas etapas do carrinho/checkout.CardInfo só deve ser enviado quando o provedor/meio exigir dados sensíveis no front; em cenários com tokenização do provedor, substitua por token/nonce conforme o método cadastrado (mantendo a estrutura de
Payments).

