Criar e pagar pedido com cartão (clientes PCI)

Esse guia descreve como criar e pagar um pedido com cartão caso você seja esteja em confirmidade com as regras PCI. Esse fluxo de criação e pagamento aceita como meio de pagamento cartões de crédido e débito.

Para a utilização dessa solução você deverá ter realizado o processo de homologação e ter apresentado o certificado PCI ao PagBank. Do contrário, você não conseguirá gerar transações com o cartão aberto. Caso você ainda não tenha homologado sua integração, acesse a página Solicitar homologação.

Restrições para a criação de pedido

Para a criação de pedidos, você deve ser precisa estar em confirmidade com as regras PCI e não deve violar os valores limites para cada operação. A tabela a seguir define valores mínimos por transação e parcela definidos pelas bandeiras de Cartão de Crédito.

Forma de PagamentoBandeiraValor mínimo (R$)Valor mínimo da parcela (R$)
Cartão de CréditoVisa1,005,00
Cartão de CréditoMastercard0,205,00
Cartão de CréditoAmerican Express0,205,00
Cartão de CréditoDemais bandeiras0,205,00

Recomendações de segurança

Recomendamos fortemente que você implemente recursos adicionais de segurança na tela de checkout do seu site. Uma medida eficaz é a utilização de um reCaptcha, que ajuda a prevenir ataques de robôs e validação de cartões fraudulentos, protegendo suas vendas e o seu negócio de possíveis impactos negativos. A adoção dessa medida de segurança reduz as chances de fraudes e contribui para aumentar a confiança dos clientes em seu site.

Crie e pague o pedido

Com os dados do cartão e do pedido, você pode criar o pedido utilizando o endpoint Criar pedido.

Para realizar a requisição ao endpoint Criar pedido, você precisa fornecer no corpo da requisição os dados descritos no Objeto Order. Os dados do pagamento devem ser adicionados ao objeto charge. A página Objeto Charge descreve em detalhes cada um dos parâmetros que devem ser incluídos.

Os dados do cartão utilizado no pagamento devem ser adicionados ao objeto charges.payment_method.card. Você deve identificar o meio de pagamento através do parâmetro charges.payment_method.type com o valor CREDIT_CARD ou DEBIT_CARD. Por fim, para que a captura da cobrança seja feita de forma automática, junto com a criação do pedido, você deve encaminhar o parâmetro charges.payment_method.capture com o valor true.

Abaixo você encontra um exemplo de requisição e resposta ao endpoint Criar pedido.

curl --location --request POST 'https: //sandbox.api.pagseguro.com/orders' \
--header 'Authorization: Bearer { {TOKEN }}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "reference_id": "ex-00001",
  "customer": {
    "name": "Jose da Silva",
    "email": "[email protected]",
    "tax_id": "12345678909",
    "phones": [
      {
        "country": "55",
        "area": "11",
        "number": "999999999",
        "type": "MOBILE"
      }
    ]
  },
  "items": [
    {
      "reference_id": "referencia do item",
      "name": "nome do item",
      "quantity": 1,
      "unit_amount": 500
    }
  ],
  "shipping": {
    "address": {
      "street": "Avenida Brigadeiro Faria Lima",
      "number": "1384",
      "complement": "apto 12",
      "locality": "Pinheiros",
      "city": "São Paulo",
      "region_code": "SP",
      "country": "BRA",
      "postal_code": "01452002"
    }
  },
  "notification_urls": [
    "https://meusite.com/notificacoes"
  ],
  "charges": [
    {
      "reference_id": "referencia da cobranca",
      "description": "descricao da cobranca",
      "amount": {
        "value": 500,
        "currency": "BRL"
      },
      "payment_method": {
        "type": "CREDIT_CARD",
        "installments": 1,
        "capture": true,
        "card": {
          "number": "4111111111111111",
          "exp_month": "12",
          "exp_year": "2026",
          "security_code": "123",
          "holder": {
            "name": "Jose da Silva",
            "tax_id": "65544332211"
          },
          "store": false
        }
      }
    }
  ]
}'
{
  "id": "ORDE_1B946E10-A183-4F80-BA82-E4D10BA75574",
  "reference_id": "ex-00001",
  "created_at": "2023-02-08T15:01:09.068-03:00",
  "customer": {
    "name": "Jose da Silva",
    "email": "[email protected]",
    "tax_id": "12345678909",
    "phones": [
      {
        "type": "MOBILE",
        "country": "55",
        "area": "11",
        "number": "999999999"
      }
    ]
  },
  "items": [
    {
      "reference_id": "referencia do item",
      "name": "nome do item",
      "quantity": 1,
      "unit_amount": 500
    }
  ],
  "shipping": {
    "address": {
      "street": "Avenida Brigadeiro Faria Lima",
      "number": "1384",
      "complement": "apto 12",
      "locality": "Pinheiros",
      "city": "São Paulo",
      "region_code": "SP",
      "country": "BRA",
      "postal_code": "01452002"
    }
  },
  "charges": [
    {
      "id": "CHAR_89EFFBA8-69F5-42FC-88F9-2E9BAA26A4F3",
      "reference_id": "referencia da cobranca",
      "status": "PAID",
      "created_at": "2023-02-08T15:01:09.313-03:00",
      "paid_at": "2023-02-08T15:01:10.000-03:00",
      "description": "descricao da cobranca",
      "amount": {
        "value": 500,
        "currency": "BRL",
        "summary": {
          "total": 500,
          "paid": 500,
          "refunded": 0
        }
      },
      "payment_response": {
        "code": "20000",
        "message": "SUCESSO",
        "reference": "032416400102"
      },
      "payment_method": {
        "type": "CREDIT_CARD",
        "installments": 1,
        "capture": true,
        "card": {
          "brand": "visa",
          "first_digits": "411111",
          "last_digits": "1111",
          "exp_month": "12",
          "exp_year": "2026",
          "holder": {
            "name": "Jose da Silva",
            "tax_id": "65544332211"
          },
          "store": false
        },
        "soft_descriptor": "IntegracaoPagsegu"
      },
      "links": [
        {
          "rel": "SELF",
          "href": "https://sandbox.api.pagseguro.com/charges/CHAR_89EFFBA8-69F5-42FC-88F9-2E9BAA26A4F3",
          "media": "application/json",
          "type": "GET"
        },
        {
          "rel": "CHARGE.CANCEL",
          "href": "https://sandbox.api.pagseguro.com/charges/CHAR_89EFFBA8-69F5-42FC-88F9-2E9BAA26A4F3/cancel",
          "media": "application/json",
          "type": "POST"
        }
      ]
    }
  ],
  "notification_urls": [
    "https://meusite.com/notificacoes"
  ],
  "links": [
    {
      "rel": "SELF",
      "href": "https://sandbox.api.pagseguro.com/orders/ORDE_1B946E10-A183-4F80-BA82-E4D10BA75574",
      "media": "application/json",
      "type": "GET"
    },
    {
      "rel": "PAY",
      "href": "https://sandbox.api.pagseguro.com/orders/ORDE_1B946E10-A183-4F80-BA82-E4D10BA75574/pay",
      "media": "application/json",
      "type": "POST"
    }
  ]
}

Para verificar se a criação e o pagamento do pedido foram executados com sucesso, verifique os campos charges.status e charges.payment_response.message existentes no corpo da resposta.