CheckoutComplete
A mutation CheckoutComplete realiza o fechamento do carrinho, e é nesse momento que o pedido é efetivamente criado no sistema. É importante notar que, dependendo do método de pagamento selecionado, informações adicionais de pagamento podem ser necessárias.
Exemplo
mutation (
$checkoutId: Uuid!
$paymentData: String!
$comments: String
$customerAccessToken: String
) {
checkoutComplete(
checkoutId: $checkoutId
paymentData: $paymentData
comments: $comments
customerAccessToken: $customerAccessToken
) {
...checkoutFields
}
}
fragment checkoutFields on Checkout {
checkoutId
completed
orders {
adjustments {
name
type
value
}
date
discountValue
interestValue
orderId
orderStatus
products {
adjustments {
name
additionalInformation
type
value
}
attributes {
name
value
}
imageUrl
name
productCategories
productVariantId
quantity
value
}
shippingValue
totalValue
delivery {
address {
address
cep
city
complement
name
isPickupStore
neighborhood
pickupStoreText
}
cost
deliveryTime
name
}
dispatchTimeText
payment {
invoice {
digitableLine
paymentLink
}
name
pix {
qrCode
qrCodeExpirationDate
qrCodeUrl
}
}
}
}O campo
productCategoriesretorna a árvore de categorias de cada item do pedido. Ele está disponível apenas nos produtos de orders (e de orders.kits), não nos produtos do carrinho. Veja os subcampos em Checkout.
Exemplo de variáveis da query para pagamento com Boleto:
{
"paymentData": "cpf=72628449030&telefone=11912345674",
"comments": "Teste",
"checkoutId": "9caef8e9-8fe4-47a1-8696-a3805c2e8926",
"customerAccessToken": "{customerAccessToken}"
}Exemplo de variáveis da query para pagamento com Cartão:
{
"paymentData": "number=0000%200000%200000%200000&name=Teste&month=09&year=2024&expiry=09%2F2024&cvc=531&cpf=72628449030",
"comments": "Teste com cartão",
"checkoutId": "62462863-c1f8-458e-be7e-483232ed2080",
"customerAccessToken": "{customerAccessToken}"
}Exemplo de variáveis da query para pagamento com Pix:
{
"paymentData": "",
"comments": "Teste com cartão",
"checkoutId": "f9e77db7-c31f-4c1b-a6a5-8ea0696172c6",
"customerAccessToken": "{customerAccessToken}"
}Mostrar resposta
Na resposta, apresentará detalhes do pedido finalizado, incluindo informações sobre o status do pedido, detalhes do produto, informações de entrega e detalhes do pagamento.
{
"data": {
"checkoutComplete": {
"checkoutId": "9caef8e9-8fe4-47a1-8696-a3805c2e8926",
"completed": true,
"orders": [
{
"adjustments": [...],
"date": "2023-06-22T18:41:54.703-03:00",
"discountValue": -67.78,
"interestValue": 0.0,
"orderId": 345330,
"orderStatus": "AWAITING_PAYMENT",
"products": [...],
"shippingValue": 106.0,
"totalValue": 716.0,
"delivery": {
"address": {
"address": "Rua Itapaiuna, 150",
"cep": "05707001",
"city": "São Paulo - SP",
"complement": "Apto. 456",
"name": "Pé de manga na frente",
"isPickupStore": false,
"neighborhood": "Jardim Morumbi",
"pickupStoreText": null
},
"cost": 106.0,
"deliveryTime": 3,
"name": "Teste contrato 1"
},
"dispatchTimeText": "(após pedido ser despachado):",
"payment": {
"invoice": {
"digitableLine": "123123123123123131232131232131313211231321321",
"paymentLink": "https://intermediador-sandbox.yapay.com.br/orders/billet/e2105ee689477e50bb0981e01ecbbf8b"
},
"name": "Boleto",
"pix": null
}
}
]
}
}
}Validação Checkout Online
O Checkout online é um serviço onde a validação do cartão é realizada na hora de fechar o pedido. Caso os dados estejam incorretos, não tenha limite no cartão, o banco não autorizar a compra ou o cartão for inválido, uma mensagem de erro será exibida e o pedido não será finalizado, sendo negado imediatamente.
Abaixo um exemplo referente a validação do checkout online:
mutation {
checkoutComplete(
checkoutId: "9caef8e9-8fe4-47a1-8696-a3805c2e8926"
customerAccessToken: "N+5vHHpgwGylQoJoD1GsEL2JPXFDdCf5rKeNkg8DmQQ1mJ6uWStjCuexKALU9Pw1fp1ovq6+1STvnpJqR8muDQD5FU1QxW9fbn72pROGETbMiu5dP7T46rPP9Oofjy8zWHq14AQNykOeOETkBnCcJQ=="
paymentData: "number=0000%200000%200000%200000&name=Teste&month=09&year=2024&expiry=09%2F2024&cvc=531&cpf=72628449030"
) {
completed
checkoutId
}
}Mostrar resposta
{
"errors": [
{
"message": "Error when trying to process selected payment method",
"path": [
"checkoutComplete"
],
"extensions": {
"code": "GTW100"
}
}
],
"data": {
"checkoutComplete": null
}
}Código de retorno da adquirente em recusas
Quando o pagamento é recusado pela adquirente, a checkoutComplete retorna o erro GTW101 e, junto dele, o código de retorno da adquirente em errors[].extensions.acquirerReturnCode. Com esse código, a loja pode exibir ao consumidor final uma mensagem própria e amigável, em vez do texto técnico da adquirente.
Exemplo de resposta de recusa:
{
"errors": [
{
"message": "Error when trying to process selected payment method",
"path": [
"checkoutComplete"
],
"extensions": {
"code": "GTW101",
"acquirerReturnCode": "51"
}
}
],
"data": {
"checkoutComplete": null
}
}
Campo Tipo Descrição extensions.codeString Código de erro da plataforma. GTW101indica que a adquirente não autorizou o pagamento.extensions.acquirerReturnCodeString Código de retorno da adquirente para a tentativa de pagamento recusada, repassado sem tratamento pela plataforma. ⚠️ Atenção
extensions.acquirerReturnCodesó é retornado quando a adquirente informa o código na recusa. Se a adquirente não devolver o código, o erro é retornado apenas comextensions.code, e o front deve exibir sua mensagem genérica de falha no pagamento.- O campo não é retornado em erros de comunicação com o gateway (por exemplo,
GTW100eGTW104), pois nesses casos não houve retorno da adquirente.- Os códigos e seus significados são definidos pela adquirente/gateway da loja; o mapeamento código → mensagem amigável deve ser implementado no front.
- Em pedidos já criados, o código também pode ser consultado em
orders.payment.card.acquirerReturnCode, tanto no retorno desta mutation quanto na query Checkout.
Updated 9 days ago

