Você está na versão correta da documentação?
Verifique na sua [Dashboard](🔗) 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.
Vamos ao exemplo:
É 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 aparece na fatura do cartão do cliente ao lado do nome da sua loja |
customer | | Objeto que deve possuir todas as informações do cliente |
metadata | | Objeto JSON para você receber dados de sua plataforma, como: id do pedido, descrição do produto/serviço etc. |
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.
### **Dados de customer**
Porque passar os dados do cliente (customer) 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 é criar uma transação passando este parâmetro como `false
`, 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 é 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.