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
  }
}