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

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