Você está na versão correta da documentação?
Verifique na sua [Dashboard](🔗), em _Ver minha conta > Configurações > API Keys_, a versão da API que você está usando. Você deve usar a documentação correspondente. Para saber mais, veja: [Versionamento](🔗).
## Realizando uma transação
Após [obter](🔗) os dados do cartão, gerar o `card_hash
` e enviá-lo para o seu servidor, você deve realizar a transação junto à API Pagar.me, que então efetua o fluxo de cobrança no cartão do cliente.
Abaixo você encontrará o exemplo de uma transação de cartão de crédito de uma companhia com o antifraude habilitado.
Quando submeter informações sobre o comprador?
Os campos `
customer
`, `billing
` e `items
` são obrigatórios no caso de transações de cartão de crédito de companhias com o antifraude habilitado. O campo `shipping
` é opcional e deve ser preenchido no caso da venda de um bem físico. Para mais informações, clique [**aqui**](🔗)
É dessa forma que você consegue criar uma transação de cartão de crédito. Viu como é simples? ;-)
## Parâmetros de uma transação
Descrição dos parâmetros passados no exemplo:
Parâmetro | Padrão | Descrição |
amount | | Valor total a ser cobrado (em centavos). Ex: R$14,99 = `1499 ` |
card_hash | | Representação segura dos dados de cartão de crédito |
installments | 1 | Número de parcelas a serem cobradas no cartão de crédito |
payment_method | credit_card | Meio de pagamento que será utilizado |
postback_url | | URL para receber notificações sobre alterações no status da transação |
soft_descriptor | | Texto (de até 13 caracteres, somente letras e números) que aparecerá na fatura do cartão do cliente ao lado do nome da sua loja |
customer | | Objeto que deve possuir as informações do cliente. Obrigatório com o antifraude habilitado. Para mais informações, clique [**aqui**](🔗) |
billing | | Objeto que deve possuir as informações de cobrança da transação. Obrigatório com o antifraude habilitado. Para mais informações, clique [**aqui**](🔗) |
shipping | | Objeto que deve possuir as informações de envio do que foi comprado. Deve ser preenchido no caso da venda de um bem físico. Para mais informações, clique [**aqui**](🔗) |
items | | Objeto que deve possuir as informações sobre os produtos comprados. Obrigatório com o antifraude habilitado. Para mais informações, clique [**aqui**](🔗) |
metadata | | Objeto JSON para você receber dados de sua plataforma, como: id do pedido, descrição do produto/serviço, etc |
session | | Valor único que identifica a sessão do usuário acessando o site |
Aprenda mais sobre a lista completa de parâmetros em: [Criar transação](🔗)
## Observações
### **[card_hash](🔗)**
Vale ressaltar:
Após gerado, o `
card_hash
` tem validade de 5 minutos. Além disso, ele pode ser utilizado uma única vez.
### **Análises antifraude com transações assíncronas**
Análise manual pelo antifraude
Caso a sua loja esteja habilitada com análise manual pelo antifraude, é imprescindível que toda transação possua o campo [async](🔗) com o valor `
true
`. É necessário também fornecer um [postback_url](🔗), através do qual você receberá atualizações sobre o status da transação.
### **Dados de customer**
Por que passar os dados do cliente (customer, billing, shipping e items) na transação?
São dados essenciais para que o antifraude consiga avaliar a transação e evitar compras ilegítimas.
### **Ao usar os exemplos**
Mudança de API KEY:
Não se esqueça de substituir `
ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0
` pela sua [Chave de API](🔗), que está disponível em sua [Dashboard](🔗).
### **Status de uma transação após ser criada**
Após realizar uma transação de Cartão de crédito, ela fica com o status `paid
`, indicando que o cartão do usuário foi debitado com sucesso. No entanto, caso ela seja recusada pelo banco emissor, fica com o status `refused
`. Você pode aprender mais sobre os possíveis status de uma transação em: [Status das transações](🔗)
## Simulações em teste
### Como simular uma transação recusada pelo banco emissor?
Testando transações recusadas
No ambiente de testes, você pode simular uma transação recusada pelo banco emissor. Basta passar um `
card_cvv
` que começa com o número `6
`.
### Como simular uma transação recusada pelo antifraude ?
Testando transação recusada por antifraude
Você pode fazer este teste passando um `
document_number
` igual à `11111111111
`.
## Capturando uma transação posteriormente
Com a API Pagar.me, você pode separar o processo de autorização (reserva de saldo no cartão) e captura (confirmação para cobrança em fatura). Isso é feito através de um parâmetro chamado `capture
`.
O primeiro passo é passar este parâmetro como `false
` no momento da criação de uma transação, como é mostrado nesse exemplo:
Desta forma, a API Pagar.me retorna uma transação com status `authorized
`, assim como no exemplo a seguir:
### **Chamada para fazer a captura**
Posteriormente, você pode **confirmar** e pedir a captura. É importante lembrar que isso precisa ser feito até [5 dias](🔗) após a autorização. Confirme a captura com a seguinte chamada:
Perceba que, no caminho da request, é necessário especificar o `ID
` da transação que foi criada anteriormente.
## Captura parcial
Também pela API Pagar.me é possível especificar o quanto você gostaria de efetivamente capturar desta transação. Para isso você precisa apenas especificar o parâmetro amount, como no exemplo a seguir:
Quando uma captura parcial é feita, você consegue ver o resultado refletido no campo paid_amount da transaction, como o exemplo a seguir:
Vale ressaltar
A captura parcial só é permitida para transações criadas usando uma API Key, tanto para cartão de crédito ou boleto.
Logo, para transações feitas com o [Checkout Pagar.Me](🔗), o valor de captura deve ser sempre igual ao total do carrinho de compras em sua plataforma.
## Captura com split rules e metadata
Em um [Marketplace](🔗), é no momento da captura que você precisa passar os dados de [Split Rules](🔗) — isto é, as regras de divisão de uma transação.
Além disso, é também na captura que você precisa enviar os parâmetros de [metadata](🔗) com informações de sua plataforma. Veja os exemplos:
## Criando um cartão para one-click buy
Com a API Pagar.me você consegue criar um cartão para possíveis cobranças posteriores em transações e assinaturas. Para fazer isso, você precisa primeiramente de um `card_hash
`, como mostra o exemplo a seguir:
O que todos estes exemplos retornam em comum é um `card_id
`, dado que funciona como um ID para o cartão criado. Com ele, você consegue criar transações e assinaturas da mesma maneira que faz com `card_hash
`. Exemplo de Card ID: **card_cj2ebvhnm011lkd6dj683vn0j
**
### **As vantagens de um Card ID**
Ele pode ser usado indefinidamente, ou enquanto o cartão em si tenha validade com o banco emissor.
Pode ser armazenado em sua base de dados, pois não expira após 5 minutos como acontece com o Card Hash.