These docs are for v2.2. Click to read the latest docs for v4.1.

Criar e pagar pedido com token PagBank

Este guia descreve como criar e pagar um pedido utilizando o token PagBank associado a um Cartão de Crédito. É importante destacar a criação do token PagBank acontece durante a criação e pagamento utilizando o fluxo convencional descrito aqui, conforme apresentado pelo fluxo abaixo.

Ao optar pela adoção do sistema de token, os dados essenciais do cliente para a efetivação de um pagamento são salvos no sistema do PagBank. Para o gerenciamento de compras futuras, o PagSeguro gera e retorna um token que substitui os dados do cartão. Esse token pode ser utilizado em pagamentos futuros do mesmo cliente, sem a necessidade de confirmar sua identidade. Acesse Pagamento com token PagBank para maiores informações.

Crie um token PagBank

Ao realizar o primeiro request ao endpoint Criar pedido, você deve encaminhar o parâmetro charges.payment_method.store com o valor true. Dessa forma você estará indicando que além da cobraça, o sistema PagBank deverá realizar a tokenização do cartão utilizado na compra. Os parâmetros relacionados aos dados do cartão devem ser enviados normalmente.

A response da chamada conterá o token PagBank do cartão utilizado independente se a transação foi aprovada ou rejeitada. Você pode acessar o token através do parâmetro charges.payment_method.card.id. Você deve salvar o token em seu sistema para futuras transações.

Abaixo você encontra exemplos de request para a criação e pagamento de um pedido onde foi requisitada a criação do token PagBank. Os dados da resposta também são apresentado, contendo o token vinculado ao cartão utilizado.

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"
          },
          "store": true
        }
      }
    }
  ]
}'
{
  "id": "ORDE_1BD3B260-907B-46D3-99D4-9F646E9CBC6A",
  "reference_id": "ex-00001",
  "created_at": "2023-02-08T16:10:42.476-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_53702DF2-E986-4581-AA66-9C8C199B1906",
      "reference_id": "referencia da cobranca",
      "status": "PAID",
      "created_at": "2023-02-08T16:10:42.946-03:00",
      "paid_at": "2023-02-08T16:10:44.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": {
          "id": "CARD_9806D4C1-1A4A-4DD7-8960-1171ECD8DE3D",
          "brand": "visa",
          "first_digits": "411111",
          "last_digits": "1111",
          "exp_month": "12",
          "exp_year": "2026",
          "holder": {
            "name": "Jose da Silva"
          },
          "store": true
        },
        "soft_descriptor": "IntegracaoPagsegu"
      },
      "links": [
        {
          "rel": "SELF",
          "href": "https://sandbox.api.pagseguro.com/charges/CHAR_53702DF2-E986-4581-AA66-9C8C199B1906",
          "media": "application/json",
          "type": "GET"
        },
        {
          "rel": "CHARGE.CANCEL",
          "href": "https://sandbox.api.pagseguro.com/charges/CHAR_53702DF2-E986-4581-AA66-9C8C199B1906/cancel",
          "media": "application/json",
          "type": "POST"
        }
      ]
    }
  ],
  "notification_urls": [
    "https://meusite.com/notificacoes"
  ],
  "links": [
    {
      "rel": "SELF",
      "href": "https://sandbox.api.pagseguro.com/orders/ORDE_1BD3B260-907B-46D3-99D4-9F646E9CBC6A",
      "media": "application/json",
      "type": "GET"
    },
    {
      "rel": "PAY",
      "href": "https://sandbox.api.pagseguro.com/orders/ORDE_1BD3B260-907B-46D3-99D4-9F646E9CBC6A/pay",
      "media": "application/json",
      "type": "POST"
    }
  ]
}

Crie e pague um pedido com token PagBank

Depos de ter o token PagBank, para realizar a criação e pagamento de pedidos você irá fornecer o token no lugar dos dados do cartão. O token deve ser informado no parâmetro charges.payment_method.card.id. Adicionalmente, você pode encaminhar o nome do detentor do cartão e o CVV através do charges.payment_method.card.security_code.

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 exemplos de requisição e resposta ao endpoint Criar pedido utilizando o token PagBank.

curl --location --request POST 'https://sandbox.api.pagseguro.com/orders' \
--header 'Authorization: Bearer {{BEARER}}' \
--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": {
                    "id": "CARD_9806D4C1-1A4A-4DD7-8960-1171ECD8DE3D",
                    "security_code": "123",
                    "holder": {
                        "name": "Jose da Silva"
                    },
                    "store": true
                }
            }
        }
    ]
}'
{
    "id": "ORDE_6AD3E748-A4E4-48D4-B80C-14CE06FC66FB",
    "reference_id": "ex-00001",
    "created_at": "2023-02-08T16:11:24.170-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_BAD68EB1-65B8-47FF-84C6-528496513C82",
            "reference_id": "referencia da cobranca",
            "status": "PAID",
            "created_at": "2023-02-08T16:11:24.663-03:00",
            "paid_at": "2023-02-08T16:11:25.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": {
                    "id": "CARD_9806D4C1-1A4A-4DD7-8960-1171ECD8DE3D",
                    "brand": "visa",
                    "first_digits": "411111",
                    "last_digits": "1111",
                    "exp_month": "12",
                    "exp_year": "2026",
                    "holder": {
                        "name": "Jose da Silva"
                    },
                    "store": true
                },
                "soft_descriptor": "IntegracaoPagsegu"
            },
            "links": [
                {
                    "rel": "SELF",
                    "href": "https://sandbox.api.pagseguro.com/charges/CHAR_BAD68EB1-65B8-47FF-84C6-528496513C82",
                    "media": "application/json",
                    "type": "GET"
                },
                {
                    "rel": "CHARGE.CANCEL",
                    "href": "https://sandbox.api.pagseguro.com/charges/CHAR_BAD68EB1-65B8-47FF-84C6-528496513C82/cancel",
                    "media": "application/json",
                    "type": "POST"
                }
            ]
        }
    ],
    "notification_urls": [
        "https://meusite.com/notificacoes"
    ],
    "links": [
        {
            "rel": "SELF",
            "href": "https://sandbox.api.pagseguro.com/orders/ORDE_6AD3E748-A4E4-48D4-B80C-14CE06FC66FB",
            "media": "application/json",
            "type": "GET"
        },
        {
            "rel": "PAY",
            "href": "https://sandbox.api.pagseguro.com/orders/ORDE_6AD3E748-A4E4-48D4-B80C-14CE06FC66FB/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.