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.

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âmetroPadrãoDescriçã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
installments1Número de parcelas a serem cobradas no cartão de crédito
payment_methodcredit_cardMeio 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 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 é 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.