Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Atual »

O que é?

Swagger:

Para acessar o swagger, insira após o domínio da loja '/web-api/docs/index.html'

Exemplo:

Collection Postman:

OCA.postman_collection(OCA).json


Contrato de dados (Requests)

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)

CampoTipoObrigatórioDescrição
sessionIDstringSimIdentificador de sessão do cliente.
BasketIDintegerSimID do carrinho.
BasketAuthorityTokenstringSimToken de autoridade do carrinho.

Exemplo mínimo

 {
   "sessionID":"<SessionID>",
   "BasketID":123456,
   "BasketAuthorityToken":"<BasketAuthorityToken>"
}


2) Recuperar Checkout (POST)

  • Endpoint: POST /Get

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimIdentificador da sessão.
BasketIDintegerSimID do carrinho.
BasketAuthorityTokenstringSimToken de autoridade do carrinho.


Exemplo

{
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>"
}


3) Grupos de Pagamento

Endpoint: POST /PaymentGroups
Objetivo: retornar grupos e meios de pagamento disponíveis.
Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão atual.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.


Exemplo

{
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>"
}


4) Finalizar Pedido

  • Endpoint: POST /PlaceOrder

Body (request)

CampoTipoObrigatórioDescrição
Paymentsarray<object>Sim (≥1)Lista de pagamentos.
SessionIDstringSimSessão.


Payments[]

CampoTipoObrigatórioDescrição
PaymentMethodIDintegerSimMeio de pagamento habilitado.
InstallmentsintegerSimNúmero de parcelas.
CardInfoobjectCondicionalQuando o método exigir dados de cartão ou um token.


CardInfo (quando aplicável)

CampoTipoObrigatórioDescrição
HolderstringSim*Nome no cartão.
NumberstringSim*PAN.
SecurityCodestringSim*CVV/CVC.
MonthintegerSim*1–12.
YearintegerSim*YYYY.
ExpirationDatestringOpcionalAlternativa MM/YY.
TokenstringAlternativoQuando o provedor usa tokenização.


Exemplo (cartão)

{
  "Payments": [
    {
      "PaymentMethodID": 955,
      "Installments": 1,
      "CardInfo": {
        "Holder": "NOME CLIENTE",
        "Number": "4000000000000010",
        "SecurityCode": "123",
        "Month": 1,
        "Year": 2026
      }
    }
  ],
  "SessionID": "<SessionID>"
}


5) Selecionar Opção de Entrega

  • Endpoint: POST /SetDeliveryOption

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão.
deliveryOptionIDstringSimID da opção de entrega retornada no cálculo.
groupKeystringSimGrupo de itens (ex.: 14_group1).
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.


Exemplo

{
  "sessionID": "<SessionID>",
  "deliveryOptionID": "3_589-fe_entrega-oms-STANDARD",
  "groupKey": "14_group1",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>"
}


6) Selecionar Endereço

  • Endpoint: POST /SetAddress

Body (request)

CampoTipoObrigatórioDescrição
IDintegerSimID do endereço salvo.
SessionIDstringSimSessão.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.
SetAsShippingAddressbooleanSimAplicar como entrega.
SetAsBillingAddressbooleanSimAplicar como cobrança.


Exemplo

{
  "ID": 338862,
  "SessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>",
  "SetAsShippingAddress": true,
  "SetAsBillingAddress": true
}


7) Aplicar Cupom

  • Endpoint: POST /AddCoupon

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.
CouponCodestringSimCódigo do cupom.


Exemplo

{
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>",
  "CouponCode": "PROMO10"
}


8) Remover Cupom

  • Endpoint: POST /RemoveCoupon

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.
CouponCodestringSimCódigo a remover (ou cupom vigente).


Exemplo

{
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>",
  "CouponCode": "PROMO10"
}


9) OMS — Locations (Pickup)

  • Endpoint: POST /GetOMSLocations
  • Objetivo: retornar locais elegíveis (ex.: retirada em loja) para a opção de entrega selecionada.

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.
groupKeystringSimGrupo de itens.
deliveryOptionIDstringSimOpção de entrega (ex.: modo “retirar”).
pageintegerOpcionalPágina (paginações grandes).
pageSizeintegerOpcionalTamanho da página.


Exemplo

 {
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>",
  "groupKey": "14_group1",
  "deliveryOptionID": "pickup-oms",
  "page": 1,
  "pageSize": 20
}


10) OMS — Locations com Distância

  • Endpoint: POST /GetOMSLocationsWithDistance
  • Objetivo: retornar locais com cálculo de distância a partir de uma coordenada.

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimSessão.
BasketIDintegerSimCarrinho.
BasketAuthorityTokenstringSimToken do carrinho.
groupKeystringSimGrupo de itens.
deliveryOptionIDstringSimOpção de entrega (pickup).
latitudenumberSimLatitude de referência.
longitudenumberSimLongitude de referência.
radiusKmnumberOpcionalRaio de busca em km.
pageintegerOpcionalPágina.
pageSizeintegerOpcionalTamanho da página.


Exemplo

{
  "sessionID": "<SessionID>",
  "BasketID": 123456,
  "BasketAuthorityToken": "<BasketAuthorityToken>",
  "groupKey": "14_group1",
  "deliveryOptionID": "pickup-oms",
  "latitude": -23.55052,
  "longitude": -46.63331,
  "radiusKm": 30,
  "page": 1,
  "pageSize": 20
}


Observações importantes

  • Headers: além do Authorization: Basic ..., em integrações padrão o Content-Type: application/json é recomendado.

  • IDs e tokens (BasketID, BasketAuthorityToken, PaymentMethodID, groupKey, deliveryOptionID, ID de 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).

  • Sem rótulos