Cartão de crédito
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:
curl -X POST 'https://api.pagar.me/1/transactions' -H 'content-type: application/json' -d '{
"amount": "1000",
"api_key": "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0",
"card_hash": "CARD_HASH_GERADO",
"customer": {
"address": {
"neighborhood": "Cidade Mon\u00e7\u00f5es",
"street": "Rua Dr.Geraldo Campos Moreira",
"street_number": "240",
"zipcode": "04571020"
},
"document_number": "92545278157",
"email": "[email protected]",
"name": "John Appleseed",
"phone": {
"ddd": "11",
"number": "15510101"
}
}
}'
require 'pagarme'
PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
transaction = PagarMe::Transaction.new({
:amount => 1000,
:card_hash => "CARD_HASH_GERADO",
:customer => {
:name => "John Appleseed",
:document_number => "92545278157",
:email => "[email protected]",
:address => {
:street => "Rua Dr. Geraldo Campos Moreira",
:neighborhood => "Cidade Monções",
:zipcode => "04571020",
:street_number => "240"
},
:phone => {
:ddd => "11"
:number => "15510101"
}
}
})
transaction.charge
<?php
require('vendor/autoload.php');
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$transaction = $pagarme->transactions()->create([
"amount" => 1000,
"card_hash" => "CARD_HASH_GERADO",
"customer" => [
"name" => "John Appleseed",
"document_number" => "92545278157",
"email" => "[email protected]",
"address" => [
"street" => "Rua Dr. Geraldo Campos Moreira",
"neighborhood" => "Cidade Monções",
"zipcode" => "04571020",
"street_number" => "240"
],
"phone" => [
"ddd" => "11",
"number" => "15510101"
]
]
]);
?>
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
Transaction transaction = new Transaction();
transaction.Amount = 1000;
transaction.CardHash = "CARD_HASH_GERADO";
transaction.Customer = new Customer() {
Name = "John Appleseed",
DocumentNumber = "92545278157",
Email = "[email protected]",
Address = new Address() {
Street = "Rua Dr. Geraldo Campos Moreira",
Neighborhood = "Cidade Monções",
Zipcode = "04571020",
StreetNumber = "240"
},
Phone = new Phone() {
Ddd = "11",
Number = "15510101"
}
};
transaction.Save();
import java.util.HashMap;
import java.util.Map;
import me.pagar.model.Address;
import me.pagar.model.Customer;
import me.pagar.model.PagarMe;
import me.pagar.model.PagarMeException;
import me.pagar.model.Phone;
import me.pagar.model.Transaction;
import me.pagar.model.Transaction.PaymentMethod;
PagarMe.init("SUA_API_KEY");
Phone phone = new Phone();
phone.setDdd("11");
phone.setDdi("55");
phone.setNumber("99999999");
String street = "Avenida Brigadeiro Faria Lima";
String streetNumber = "1811";
String neighborhood = "Jardim Paulistano";
String zipcode = "01451001";
Address address = new Address(street, streetNumber, neighborhood, zipcode);
String name = "Aardvark Silva";
String email = "[email protected]";
String documentNumber = "18152564000105";
Customer customer = new Customer(name, email);
customer.setAddress(address);
customer.setPhone(phone);
customer.setDocumentNumber(documentNumber);
Map<String, Object> metadata = new HashMap<String, Object>();
metadata.put("IdProduto", 13933139);
Transaction tx = new Transaction();
tx.setCustomer(customer);
tx.setAmount(100);
tx.setCardHash("CARD_HASH_GERADO");
tx.setPaymentMethod(PaymentMethod.CREDIT_CARD);
tx.setMetadata(metadata);
tx.setPostbackUrl("http://requestb.in/pkt7pgpk");
tx.save();
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.transactions.create({
amount: 100,
payment_method: 'credit_card',
card_hash: 'CARD_HASH_GERADO',
postback_url: 'http://requestb.in/pkt7pgpk',
customer: {
name: 'Aardvark Silva',
email: '[email protected]',
document_number: '18152564000105',
address: {
street: 'Avenida Brigadeiro Faria Lima',
street_number: '1811',
neighborhood: 'Jardim Paulistano',
zipcode: '01451001'
},
phone: {
ddi: '55',
ddd: '11',
number: '99999999'
}
},
metadata: {
idProduto: '13933139'
}
}))
É 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
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úmero6
.
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:
curl -X POST 'https://api.pagar.me/1/transactions' -H 'content-type: application/json' -d '{
"amount": "1000",
"api_key": "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0",
"capture": "false",
"card_hash": "CARD_HASH_GERADO",
"customer": {
"address": {
"neighborhood": "Cidade Mon\u00e7\u00f5es",
"street": "Rua Dr.Geraldo Campos Moreira",
"street_number": "240",
"zipcode": "04571020"
},
"document_number": "92545278157",
"email": "[email protected]",
"name": "John Appleseed",
"phone": {
"ddd": "11",
"number": "15510101"
}
}
}'
require 'pagarme'
PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
transaction = PagarMe::Transaction.new({
:amount => 1000,
:card_hash => "CARD_HASH_GERADO",
:capture => false,
:customer => {
:name => "John Appleseed",
:document_number => "92545278157",
:email => "[email protected]",
:address => {
:street => "Rua Dr. Geraldo Campos Moreira",
:neighborhood => "Cidade Monções",
:zipcode => "04571020",
:street_number => "240"
},
:phone => {
:ddd => "11"
:number => "15510101"
}
}
})
transaction.charge
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$transaction = $pagarme->transactions()->create([
"amount" => 1000,
"card_hash" => "CARD_HASH_GERADO",
"capture" => false,
"customer" => [
"name" => "John Appleseed",
"document_number" => "92545278157",
"email" => "[email protected]",
"address" => [
"street" => "Rua Dr. Geraldo Campos Moreira",
"neighborhood" => "Cidade Monções",
"zipcode" => "04571020",
"street_number" => "240"
],
"phone" => [
"ddd" => "11",
"number" => "15510101"
]
]
]);
?>
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
Transaction transaction = new Transaction();
transaction.Amount = 1000;
transaction.CardHash = "CARD_HASH_GERADO";
transaction.ShouldCapture = false,
transaction.Customer = new Customer() {
Name = "John Appleseed",
DocumentNumber = "92545278157",
Email = "[email protected]",
Address = new Address() {
Street = "Rua Dr. Geraldo Campos Moreira",
Neighborhood = "Cidade Monções",
Zipcode = "04571020",
StreetNumber = "240"
},
Phone = new Phone() {
Ddd = "11",
Number = "15510101"
}
};
transaction.Save();
import me.pagar.model.Address;
import me.pagar.model.Customer;
import me.pagar.model.PagarMe;
import me.pagar.model.PagarMeException;
import me.pagar.model.Phone;
import me.pagar.model.Transaction;
import me.pagar.model.Transaction.PaymentMethod;
PagarMe.init("SUA_API_KEY");
Phone phone = new Phone();
phone.setDdd("11");
phone.setDdi("55");
phone.setNumber("99999999");
String street = "Avenida Brigadeiro Faria Lima";
String streetNumber = "1811";
String neighborhood = "Jardim Paulistano";
String zipcode = "01451001";
Address address = new Address(street, streetNumber, neighborhood, zipcode);
String name = "Aardvark Silva";
String email = "[email protected]";
String documentNumber = "18152564000105";
Customer customer = new Customer(name, email);
customer.setAddress(address);
customer.setPhone(phone);
customer.setDocumentNumber(documentNumber);
Transaction tx = new Transaction();
tx.setCustomer(customer);
tx.setAmount(100);
tx.setCardId("card_ci6l9fx8f0042rt16rtb477gj");
tx.setPaymentMethod(PaymentMethod.CREDIT_CARD);
tx.setCapture(false);
tx.setPostbackUrl("http://requestb.in/pkt7pgpk");
tx.save();
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.transactions.create({
capture: false,
amount: 100,
card_number: '4111111111111111',
card_holder_name: 'abc',
card_expiration_date: '1225',
card_cvv: '123',
}))
Desta forma, a API Pagar.me retorna uma transação com status authorized
, assim como no exemplo a seguir:
{
"object": "transaction",
"status": "authorized",
"refuse_reason": null,
"status_reason": "antifraud",
"acquirer_response_code": "0000",
"acquirer_name": "pagarme",
"acquirer_id": "56f9d019decf72cc70055d58",
"authorization_code": "187267",
"soft_descriptor": null,
"tid": 1399451,
"nsu": 1399451,
"date_created": "2017-03-29T05:14:15.423Z",
"date_updated": "2017-03-29T05:14:15.866Z",
"amount": 100,
"authorized_amount": 100,
"paid_amount": 0,
"refunded_amount": 0,
"installments": 1,
"id": 1399451,
"cost": 0,
"card_holder_name": "John",
"card_last_digits": "1112",
"card_first_digits": "401200",
"card_brand": "visa",
"card_pin_mode": null,
"postback_url": "https://api.aardvark.com/payment/pagarme",
"payment_method": "credit_card",
"capture_method": "ecommerce",
"antifraud_score": null,
"boleto_url": null,
"boleto_barcode": null,
"boleto_expiration_date": null,
"referer": "api_key",
"ip": "187.11.121.49",
"subscription_id": null,
"phone": {
"object": "phone",
"ddi": "55",
"ddd": "11",
"number": "99999999",
"id": 100924
},
"address": {
"object": "address",
"street": "Rua Dr. Geraldo Campos Moreira",
"complementary": null,
"street_number": "240",
"neighborhood": "Cidade Monções",
"city": "São Paulo",
"state": "SP",
"zipcode": "04571020",
"country": "Brasil",
"id": 103703
},
"customer": {
"object": "customer",
"document_number": "11111111111",
"document_type": "cpf",
"name": "Aardvark Silva",
"email": "[email protected]",
"born_at": null,
"gender": null,
"date_created": "2016-04-07T14:14:22.830Z",
"id": 53170
},
"card": {
"object": "card",
"id": "card_cj0u8kmpu00t91t6erxu10vmv",
"date_created": "2017-03-29T00:31:42.595Z",
"date_updated": "2017-03-29T00:31:43.029Z",
"brand": "visa",
"holder_name": "John",
"first_digits": "401200",
"last_digits": "1112",
"country": "US",
"fingerprint": "wLMQ4TdBsAj0",
"valid": true,
"expiration_date": "1120"
},
"split_rules": null,
"metadata": {},
"antifraud_metadata": {}
}
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:
curl -X POST https://api.pagar.me/1/transactions/:id/capture -H 'content-type: application/json' -d '{
"api_key": "SUA API KEY"
}'
require 'pagarme'
PagarMe.api_key = 'SUA API KEY'
transaction = PagarMe::Transaction.find 123
transaction.capture()
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$capturedTransaction = $pagarme->transactions()->capture([
'id' => 'ID_OU_TOKEN_DA_TRANSAÇÃO',
'amount' => VALOR_TOTAL_COM_CENTAVOS
]);
PagarMeService.DefaultApiKey = "SUA API KEY";
var transaction = PagarMeService.GetDefaultService().Transactions.Find ("Transaction ID");
transaction.Capture();
import java.util.HashMap;
import java.util.Map;
import me.pagar.model.Address;
import me.pagar.model.Customer;
import me.pagar.model.PagarMe;
import me.pagar.model.PagarMeException;
import me.pagar.model.Phone;
import me.pagar.model.Transaction;
import me.pagar.model.Transaction.PaymentMethod;
PagarMe.init("SUA_API_KEY");
Transaction transaction = new Transaction().find(194351);
transaction.capture(1000);
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.transactions.capture({ id: 1399451 }))
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:
curl -X POST https://api.pagar.me/1/transactions/:id/capture -H 'content-type: application/json' -d '{
"amount": "6234",
"api_key": "SUA API KEY"
}'
require 'pagarme'
PagarMe.api_key = 'SUA API KEY'
transaction = PagarMe::Transaction.find 123
transaction.capture(amount: 6234)
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$capturedTransaction = $pagarme->transactions()->capture([
'id' => 'ID_OU_TOKEN_DA_TRANSAÇÃO',
'amount' => VALOR_PARCIAL_EM_CENTAVOS
]);
PagarMeService.DefaultApiKey = "SUA API KEY";
var transaction = PagarMeService.GetDefaultService().Transactions.Find ("Transaction ID");
transaction.Capture(6234);
import java.util.HashMap;
import java.util.Map;
import me.pagar.model.Address;
import me.pagar.model.Customer;
import me.pagar.model.PagarMe;
import me.pagar.model.PagarMeException;
import me.pagar.model.Phone;
import me.pagar.model.Transaction;
import me.pagar.model.Transaction.PaymentMethod;
PagarMe.init("SUA_API_KEY");
Transaction transaction = new Transaction().find(194351);
transaction.capture(6234);
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.transactions.capture({
id: 1399451,
amount: 6234
}))
Quando uma captura parcial é feita, você consegue ver o resultado refletido no campo paid_amount da transaction, como o exemplo a seguir:
{
"object": "transaction",
"status": "paid",
"refuse_reason": null,
"status_reason": "acquirer",
"acquirer_response_code": "0000",
"acquirer_name": "pagarme",
"acquirer_id": "56f9d019decf72cc70055d58",
"authorization_code": "596257",
"soft_descriptor": null,
"tid": 1399452,
"nsu": 1399452,
"date_created": "2017-03-29T05:24:38.633Z",
"date_updated": "2017-03-29T05:25:07.564Z",
"amount": 10000,
"authorized_amount": 10000,
"paid_amount": 6234,
"refunded_amount": 0,
"installments": 1,
"id": 1399452,
"cost": 50,
"card_holder_name": "John",
"card_last_digits": "1112",
"card_first_digits": "401200",
"card_brand": "visa",
"card_pin_mode": null,
"postback_url": "https://api.aardvark.com/payment/pagarme",
"payment_method": "credit_card",
"capture_method": "ecommerce",
"antifraud_score": null,
"boleto_url": null,
"boleto_barcode": null,
"boleto_expiration_date": null,
"referer": "api_key",
"ip": "182.46.185.23",
"subscription_id": null,
"phone": {
"object": "phone",
"ddi": "55",
"ddd": "11",
"number": "99999999",
"id": 100924
},
"address": {
"object": "address",
"street": "Rua Dr. Geraldo Campos Moreira",
"complementary": null,
"street_number": "240",
"neighborhood": "Cidade Monções",
"city": "São Paulo",
"state": "SP",
"zipcode": "04571020",
"country": "Brasil",
"id": 103703
},
"customer": {
"object": "customer",
"document_number": "11111111111",
"document_type": "cpf",
"name": "Aardvark Silva",
"email": "[email protected]",
"born_at": null,
"gender": null,
"date_created": "2016-04-07T14:14:22.830Z",
"id": 53170
},
"card": {
"object": "card",
"id": "card_cj0u8kmpu00t91t6erxu10vmv",
"date_created": "2017-03-29T00:31:42.595Z",
"date_updated": "2017-03-29T00:31:43.029Z",
"brand": "visa",
"holder_name": "John",
"first_digits": "401200",
"last_digits": "1112",
"country": "US",
"fingerprint": "wLMQ4TdBsAj0",
"valid": true,
"expiration_date": "1120"
},
"split_rules": null,
"antifraud_metadata": {},
"metadata": {}
}
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:
curl -X POST -H "Content-Type: application/json" -d '{
"api_key":"SUA API KEY",
"split_rules": [
{
"recipient_id": "re_ciyol0qac00xnlg6dkaftvn9j",
"percentage": 55,
"liable": true,
"charge_processing_fee": true
},{
"recipient_id": "re_ciyoloogb0100l46dy6f1iuww",
"percentage": 45,
"liable": false,
"charge_processing_fee": false
}
],
"metadata": {
"id_pedido": "13933139"
}
}' "https://api.pagar.me/1/transactions/:id/capture" -H 'content-type: application/json' -d '{}'
require 'pagarme'
PagarMe.api_key = 'SUA API KEY'
transaction = PagarMe::Transaction.find 123
transaction.capture({
split_rules: [
{
recipient_id: 're_ciyoloogb0100l46dy6f1iuww',
liable: true,
charge_processing_fee: true,
percentage: 55
},
{
recipient_id: 're_ciyol0qac00xnlg6dkaftvn9j',
liable: false,
charge_processing_fee: false,
percentage: 45
}
],
metadata: {
id_pedido: '13933139'
}
})
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$capturedTransaction = $pagarme->transactions()->capture([
"id" => 'ID_OU_TOKEN_DA_TRANSAÇÃO',
"split_rules" => [
[
"recipient_id" => "re_ciyoloogb0100l46dy6f1iuww",
"liable" => "true",
"charge_processing_fee" => "true",
"percentage" => "55",
],
[
"recipient_id" => "re_ciyol0qac00xnlg6dkaftvn9j",
"liable" => "false",
"charge_processing_fee" => "false",
"percentage" => "45",
]
],
"metadata" => [
"id_pedido" => "13933139"
]
]);
Feature ainda não disponível para esse SDK
Feature ainda não disponível para esse SDK
import pagarme from 'pagarme'
pagarme.client.connect({ api_key: 'SUA_API_KEY' })
.then(client => client.transactions.capture({
id: 1399451,
split_rules: [
{
'recipient_id': 're_ciyoloogb0100l46dy6f1iuww',
'liable': 'true',
'charge_processing_fee': 'true',
'percentage': '55',
},
{
'recipient_id': 're_ciyol0qac00xnlg6dkaftvn9j',
'liable': 'false',
'charge_processing_fee': 'false',
'percentage': '45',
}
],
metadata: {
'id_pedido': '13933139'
}
}))
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:
curl -X POST 'https://api.pagar.me/1/cards' -H 'content-type: application/json' -d '{
"api_key": "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0",
"card_hash": "CARD_HASH"
}'
require 'pagarme'
PagarMe.api_key = 'SUA API KEY'
card = PagarMe::Card.create(card_hash: 'CARD_HASH_GERADO')
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');
$card = $pagarme->cards()->create([
'holder_name' => 'Yoda',
'number' => '4242424242424242',
'expiration_date' => '1225',
'cvv' => '123'
]);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
PagarMeService.DefaultEncryptionKey = "ek_test_Ec8KhxISQ1tug1b8bCcxC2nXfxqRnk";
Card card = new Card();
card.Number = "4242424242424242";
card.HolderName = "API CUSTOMER";
card.ExpirationDate = "0117";
card.Cvv = "314";
//O próprio SDK vai gerar o card_hash, antes de enviar a API
card.Save();
import java.util.Collection;
import me.pagar.model.Card;
import me.pagar.model.PagarMe;
import me.pagar.model.PagarMeException;
PagarMe.init("SUA_API_KEY");
Card card = new Card();
card.setNumber("4242424242424242");
card.setHolderName("API CUSTOMER");
card.setExpiresAt("1219");
card.setCvv(314);
card.save();
const pagarme = require('pagarme')
pagarme.client.connect({ api_key: 'SUA API KEY' })
.then(client => client.cards.create({
card_number: '4242424242424242',
card_holder_name: 'Aardvark Silva',
card_expiration_date: '1225',
card_cvv: '123',
}))
.then(card => console.log(card.id))
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.
Updated over 5 years ago
Legal, você aprendeu sobre todos os aspectos que envolvem transações com cartão de crédito, que tal ver agora como criar uma transação por boleto?