Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Sim
Painel
borderColor#2C004B
titleColor#FFF
titleBGColor#2C004B
borderStylesolid
titleO que é?

Swagger:

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

Exemplo:

Collection Postman:

View file
nameOCA.postman_collection(OCA).json
height250


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

Bloco de código
languagesass
themeMidnight
 {
   "sessionID":"<SessionID>",
   "BasketID":123456,
   "BasketAuthorityToken":"<BasketAuthorityToken>"
}


2)

Definir Opção de Entrega

Recuperar Checkout (POST)

  • Endpoint: POST /SetDeliveryOption
    • Objetivo: Selecionar a opção de entrega para um grupo do carrinho/checkout.
    Get

Body (request)

CampoTipoObrigatórioDescrição
sessionIDstringSimIdentificador
de
da sessão
do cliente
.
deliveryOptionIDstring
groupKeystringSimChave do grupo de itens ao qual a entrega será aplicada (ex.: 14_group1).
ID da opção de entrega retornada pelo cálculo de frete.
BasketIDintegerSimID do carrinho.
BasketAuthorityTokenstringSimToken de autoridade do carrinho.


Exemplo mínimo


Bloco de código
languagesass
themeMidnight
{

 

"sessionID": "<SessionID>",

 

"deliveryOptionID":"3_589-fe_entrega-oms-STANDARD", "groupKey":"14_group1", "BasketID":123456,

"BasketID": 123456, "BasketAuthorityToken": "<BasketAuthorityToken>"

 }

3)

Definir Endereço (seleção de endereço salvo)

Grupos de Pagamento

Endpoint: POST /

SetAddress

PaymentGroups
Objetivo:

Definir um endereço previamente cadastrado como entrega e/ou cobrança

retornar grupos e meios de pagamento disponíveis.
Body (request)

CampoTipoObrigatórioDescrição
IDintegerSimID do endereço existente (catálogo de endereços do cliente).SessionID
sessionIDstringSim
Identificador de sessão do cliente
Sessão atual.
BasketIDintegerSim
ID do carrinho
Carrinho.
BasketAuthorityTokenstringSimToken
de autoridade
do carrinho.
SetAsShippingAddressbooleanSimTrue para aplicar como endereço de entrega.SetAsBillingAddressbooleanSimTrue para aplicar como endereço de cobrança.


Exemplo mínimo


Bloco de código
languagesass
themeMidnight
{

 

"

ID

sessionID":

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)

CampoTipoObrigatórioDescrição
Paymentsarray<object>Sim (≥1)Lista de pagamentos
a aplicar
.
SessionIDstringSim
Identificador de sessão do cliente
Sessão.
Estrutura de


Payments[]

CampoTipoObrigatórioDescrição
PaymentMethodIDintegerSim
ID do meio
Meio de pagamento habilitado
no Checkout
.
InstallmentsintegerSimNúmero de parcelas.
CardInfoobjectCondicional
Necessário quando
Quando o
meio
método exigir dados de cartão ou um token.
Estrutura de


CardInfo (quando aplicável)

CampoTipoObrigatórioDescrição
HolderstringSim*Nome
impresso
no cartão
(*quando aplicável)
.
NumberstringSim*PAN
do cartão (formato aceito pelo provedor)
.
SecurityCodestringSim*CVV/CVC.
MonthintegerSim*
Mês de expiração (
1–12
)
.
YearintegerSim*
Ano de expiração (
YYYY
)
.
ExpirationDatestringOpcionalAlternativa
de expiração (
MM/YY
), se suportado
.
TokenstringAlternativoQuando o provedor usa tokenização.


Exemplo mínimo(cartão)


Bloco de código
languagesass
themeMidnight
{

 "Payments": [

 

{

 

"PaymentMethodID": 955,

 

"Installments": 1, "CardInfo": {

 

"Holder": "NOME

DO

 CLIENTE",

 "Number": "4000000000000010", "SecurityCode": "123", "Month": 1, "Year": 2026 } } ], "

Number

SessionID": "

4000 0000 0000 0010", "SecurityCode":"123", "Month":1, "Year":2026, "ExpirationDate":"01/26" }, "Installments":1 } ], "SessionID":"<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


Bloco de código
languagesass
themeMidnight
{ "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


Bloco de código
languagesass
themeMidnight
{ "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


Bloco de código
languagesass
themeMidnight
{ "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


Bloco de código
languagesass
themeMidnight
{ "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


Bloco de código
languagesass
themeMidnight
 {"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

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



Nota

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).


...