NAV
shell ruby php csharp

Introdução

Bem-vindo ao guia de referências da API do Pagar.me! É através desta API que você irá integrar seu sistema ao nosso, e, além disso, você também pode recriar as funcionalidades existentes na nossa dashboard, que são feitas consumindo a API que será aqui descrita.

A primeira coisa que você deve saber é o endpoint que usamos:

https://api.pagar.me/1/

Transações

Através da rota /transactions e suas derivadas, você pode criar transações, estornar, capturar, dentre outras atividades relacionadas a estas.

Objeto transaction

Objeto transaction

{
  "object": "transaction",
  "status": "paid",
  "refuse_reason": null,
  "status_reason": "acquirer",
  "acquirer_response_code": "0000",
  "acquirer_name": "pagarme",
  "acquirer_id": "56f9d019decf72cc70055d58",
  "authorization_code": "786920",
  "soft_descriptor": null,
  "tid": 937301,
  "nsu": 937301,
  "date_created": "2016-12-12T16:02:43.529Z",
  "date_updated": "2016-12-12T16:02:43.948Z",
  "amount": 100,
  "authorized_amount": 100,
  "paid_amount": 100,
  "refunded_amount": 0,
  "installments": 1,
  "id": 937301,
  "cost": 50,
  "card_holder_name": "teste",
  "card_last_digits": "4242",
  "card_first_digits": "424242",
  "card_brand": "visa",
  "postback_url": "http://requestb.in/pkt7pgpk'",
  "payment_method": "credit_card",
  "capture_method": "ecommerce",
  "antifraud_score": null,
  "boleto_url": null,
  "boleto_barcode": null,
  "boleto_expiration_date": null,
  "referer": "api_key",
  "ip": "189.8.94.42",
  "subscription_id": null,
  "phone": {
    "object": "phone",
    "ddi": "55",
    "ddd": "11",
    "number": "99999999",
    "id": 58579
  },
  "address": {
    "object": "address",
    "street": "Avenida Brigadeiro Faria Lima",
    "complementary": "",
    "street_number": "1811",
    "neighborhood": "Jardim Paulistano",
    "city": "São Paulo",
    "state": "SP",
    "zipcode": "01451001",
    "country": "Brasil",
    "id": 43634
  },
  "customer": {
    "object": "customer",
    "document_number": "18152564000105",
    "document_type": "cnpj",
    "name": "Aardvark Silva",
    "email": "aardvark.silva@pagar.me",
    "born_at": "1970-01-01T03:38:41.988Z",
    "gender": "M",
    "date_created": "2016-06-29T16:18:23.544Z",
    "id": 76758
  },
  "card": {
    "object": "card",
    "id": "card_ciwm2afsy01fmor6drdxpqx0d",
    "date_created": "2016-12-12T12:34:50.627Z",
    "date_updated": "2016-12-12T12:44:23.759Z",
    "brand": "visa",
    "holder_name": "Teste",
    "first_digits": "424242",
    "last_digits": "4242",
    "country": "US",
    "fingerprint": "7dW77kXg7opw",
    "valid": true,
    "expiration_date": "1224"
  },
  "split_rules": null,
  "metadata": {},
  "antifraud_metadata": {}
}

Ao criar ou atualizar uma transação, este será o objeto que você irá receber como resposta em cada etapa do processo de efetivação da transação.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: transaction
status
String
Para cada atualização no processamento da transação, esta propriedade será alterada, e o objeto transaction retornado como resposta através da sua URL de postback ou após o término do processamento da ação atual.
Valores possíveis: processing, authorized, paid, refunded, waiting_payment, pending_refund, refused
status_reason
String
Motivo/agente responsável pela validação ou anulação da transação.
Valores possíveis: acquirer, antifraud, internal_error, no_acquirer, acquirer_timeout
acquirer_name
String
Adquirente responsável pelo processamento da transação.
Valores possíveis: development (em ambiente de testes), pagarme (adquirente Pagar.me), stone, cielo, rede, mundipagg
acquirer_response_code
String
Mensagem de resposta do adquirente referente ao status da transação.
authorization_code
String
Código de autorização retornado pela bandeira.
soft_descriptor
String
Texto que irá aparecer na fatura do cliente depois do nome da loja.
OBS: Limite de 13 caracteres.
tid
String
Código que identifica a transação no adquirente.
nsu
String
Código que identifica a transação no adquirente.
date_created
String
Data de criação da transação no formato ISODate
date_updated
String
Data de atualização da transação no formato ISODate
amount
Number
Valor, em centavos, da transação
paid_amount
Number
Valor, em centavos, capturado da transação
refunded_amount
Number
Valor, em centavos, estornado da transação
authorized_amount
Number
Valor, em centavos, autorizado da transação
installments
Number
Número de parcelas/prestações a serem cobradas
id
Number
Número identificador da transação
cost
Number
Custo da transação para o lojista
postback_url
String
URL (endpoint) do sistema integrado a Pagar.me que receberá as respostas a cada atualização do processamento da transação
payment_method
String
Método de pagamento possíveis: credit_card e boleto
boleto_url
String
URL do boleto para impressão
boleto_barcode
String
Código de barras do boleto gerado na transação
boleto_expiration_date
String
Data de expiração do boleto (em ISODate)
referer
String
Mostra se a transação foi criada utilizando a API Key ou Encryption Key.
ip
String
IP de origem que criou a transção, podendo ser ou do seu cliente (quando criado via checkout ou utilizando card_hash) ou do servidor.
subscription_id
Number
Caso essa transação tenha sido originada na cobrança de uma assinatura, o id desta será o valor dessa propriedade
phone
Object
Objeto com dados do telefone do cliente
address
Object
Objeto com dados do endereço do cliente
customer
Object
Objeto com dados do cliente
card
Object
Objeto com dados do cartão do cliente
split_rules
Object
Objeto com dados das Split Rules geradas
metadata
Object
Objeto com dados adicionais do cliente/produto/serviço vendido

Criando uma transação

POST https://api.pagar.me/1/transactions

curl -X POST https://api.pagar.me/1/transactions \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'amount=100' \
-d 'card_id=card_ci6l9fx8f0042rt16rtb477gj' \
-d 'postback_url=http://requestb.in/pkt7pgpk' \
-d 'customer[name]=Aardvark Silva' \
-d 'customer[email]=aardvark.silva@pagar.me' \
-d 'customer[document_number]=18152564000105' \
-d 'customer[address][zipcode]=01451001' \
-d 'customer[address][neighborhood]=Jardim Paulistano' \
-d 'customer[address][street]=Avenida Brigadeiro Faria Lima' \
-d 'customer[address][street_number]=1811' \
-d 'customer[phone][number]=99999999' \
-d 'customer[phone][ddi]=55' \
-d 'customer[phone][ddd]=11' \
-d 'metadata[idProduto]=13933139'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

transaction  = PagarMe::Transaction.new({
    amount: 100,
    payment_method: "credit_card",
    card_id: "card_ci6l9fx8f0042rt16rtb477gj",
    postback_url: "http://requestb.in/pkt7pgpk",
    customer: {
        name: "Aardvark Silva",
        email: "aardvark.silva@pagar.me",
        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"
    }
})

transaction.charge
<?php
require("pagarme-php/Pagarme.php");

Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

$transaction = new PagarMe_Transaction(array(
    "amount" => 100,
    "card_id" => "card_ci6l9fx8f0042rt16rtb477gj",
    "payment_method" => "credit_card",
    "postback_url" => "http://requestb.in/pkt7pgpk",
    "customer" => array(
        "name" => "Aardvark Silva", 
        "document_number" => "18152564000105",
        "email" => "aardvark.silva@pagar.me",
        "address" => array(
            "street" => "Avenida Brigadeiro Faria Lima", 
            "street_number" => "1811",
            "neighborhood" => "Jardim Paulistano",
            "zipcode" => "01451001"
        ),
        "phone" =>  array(
            "ddi" => "55"
            "ddd" => "11",
            "number" => "99999999" 
        )
    ),
    "metadata" => array(
        "idProduto" => 13933139
    )
));

    $transaction->charge();
?>   

PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Transaction transaction = new Transaction();

transaction.Amount = 100;
transaction.Card = new Card() { 
    Id = "card_ci6l9fx8f0042rt16rtb477gj"
};
transaction.Customer = new Customer () {
    Name = "Aardvark Silva",
    Email = "aardvark.silva@pagar.me",
    DocumentNumber = "18152564000105",
    Address = new Address () {
        Street = "Avenida Brigadeiro Faria Lima",
        StreetNumber = "123",
        Neighborhood = "Jardim Paulistano",
        Zipcode = "01451001"
    },

    Phone = new Phone () {
        Ddi = "55",
        Ddd = "11",
        Number = "23456789"
    }
};
transaction.PostbackUrl = "http://requestb.in/pkt7pgpk";
transaction.Metadata = new Metadata() {
    IdProduto = 13933139
};

transaction.Save();

Para fazer uma cobrança, você deve usar a rota /transactions para criar sua transação, que pode ser feita por cartão de crédito ou por boleto bancário.

JSON retornado (exemplo):

  {
    "object": "transaction",
    "status": "paid",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": "0000",
    "acquirer_name": "pagarme",
    "acquirer_id": "56f9d019decf72cc70055d58",
    "authorization_code": "786920",
    "soft_descriptor": null,
    "tid": 937301,
    "nsu": 937301,
    "date_created": "2016-12-12T16:02:43.529Z",
    "date_updated": "2016-12-12T16:02:43.948Z",
    "amount": 100,
    "authorized_amount": 100,
    "paid_amount": 100,
    "refunded_amount": 0,
    "installments": 1,
    "id": 937301,
    "cost": 50,
    "card_holder_name": "Teste",
    "card_last_digits": "4242",
    "card_first_digits": "424242",
    "card_brand": "visa",
    "postback_url": "http://requestb.in/pkt7pgpk",
    "payment_method": "credit_card",
    "capture_method": "ecommerce",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": null,
    "referer": "api_key",
    "ip": "189.8.94.42",
    "subscription_id": null,
    "phone": {
      "object": "phone",
      "ddi": "55",
      "ddd": "11",
      "number": "99999999",
      "id": 58579
    },
    "address": {
      "object": "address",
      "street": "Avenida Brigadeiro Faria Lima",
      "complementary": "",
      "street_number": "1811",
      "neighborhood": "Jardim Paulistano",
      "city": "São Paulo",
      "state": "SP",
      "zipcode": "01451001",
      "country": "Brasil",
      "id": 43634
    },
    "customer": {
      "object": "customer",
      "document_number": "18152564000105",
      "document_type": "cnpj",
      "name": "Aardvark Silva",
      "email": "aardvark.silva@pagar.me",
      "born_at": "1970-01-01T03:38:41.988Z",
      "gender": "M",
      "date_created": "2016-06-29T16:18:23.544Z",
      "id": 76758
    },
    "card": {
      "object": "card",
      "id": "card_ci6l9fx8f0042rt16rtb477gj",
      "date_created": "2016-12-12T12:34:50.627Z",
      "date_updated": "2016-12-12T12:44:23.759Z",
      "brand": "visa",
      "holder_name": "Teste",
      "first_digits": "424242",
      "last_digits": "4242",
      "country": "US",
      "fingerprint": "7dW77kXg7opw",
      "valid": true,
      "expiration_date": "1224"
    },
    "split_rules": null,
    "antifraud_metadata": {},
    "metadata": {}
  }
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
amount
obrigatório
Valor a ser cobrado. Deve ser passado em centavos. Ex: R$ 10.00 = 1000
card_hash
obrigatório*
Informações do cartão do cliente criptografadas no navegador.
OBS: Apenas para transações de cartão de crédito você deve passar ou o card_hash ou o card_id
card_id
obrigatório*
Ao realizar uma transação, retornamos o card_id do cartão para que nas próximas transações desse cartão possa ser utilizado esse identificador ao invés do card_hash
payment_method
default: credit_card
Aceita dois tipos de pagamentos/valores: credit_card e boleto
postback_url Endpoint do seu sistema que receberá informações a cada atualização da transação. Caso você defina este parâmetro, o processamento da transação se tornará assíncrono.
async
default: false ou true caso utilize postback_url
Utilize false caso queira utilizar POSTbacks e manter o processamento síncrono de uma transação.
installments
mínimo: 1, máximo: 12
Se o pagamento for boleto, o padrão é 1
boleto_expiration_date
default: data atual + 7 dias
Prazo limite para pagamento do boleto
boleto_instructions
default: null
Campo instruções do boleto. Máximo de 255 caracteres
soft_descriptor Descrição que aparecerá na fatura depois do nome da loja. Máximo de 13 caracteres
capture
default: true
Após a autorização de uma transação, você pode escolher se irá capturar ou adiar a captura do valor. Caso opte por postergar a captura, atribuir o valor false
metadata Você pode passar dados adicionais na criação da transação para posteriormente filtrar estas na nossa dashboard. Ex: metadata[ idProduto ]=13933139
customer[name]
obrigatório* (com antifraude)
Nome completo ou razão social do cliente que está realizando a transação
customer[document_number]
obrigatório* (com antifraude)
CPF ou CNPJ do cliente, sem separadores
customer[email]
obrigatório* (com antifraude)
email do cliente
customer[address][state] Estado do endereço do cliente
OBS: passar esse parâmetro somente quando a verificação de CEP estiver desabilitada em sua dashboard
customer[address][city] Cidade do endereço do cliente
OBS: passar esse parâmetro somente quando a verificação de CEP estiver desabilitada em sua dashboard
customer[address][street]
obrigatório* (com antifraude)
logradouro (rua, avenida, etc) do cliente
customer[address][street_number]
obrigatório* (com antifraude)
Número da residência/estabelecimento do cliente
customer[address][complementary] complemento do endereço do cliente
customer[address][neighborhood]
obrigatório* (com antifraude)
bairro de localização do cliente
customer[address][zipcode]
obrigatório* (com antifraude)
CEP do imóvel do cliente, sem separadores
customer[phone][ddd]
obrigatório* (com antifraude)
DDD do telefone do cliente
customer[phone][number]
obrigatório* (com antifraude)
número de telefone do cliente
customer[sex]
M ou F (letras maiúsculas)
sexo do cliente
customer[born_at]
Formato: MM-DD-AAAA
Data de nascimento do cliente. Ex: 11-02-1985
split_rules Esse parâmetro é um Array que irá conter as regras da divisão do valor transacionado.
OBS: Caso você deseje incluir mais regras, passe os parâmetros abaixo alterando o índice em +1 para cada nova regra/recebedor
split_rules[n][recipient_id] Identificador do recebedor
split_rules[n][charge_processing_fee]
default: true
Indica se o recebedor vinculado a essa regra de divisão será cobrado pelas taxas da transação
split_rules[n][liable]
default: true
Indica se o recebedor vinculado a essa regra de divisão assumirá o risco da transação, ou seja, possíveis estornos (chargeback)
split_rules[n][percentage]
obrigatório*
Define a porcentagem a ser recebida pelo recebedor configurado na regra.
OBS: se for utilizado a propriedade percentage, a propriedade amount não será necessária
split_rules[n][amount]
obrigatório*
Define o valor a ser recebido pelo recebedor configurado na regra.
OBS: se for utilizado a propriedade amount, a propriedade percentage não será necessária

Retornando uma Transação

GET https://api.pagar.me/1/transactions/:id

curl -X GET https://api.pagar.me/1/transactions/194351 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

transaction = PagarMe::Transaction.find_by_id("184270")
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $transaction = PagarMe_Transaction::findById("194351");
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var transaction = PagarMeService.GetDefaultService().Transactions.Find("194351");

Retorna os dados de uma transação realizada.

JSON Retornado (exemplo):

{
    "object": "transaction",
    "status": "paid",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": null,
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": null,
    "nsu": null,
    "date_created": "2015-02-26T15:35:32.000Z",
    "date_updated": "2015-02-26T15:35:47.000Z",
    "amount": 25000,
    "installments": 1,
    "id": 184270,
    "cost": 115,
    "postback_url": null,
    "payment_method": "boleto",
    "antifraud_score": null,
    "boleto_url": "https://pagar.me",
    "boleto_barcode": "1234 5678",
    "boleto_expiration_date": "2015-03-02T03:00:00.000Z",
    "referer": "session_id",
    "ip": "189.8.94.42",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": null,
    "metadata": {}
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id da transação previamente criada

Retornando transações

GET https://api.pagar.me/1/transactions

curl -X GET https://api.pagar.me/1/transactions \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'count=3' \
-d 'page=3'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

transactions = PagarMe::Transaction.all(3, 3)
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $transaction = PagarMe_Transaction::all(3, 3);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var transaction = PagarMeService.GetDefaultService().Transactions.FindAll(new Transaction());

Retorna um Array contendo objetos de transações, ordenadas a partir da transação realizada mais recentemente.

JSON Retornado (exemplo):

[{
    "object": "transaction",
    "status": "refused",
    "refuse_reason": "acquirer",
    "status_reason": "acquirer",
    "acquirer_response_code": "51",
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": 1425933798340,
    "nsu": 1425933798340,
    "date_created": "2015-03-09T20:43:17.000Z",
    "date_updated": "2015-03-09T20:43:18.000Z",
    "amount": 54496,
    "installments": "10",
    "id": 185679,
    "cost": 0,
    "postback_url": null,
    "payment_method": "credit_card",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": null,
    "referer": "encryption_key",
    "ip": "179.185.132.108",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": {
        "object": "card",
        "id": "card_ci1u3yidd00036t16wkzev8s8",
        "date_created": "2014-10-29T03:12:50.000Z",
        "date_updated": "2015-03-07T19:43:08.000Z",
        "brand": "visa",
        "holder_name": "murilo junqueira",
        "first_digits": "411111",
        "last_digits": "1111",
        "fingerprint": "HEiFgPIQJqXG",
        "valid": true
    },
    "metadata": {}
}, {
    "object": "transaction",
    "status": "authorized",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": null,
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": null,
    "nsu": null,
    "date_created": "2015-03-09T20:41:20.000Z",
    "date_updated": "2015-03-09T20:41:20.000Z",
    "amount": 50000,
    "installments": 1,
    "id": 185676,
    "cost": 0,
    "postback_url": null,
    "payment_method": "boleto",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": "2015-03-16T03:00:00.126Z",
    "referer": "encryption_key",
    "ip": "177.157.206.15",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": null,
    "metadata": {}
}, {
    "object": "transaction",
    "status": "authorized",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": "00",
    "acquirer_name": "development",
    "authorization_code": "854653",
    "soft_descriptor": null,
    "tid": 1425933651790,
    "nsu": 1425933651790,
    "date_created": "2015-03-09T20:40:51.000Z",
    "date_updated": "2015-03-09T20:40:51.000Z",
    "amount": 50000,
    "installments": 1,
    "id": 185675,
    "cost": 0,
    "postback_url": null,
    "payment_method": "credit_card",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": null,
    "referer": "encryption_key",
    "ip": "177.157.206.15",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": {
        "object": "card",
        "id": "card_ci6ttnn2y007n5616jhotcfof",
        "date_created": "2015-03-03T21:42:58.000Z",
        "date_updated": "2015-03-09T20:06:15.000Z",
        "brand": "mastercard",
        "holder_name": "John Appleseed",
        "first_digits": "590072",
        "last_digits": "4446",
        "fingerprint": "XHLU9UYzU3+x",
        "valid": true
    },
    "metadata": {}
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de transação
page
default: 1
Útil para implementação de uma paginação de resultados

Gerando uma nova chave para encriptação do card_hash

GET https://api.pagar.me/1/transactions/card_hash_key

curl -X GET https://api.pagar.me/1/transactions/card_hash_key \
-d 'encryption_key=ek_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

key = PagarMe::Transaction.generate_card_hash()
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $t = new PagarMe_Transaction(array(
      "amount" => 3100,
      "card_id" => "card_ci6l9fx8f0042rt16rtb477gj",
      "postback_url" => "http://requestb.in/1ahq78t1",
      "metadata" => array(
        "idProduto" => 13933139
       )
    ));

    $key = $t->generateCardHash();

Caso você queira/precise criar o card_hash manualmente, essa rota deverá ser utilizada para obtenção de uma chave pública de encriptação dos dados do cartão de seu cliente.

Saiba mais sobre como criar um card_hash aqui.

JSON Retornado (Exemplo)

{
    "date_created": "2015-02-27T15:44:26.000Z",
    "id": 111111,
    "ip": "000.0.00.00",
    "public_key": "-----BEGIN PUBLIC KEY-----\ -----END PUBLIC KEY-----\ "
}
Parâmetro Descrição
encryption_key
obrigatório
Chave de encriptação (disponível no seu dashboard)

Retornando as regras de divisão de uma transação

GET https://api.pagar.me/1/transactions/:transaction_id/split_rules

curl -X GET https://api.pagar.me/1/transactions/189164/split_rules \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna os dados das regras de divisão do valor transacionado.

JSON Retornado (exemplo):

[{
    "object": "split_rule",
    "id": "sr_ci7ntawl1001s2m164zrbp7tz",
    "recipient_id": "re_ci7nhf1ay0007n016wd5t22nl",
    "charge_processing_fee": true,
    "liable": true,
    "percentage": 30,
    "amount": null,
    "date_created": "2015-03-24T21:26:09.000Z",
    "date_updated": "2015-03-24T21:26:09.000Z"
}, {
    "object": "split_rule",
    "id": "sr_ci7ntawl1001t2m1606u3e0uw",
    "recipient_id": "re_ci7nheu0m0006n016o5sglg9t",
    "charge_processing_fee": true,
    "liable": false,
    "percentage": 70,
    "amount": null,
    "date_created": "2015-03-24T21:26:09.000Z",
    "date_updated": "2015-03-24T21:26:09.000Z"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação previamente criada

Retornando uma regra de divisão específica

GET https://api.pagar.me/1/transactions/:transaction_id/split_rules/:id

curl -X GET https://api.pagar.me/1/transactions/189164/split_rules/sr_ci7ntawl1001s2m164zrbp7tz \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna os dados de uma regra de divisão de uma determinada transaçào.

JSON Retornado (exemplo):

{
    "object": "split_rule",
    "id": "sr_ci7ntawl1001s2m164zrbp7tz",
    "recipient_id": "re_ci7nhf1ay0007n016wd5t22nl",
    "charge_processing_fee": true,
    "liable": true,
    "percentage": 30,
    "amount": null,
    "date_created": "2015-03-24T21:26:09.000Z",
    "date_updated": "2015-03-24T21:26:09.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
Identificador da transação previamente criada
:id
obrigatório
Identificador da regra de divisão

Retornando pagamentos da transação

GET https://api.pagar.me/1/transactions/:transaction_id/payables

curl -X GET https://api.pagar.me/1/transactions/192669/payables \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um array com objetos payable informando os dados dos pagamentos referentes a uma transação.

JSON Retornado (exemplo):

[{
    "object": "payable",
    "id": 1485,
    "status": "paid",
    "amount": 39000,
    "fee": 115,
    "installment": null,
    "transaction_id": 192669,
    "split_rule_id": "sr_ci87hce8o00083016bkniqems",
    "payment_date": "2015-04-07T03:00:00.000Z",
    "type": "credit",
    "payment_method": "boleto",
    "date_created": "2015-04-07T15:47:48.000Z"
}, {
    "object": "payable",
    "id": 1486,
    "status": "paid",
    "amount": 91000,
    "fee": 0,
    "installment": null,
    "transaction_id": 192669,
    "split_rule_id": "sr_ci87hce8o00093016fin8p6ll",
    "payment_date": "2015-04-07T03:00:00.000Z",
    "type": "credit",
    "payment_method": "boleto",
    "date_created": "2015-04-07T15:47:48.000Z"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
Identificador da transação previamente criada

Retornando um pagamento da transação

GET https://api.pagar.me/1/transactions/:transaction_id/payables/:id

curl -X GET https://api.pagar.me/1/transactions/192669/payables/1485 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um objeto payable informando os dados de um pagamento referente a uma determinada transação.

JSON Retornado (exemplo):

{
    "object": "payable",
    "id": 1485,
    "status": "paid",
    "amount": 39000,
    "fee": 115,
    "installment": null,
    "transaction_id": 192669,
    "split_rule_id": "sr_ci87hce8o00083016bkniqems",
    "payment_date": "2015-04-07T03:00:00.000Z",
    "type": "credit",
    "payment_method": "boleto",
    "date_created": "2015-04-07T15:47:48.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
Identificador da transação previamente criada
:id
obrigatório
Identificador do objeto payable

Retornando uma análise antifraude

GET https://api.pagar.me/1/transactions/:transaction_id/antifraud_analyses/:id

curl -X GET https://api.pagar.me/1/transactions/314578/antifraud_analyses/913456 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna uma análise antifraude específica realizada em uma transação.

JSON Retornado (Exemplo)

{
    "object": "antifraud_analysis",
    "name": "name",
    "score": "score",
    "cost": "cost",
    "status": "status",
    "date_created": "date_created",
    "date_updated": "date_updated",
    "id": "id"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação
:id
obrigatório
id da análise previamente feita

Retornando todas as análises antifraude

GET https://api.pagar.me/1/transactions/:transaction_id/antifraud_analyses

curl -X GET https://api.pagar.me/1/transactions/314578/antifraud_analyses \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna todas as análises antifraude realizadas em uma transação.

JSON Retornado (Exemplo)

[{
    "object": "antifraud_analysis",
    "name": "name",
    "score": "score",
    "cost": "cost",
    "status": "status",
    "date_created": "date_created",
    "date_updated": "date_updated",
    "id": "id"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação

Retornando um POSTback

GET https://api.pagar.me/1/transactions/:transaction_id/postbacks/:id

curl -X GET https://api.pagar.me/1/transactions/314578/postbacks/po_ciat6ssga0022k06ng8vxg \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um POSTback específico relacionado a transação.

JSON Retornado (Exemplo)

{
        "date_created": "2015-06-12T05:41:57.000Z", 
        "date_updated": "2015-06-12T05:42:07.000Z", 
        "deliveries": [
            {
                "date_created": "2015-06-12T05:42:06.000Z", 
                "date_updated": "2015-06-12T05:42:07.000Z", 
                "id": "pd_ciat6szv2002yk06nyhacqmr4", 
                "object": "postback_delivery", 
                "response_body": "", 
                "response_headers": "{\"cache-control\":\"no-cache\",\"pragma\":\"no-cache\",\"content-length\":\"0\",\"expires\":\"-1\",\"server\":\"Microsoft-IIS/8.0\",\"x-aspnet-version\":\"4.0.30319\",\"x-powered-by\":\"ASP.NET\",\"set-cookie\":[\"ARRAffinity=663d85223525d21e72aebd941082ca482841f5719c27124196939b3de6204504;Path=/;Domain=requestb.in\"],\"date\":\"Fri, 12 Jun 2015 05:42:06 GMT\",\"connection\":\"close\"}", 
                "response_time": 516, 
                "status": "success", 
                "status_code": "200", 
                "status_reason": "http_status_code"
            }
        ], 
        "headers": "{\"Content-Type\":\"application/x-www-form-urlencoded\",\"X-PagarMe-Event\":\"transaction_status_changed\",\"X-Hub-Signature\":\"sha1=d825b60eee7f3034484be584ccca20d3f7bb8c5b\",\"User-Agent\":\"PagarMe-Hookshot/1.0\"}", 
        "id": "po_ciat6ssga0022k06ng8vxg", 
        "model": "transaction", 
        "model_id": "674579", 
        "next_retry": null, 
        "object": "postback", 
        "payload": "id=674579&fingerprint=05112b2b5d756a1501d994027c95d3202c7b&event=transaction_status_changed&old_status=authorized&desired_status=paid&current_status=refused&object=transaction", 
        "request_url": "http://requestb.in/1azqnq81?inspect", 
        "retries": 0, 
        "signature": "d825b60eee7f3034484be584d3f7bb8c5b", 
        "status": "success"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação
:id
obrigatório
id do POSTback

Retornando todos os POSTbacks

GET https://api.pagar.me/1/transactions/:transaction_id/postbacks

curl -X GET https://api.pagar.me/1/transactions/314578/postbacks \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna todos os POSTbacks enviados relacionados a transação.

JSON Retornado (Exemplo)

[
    {
        "date_created": "2015-06-12T05:41:57.000Z", 
        "date_updated": "2015-06-12T05:42:07.000Z", 
        "deliveries": [
            {
                "date_created": "2015-06-12T05:42:06.000Z", 
                "date_updated": "2015-06-12T05:42:07.000Z", 
                "id": "pd_ciat6szv2002yk06nyhacqmr4", 
                "object": "postback_delivery", 
                "response_body": "", 
                "response_headers": "{\"cache-control\":\"no-cache\",\"pragma\":\"no-cache\",\"content-length\":\"0\",\"expires\":\"-1\",\"server\":\"Microsoft-IIS/8.0\",\"x-aspnet-version\":\"4.0.30319\",\"x-powered-by\":\"ASP.NET\",\"set-cookie\":[\"ARRAffinity=663d85223525d21e72aebd941082ca482841f5719c27124196939b3de6204504;Path=/;Domain=requestb.in\"],\"date\":\"Fri, 12 Jun 2015 05:42:06 GMT\",\"connection\":\"close\"}", 
                "response_time": 516, 
                "status": "success", 
                "status_code": "200", 
                "status_reason": "http_status_code"
            }
        ], 
        "headers": "{\"Content-Type\":\"application/x-www-form-urlencoded\",\"X-PagarMe-Event\":\"transaction_status_changed\",\"X-Hub-Signature\":\"sha1=d825b60eee7f3034484be584ccca20d3f7bb8c5b\",\"User-Agent\":\"PagarMe-Hookshot/1.0\"}", 
        "id": "po_ciat6ssga0022k06ng8vxg", 
        "model": "transaction", 
        "model_id": "674579", 
        "next_retry": null, 
        "object": "postback", 
        "payload": "id=674579&fingerprint=05112b2b5d756a1501d994027c95d3202c7b&event=transaction_status_changed&old_status=authorized&desired_status=paid&current_status=refused&object=transaction", 
        "request_url": "http://requestb.in/1azqnq81?inspect", 
        "retries": 0, 
        "signature": "d825b60eee7f3034484be584d3f7bb8c5b", 
        "status": "success"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação

Reenviando um POSTback

POST https://api.pagar.me/1/transactions/:transaction_id/postbacks/:id/redeliver

curl -X POST https://api.pagar.me/1/transactions/314578/postbacks/po_ciat6ssga0022k06ng8vxg/redeliver \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Com essa rota você pode reenviar qualquer POSTback que já foi enviado de uma transação. Lembrando que caso o envio de um POSTback falhe ou seu servidor não o receba, nós o retentamos diversas vezes (com um total de 31 vezes).

JSON Retornado (Exemplo)

{
        "date_created": "2015-06-12T05:41:57.000Z", 
        "date_updated": "2015-06-12T05:42:07.000Z", 
        "deliveries": [
            {
                "date_created": "2015-06-12T05:42:06.000Z", 
                "date_updated": "2015-06-12T05:42:07.000Z", 
                "id": "pd_ciat6szv2002yk06nyhacqmr4", 
                "object": "postback_delivery", 
                "response_body": "", 
                "response_headers": "{\"cache-control\":\"no-cache\",\"pragma\":\"no-cache\",\"content-length\":\"0\",\"expires\":\"-1\",\"server\":\"Microsoft-IIS/8.0\",\"x-aspnet-version\":\"4.0.30319\",\"x-powered-by\":\"ASP.NET\",\"set-cookie\":[\"ARRAffinity=663d85223525d21e72aebd941082ca482841f5719c27124196939b3de6204504;Path=/;Domain=requestb.in\"],\"date\":\"Fri, 12 Jun 2015 05:42:06 GMT\",\"connection\":\"close\"}", 
                "response_time": 516, 
                "status": "success", 
                "status_code": "200", 
                "status_reason": "http_status_code"
            },
            {
                "date_created": "2015-06-18T05:42:06.000Z", 
                "date_updated": "2015-06-18T05:42:07.000Z", 
                "id": "pd_ciat6szv2002yk06nyhasdasd5", 
                "object": "postback_delivery", 
                "response_body": "", 
                "response_headers": "{\"cache-control\":\"no-cache\",\"pragma\":\"no-cache\",\"content-length\":\"0\",\"expires\":\"-1\",\"server\":\"Microsoft-IIS/8.0\",\"x-aspnet-version\":\"4.0.30319\",\"x-powered-by\":\"ASP.NET\",\"set-cookie\":[\"ARRAffinity=663d85223525d21e72aebd941082ca482841f5719c27124196939b3de6204504;Path=/;Domain=requestb.in\"],\"date\":\"Fri, 18 Jun 2015 05:42:06 GMT\",\"connection\":\"close\"}", 
                "response_time": 510, 
                "status": "success", 
                "status_code": "200", 
                "status_reason": "http_status_code"
            }
        ], 
        "headers": "{\"Content-Type\":\"application/x-www-form-urlencoded\",\"X-PagarMe-Event\":\"transaction_status_changed\",\"X-Hub-Signature\":\"sha1=d825b60eee7f3034484be584ccca20d3f7bb8c5b\",\"User-Agent\":\"PagarMe-Hookshot/1.0\"}", 
        "id": "po_ciat6ssga0022k06ng8vxg", 
        "model": "transaction", 
        "model_id": "674579", 
        "next_retry": null, 
        "object": "postback", 
        "payload": "id=674579&fingerprint=05112b2b5d756a1501d994027c95d3202c7b&event=transaction_status_changed&old_status=authorized&desired_status=paid&current_status=refused&object=transaction", 
        "request_url": "http://requestb.in/1azqnq81?inspect", 
        "retries": 0, 
        "signature": "d825b60eee7f3034484be584d3f7bb8c5b", 
        "status": "success"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação
:id
obrigatório
id do POSTback

Retornando todos os eventos de uma transação

GET https://api.pagar.me/1/transactions/:transaction_id/events

curl -X GET https://api.pagar.me/1/transactions/314578/events \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna todos os eventos já criados dentro de uma transação.
Ex: mudanças de status.

JSON Retornado (Exemplo)

[
    {
        "id": "ev_cift4mmt800t7z55z343v6xto", 
        "model": "transaction", 
        "model_id": "314578", 
        "name": "transaction_status_changed", 
        "object": "event", 
        "payload": {
            "current_status": "paid", 
            "desired_status": "paid", 
            "old_status": "processing"
        }
    }, 
    {
        "id": "ev_cift4nz1200t8zda33zh7zilzkt", 
        "model": "transaction", 
        "model_id": "314578", 
        "name": "transaction_status_changed", 
        "object": "event", 
        "payload": {
            "current_status": "refunded", 
            "desired_status": "refunded", 
            "old_status": "paid"
        }
    }
]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação

Retornando todo histórico de uma transação

GET https://api.pagar.me/1/transactions/:transaction_id/operations

curl -X GET https://api.pagar.me/1/transactions/314578/operations \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna todo o histórico de uma transação, ou seja, toda e qualquer operação que já aconteceu com ela.

Ex: autorização, análise antifraude, captura, estorno, chargeback, emissão de boleto, conciliação, etc.

JSON Retornado (Exemplo)

[
    {
        "date_created": "2015-10-16T03:59:40.000Z", 
        "date_updated": "2015-10-16T03:59:42.000Z", 
        "ended_at": 1444967982134, 
        "fail_reason": null, 
        "group_id": "gog_cift4ml505xsfce3ff9o8xgyv", 
        "id": "go_cift4ml505xsece3fqltn2ok0", 
        "metadata": {
            "environment": {}
        }, 
        "model": "transaction", 
        "model_id": "314578", 
        "next_group_id": "gog_cift4nxyp5mj9on3ehfthtxiy", 
        "processor": "pagarme", 
        "processor_response_code": null, 
        "request_id": "gr_cift4ml3c5xsdce3fistg0u6q", 
        "rollbacked": false, 
        "started_at": 1444967981743, 
        "status": "success", 
        "type": "capture"
    }, 
    {
        "date_created": "2015-10-16T03:59:40.000Z", 
        "date_updated": "2015-10-16T03:59:41.000Z", 
        "ended_at": 1444967981722, 
        "fail_reason": null, 
        "group_id": "gog_cift4ml5k5xshce3fqqjaeijr", 
        "id": "go_cift4ml5k5xsgce3fjelkr3c6", 
        "metadata": {
            "environment": {
                "authorization_code": "07482", 
                "nsu": "314578", 
                "response_code": "0000", 
                "tid": "314578"
            }
        }, 
        "model": "transaction", 
        "model_id": "314578", 
        "next_group_id": "gog_cift4ml505xsfce3ff9o8xgyv", 
        "processor": "pagarme", 
        "processor_response_code": "0000", 
        "request_id": "gr_cift4ml3c5xsdce3fistg0u6q", 
        "rollbacked": false, 
        "started_at": 1444967980241, 
        "status": "success", 
        "type": "authorize"
    }, 
    {
        "date_created": "2015-10-16T04:00:43.000Z", 
        "date_updated": "2015-10-16T04:00:44.000Z", 
        "ended_at": 1444968044662, 
        "fail_reason": null, 
        "group_id": "gog_cift4nxyp5mj9on3ehfthtxiy", 
        "id": "go_cift4nxyp5mj8on3e6e2k1d6t", 
        "metadata": {
            "environment": {}
        }, 
        "model": "transaction", 
        "model_id": "314578", 
        "next_group_id": null, 
        "processor": "pagarme", 
        "processor_response_code": null, 
        "request_id": "gr_cift4nxy15mj7on3edu9sf4fj", 
        "rollbacked": false, 
        "started_at": 1444968043510, 
        "status": "success", 
        "type": "refund"
    }]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:transaction_id
obrigatório
id da transação

Notificando cliente sobre boleto a ser pago

POST https://api.pagar.me/1/transactions/:id/collect_payment

curl -X POST https://api.pagar.me/1/transactions/314578/collect_payment \
-d 'api_key=ak_live_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'email=seu@email.com'

Envia o link de um boleto pendente para o cliente.

OBS: Essa rota não funciona em ambiente de testes.

JSON Retornado (Exemplo)

{ }
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id da transação
email
obrigatório
email a ser enviado o link do boleto

Capturando uma transação posteriormente

POST https://api.pagar.me/1/transactions/:id/capture

curl -X POST https://api.pagar.me/1/transactions/314578/capture \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

transaction = PagarMe::Transaction.find_by_id("1234")

transaction.capture({:amount => 1000})
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $t = new PagarMe_Transaction(array(
      "amount" => 3100,
      "card_id" => "card_ci6l9fx8f0042rt16rtb477gj",
      "postback_url" => "http://requestb.in/1ahq78t1",
      "capture" => "false",
      "metadata" => array(
        "idProduto" => 13933139
      )
    ));

    $t->charge();

    $t->capture(3100);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Transaction transaction = new Transaction();

transaction.Amount = 3100;
transaction.CardId = "card_ci6l9fx8f0042rt16rtb477gj";
transaction.PostbackUrl = "http://requestb.in/pkt7pgpk";
transaction.Metadata = new Metadata() {
    IdProduto = 13933139
};
transaction.Save();

transaction.Capture(3100);

Você pode capturar o valor de uma transação após a autorização desta, no prazo máximo de 5 dias após a autorização.

JSON Retornado (Exemplo)

{
    "object": "transaction",
    "status": "authorized",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": "00",
    "acquirer_name": "development",
    "authorization_code": "132534",
    "soft_descriptor": "testeDeApi",
    "tid": "1425302906112",
    "nsu": "1425302906112",
    "date_created": "2015-03-02T13:28:25.000Z",
    "date_updated": "2015-03-02T13:28:26.000Z",
    "amount": 130000,
    "installments": 1,
    "id": 184622,
    "cost": 0,
    "postback_url": "http://requestb.in/pkt7pgpk",
    "payment_method": "credit_card",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": null,
    "referer": "api_key",
    "ip": "189.8.94.42",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": {
        "object": "card",
        "id": "card_ci6l9fx8f0042rt16rtb477gj",
        "date_created": "2015-02-25T21:54:56.000Z",
        "date_updated": "2015-02-25T21:54:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": {
        "nomeData": "API Doc test",
        "idData": "13"
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da transação a ser capturada

Estorno de transação

POST https://api.pagar.me/1/transactions/:id/refund

curl -X POST https://api.pagar.me/1/transactions/314578/refund \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
# Estorno de transação paga com boleto bancário

curl -X POST https://api.pagar.me/1/transactions/314578/refund \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'bank_account[bank_code]=111' \
-d 'bank_account[agencia]=1234' \
-d 'bank_account[conta]=09876' \
-d 'bank_account[conta_dv]=1' \
-d 'bank_account[document_number]=12312312312' \
-d 'bank_account[legal_name]=joao miranda'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

transaction = PagarMe::Transaction.find_by_id("1234")

transaction.refund
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $t = new PagarMe_Transaction(array(
      "amount" => 3100,
      "card_id" => "card_ci6l9fx8f0042rt16rtb477gj",
      "postback_url" => "http://requestb.in/1ahq78t1",
      "capture" => "false",
      "metadata" => array(
        "idProduto" => 13933139
      )
    ));

    $t->charge();

    $t->refund();
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Transaction transaction = new Transaction();

transaction.Amount = 3100;
transaction.CardId = "card_ci6l9fx8f0042rt16rtb477gj";
transaction.PostbackUrl = "http://requestb.in/pkt7pgpk";
transaction.Metadata = new Metadata() {
    IdProduto = 13933139
};
transaction.Save();

transaction.Refund();

Essa rota é utilizada quando se deseja estornar uma transação, realizada por uma cobrança via cartão de crédito ou boleto bancário.

Em caso de estorno de uma transação realizada com cartão de crédito, apenas o id da transação é necessário para efetivação do estorno.

Caso a compra tenha sido feita por boleto bancário, você precisará passar os dados da conta bancária que irá receber o valor estornado, ou o id desta conta, que pode ser gerada através da rota /bank_accounts.

JSON Retornado - Estorno de Cartão de Crédito (Exemplo)

{
  "object": "transaction",
  "status": "refunded",
  "refuse_reason": null,
  "status_reason": "acquirer",
  "acquirer_response_code": "00",
  "acquirer_name": "pagarme",
  "authorization_code": "40777",
  "soft_descriptor": null,
  "tid": 545176,
  "nsu": 545176,
  "date_created": "2016-07-01T01:16:09.145Z",
  "date_updated": "2016-07-01T01:16:40.736Z",
  "amount": 10000,
  "authorized_amount": 10000,
  "paid_amount": 10000,
  "refunded_amount": 10000,
  "installments": 1,
  "id": 545176,
  "cost": 0,
  "card_holder_name": "Aardvark Silva",
  "card_last_digits": "4242",
  "card_first_digits": "424242",
  "card_brand": "visa",
  "postback_url": null,
  "payment_method": "credit_card",
  "capture_method": "ecommerce",
  "antifraud_score": null,
  "boleto_url": null,
  "boleto_barcode": null,
  "boleto_expiration_date": null,
  "referer": "session_id",
  "ip": "132.125.152.103",
  "subscription_id": null,
  "phone": {
    "object": "phone",
    "ddi": "55",
    "ddd": "11",
    "number": "15110808",
    "id": 36183
  },
  "address": {
    "object": "address",
    "street": "Avenida Brigadeiro Faria Lima",
    "complementary": null,
    "street_number": "1811",
    "neighborhood": "Jd. Paulistano",
    "city": "São Paulo",
    "state": "SP",
    "zipcode": "01451001",
    "country": "Brasil",
    "id": 37461
  },
  "customer": {
    "object": "customer",
    "document_number": "11122233389",
    "document_type": "cpf",
    "name": "Aardvark Silva",
    "email": "aardvark.silva@pagar.me",
    "born_at": null,
    "gender": null,
    "date_created": "2016-06-29T16:34:39.615Z",
    "id": 76762
  },
  "card": {
    "object": "card",
    "id": "card_ciq13rfsh00wxru6eq00ndqkf",
    "date_created": "2016-06-29T16:34:39.666Z",
    "date_updated": "2016-07-01T01:16:09.130Z",
    "brand": "visa",
    "holder_name": "Aardvark Silva",
    "first_digits": "424242",
    "last_digits": "4242",
    "country": "US",
    "fingerprint": "8Z6Lxj449c8M",
    "valid": true,
    "expiration_date": "1119"
  },
  "split_rules": null,
  "metadata": {},
  "antifraud_metadata": {}
}

JSON Retornado - Estorno de Boleto Bancário (Exemplo)

{
    "object": "transaction",
    "status": "pending_refund",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": null,
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": null,
    "nsu": null,
    "date_created": "2015-02-26T19:50:38.000Z",
    "date_updated": "2015-03-02T17:38:10.000Z",
    "amount": 3100000,
    "installments": 1,
    "id": 184306,
    "cost": 115,
    "postback_url": "http://requestb.in/pkt7pgpk",
    "payment_method": "boleto",
    "antifraud_score": null,
    "boleto_url": "https://pagar.me",
    "boleto_barcode": "1234 5678",
    "boleto_expiration_date": "2015-03-13T03:00:00.000Z",
    "referer": "api_key",
    "ip": "189.8.94.42",
    "subscription_id": null,
    "phone": null,
    "address": null,
    "customer": null,
    "card": {
        "object": "card",
        "id": "card_ci6l9fx8f0042rt16rtb477gj",
        "date_created": "2015-02-25T21:54:56.000Z",
        "date_updated": "2015-02-25T21:54:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": {}
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id da transação
bank_account_id
obrigatório*
Se você tiver o id de uma conta previamente criada, você pode passar apenas seu id. Caso a conta ainda não exista, você pode criar uma conta ou passar os dados da conta via parâmetros
bank_code
obrigatório*
Dígitos que identificam cada banco. Confira a lista dos bancos aqui
agencia
obrigatório*
Número da agência bancária
agencia_dv Digito verificador da agência. Obrigatório caso o banco o utilize
conta
obrigatório*
Número da conta
conta_dv
obrigatório*
Dígito verificador da conta. Obrigatório caso o banco o utilize
document_number
obrigatório*
CPF ou CNPJ do favorecido
legal_name
obrigatório*
Nome/razão social do favorecido

Estorno Parcial de uma transação

POST https://api.pagar.me/1/transactions/:id/refund

curl -X POST https://api.pagar.me/1/transactions/562797/refund \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'amount=1000'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

transaction = PagarMe::Transaction.find_by_id("1234")

transaction.refund

<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $t = PagarMe_Transaction::findById("562797");

    $params = array("amount" => 1000);

    $t->refund($params);

?>

PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var transaction = PagarMeService.GetDefaultService().Transactions.Find("562797");

transaction.Refund(1000);

O estorno parcial obedece as mesmas regras de um estorno total, e usa o parâmetro amount como referência para o valor a ser estornado. Entretanto, só pode ser usado para transações pagas por cartão de crédito, e com a observação de que o status da transação vai permanecer paid até que o valor total da transação tenha sido estornado.

JSON Retornado

{
"object":"transaction",
    "status":"paid",
    "refuse_reason":null,
    "status_reason":"acquirer",
    "acquirer_response_code":"00",
    "acquirer_name":"pagarme",
    "authorization_code":"845088",
    "soft_descriptor":null,
    "tid":562797,
    "nsu":562797,
    "date_created":"2016-07-10T17:09:41.289Z",
    "date_updated":"2016-07-11T02:14:53.547Z",
    "amount":9900,
    "authorized_amount":9900,
    "paid_amount":9900,
    "refunded_amount":1000,
    "installments":1,
    "id":562797,
    "cost":50,
    "card_holder_name":"John Smith",
    "card_last_digits":"4242",
    "card_first_digits":"424242",
    "card_brand":"visa",
    "postback_url":null,
    "payment_method":"credit_card",
    "capture_method":"ecommerce",
    "antifraud_score":null,
    "boleto_url":null,
    "boleto_barcode":null,
    "boleto_expiration_date":null,
    "referer":"session_id",
    "ip":"162.15.6.27",
    "subscription_id":71865,
    "phone":null,
    "address":null,
    "customer":{
        "object":"customer",
        "document_number":null,
        "document_type":"cpf",
        "name":null,
        "email":"john.smith@emailg.com",
        "born_at":null,
        "gender":null,
        "date_created":"2016-07-10T17:09:41.236Z",
        "id":79118},
    "card":{
        "object":"card",
        "id":"card_ciqguuuqk001dkg6erhqzh4jf",
        "date_created":"2016-07-10T17:09:41.278Z",
        "date_updated":"2016-07-10T17:09:41.834Z",
        "brand":"visa",
        "holder_name":"John Smith",
        "first_digits":"424242",
        "last_digits":"4242",
        "country":"US",
        "fingerprint":"8Z6Lxj449c8M",
        "valid":true,
        "expiration_date":"1119"
    },
    "split_rules":null,
    "metadata":{},
    "antifraud_metadata":{}
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id da transação
amount
obrigatório
Valor desejado para o estorno da transação

Status das transações

Quando uma transação é criada, ela inicialmente é retornada com o status processing. Após ser processada, ela pode ter os seguintes status:

Calculando Pagamentos Parcelados

GET https://api.pagar.me/1/transactions/calculate_installments_amount

curl -X GET https://api.pagar.me/1/transactions/calculate_installments_amount \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0 \
-d 'max_installments=3' \
-d 'free_installments=1' \
-d 'interest_rate=13' \
-d 'amount=10000'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

installments_result = PagarMe::Transaction.calculate_installments({
    amount: 10000,
    interest_rate: 13
})

Usada para calcular o valor de cada uma das parcelas de uma compra.

JSON retornado (exemplo):

{
    "installments": {
        "1": {
            "installment": 1,
            "amount": 10000,
            "installment_amount": 10000
        },
        "2": {
            "installment": 2,
            "amount": 10598,
            "installment_amount": 5299
        },
        "3": {
            "installment": 3,
            "amount": 10897,
            "installment_amount": 3632
        }
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
max_installments
default: 12
Valor máximo de parcelas
free_installments
default: 1
Número de parcelas isentas de juros
interest_rate
obrigatório
Valor da taxa de juros
amount
obrigatório
Valor do produto/serviço vendido

Testando pagamento de Boletos

PUT https://api.pagar.me/1/transactions/:id

curl -X PUT https://api.pagar.me/1/transactions/260582 \
-d 'api_key=ak_test_3343DSY7DWVzOXSz3xjvzIpBME4afc' \
-d 'status=paid'

Usado apenas em ambiente de Teste para simular o pagamento de um Boleto.

JSON retornado (exemplo):

{
    "object":"transaction",
    "status":"paid",
    "refuse_reason":null,
    "status_reason":"acquirer",
    "acquirer_response_code":null,
    "acquirer_name":"development",
    "authorization_code":null,
    "soft_descriptor":null,
    "tid":null,
    "nsu":null,
    "date_created":"2015-08-27T17:53:56.000Z",
    "date_updated":"2015-08-27T18:01:24.000Z",
    "amount":25000,
    "installments":1,
    "id":260582,
    "cost":380,
    "card_holder_name":null,
    "card_last_digits":null,
    "card_first_digits":null,
    "card_brand":null,
    "postback_url":"",
    "payment_method":"boleto",
    "antifraud_score":null,
    "boleto_url":"https://pagar.me",
    "boleto_barcode":"1234 5678",
    "boleto_expiration_date":"2015-09-03T03:00:00.000Z",
    "referer":"api_key",
    "ip":"180.185.133.109",
    "subscription_id":null,
    "phone":null,
    "address":null,
    "customer":null,
    "card":null,
    "metadata":{
    },
    "antifraud_metadata":{
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
status
obrigatório
Utilize o valor paid para simular o pagamento

Gerando card_hash manualmente

O card_hash consiste em uma string gerada a partir dos dados do cartão de crédito. Essa string é encriptada por RSA usando uma chave pública que deve ser requisitada ao servidor a cada novo card_hash gerado. Essa chave é invalidada assim que o servidor lê as informações contidas no card_hash, e por isso só pode ser utilizada uma única vez. Ela também é temporária, expirando 5 minutos após ter sido gerada.

As bibliotecas do Pagar.me sempre utilizam o card_hash para enviar os dados para o servidor, o que aumenta consideravelmente a segurança da transação.

Requisitando ao servidor uma chave para encriptar o card_hash

GET https://api.pagar.me/1/transactions/card_hash_key

curl -X GET https://api.pagar.me/1/transactions/card_hash_key \
-d 'encryption_key=ek_test_9741a03ea3a4f15f6fa8d9fe9d2c47c8' \

Para gerarmos o card_hash, primeiramente devemos requisitar do servidor a chave pública para criptografarmos nossos dados.

JSON retornado (exemplo):

{
  "date_created": "2015-02-27T15:44:26.000Z",
  "id": 111111,
  "ip": "000.0.00.00",
  "public_key": "-----BEGIN PUBLIC KEY-----\ -----END PUBLIC KEY-----\ " 
}
Propriedade Descrição
id
Number
id retornado que será utilizado posterirormente para compor o card_hash, por isso é importante que você o salve
public_key
String
Chave pública utilizada para criptografar os dados do cartão de crédito
ip
String
IP de onde o request foi originado

Encriptando os dados do cartão de crédito

Agora você vai ter que criar uma QueryString com valores URLEncoded para os parâmetros do cartão de crédito. Vamos pegar os seguintes dados abaixo como exemplo:

A querystring será da seguinte forma:

card_number=4901720080344448&card_holder_name=Usuario%20de%20Teste&card_expiration_date=1213&card_cvv=314

Agora você vai fazer uma criptografia publica com RSA e o padding PKCS1Padding usando a public_key que você recebeu na request passando essa QueryString que você montou.

Após criptografar esses dados você deve converter o resultado para base64. Como resultado você terá:

FFtwikzg/FC1mH7XLFU5fjPAzDsP0ogeAQh3qXRpHzkIrgDz64lITBUGwio67zm2CQXwbKRjGdRi5J1xFNpQLWnxQsUJAQELcTSGaGtF6RGSu6sq1stp8OLRSNG7wp+xGe8poqxw4S1gOL5JYO7XZp/Uz7rTpKXh3IcRshmX36hh66J6+7l5j0803cGIfMZu3T7nbMjQYIf+yLi8r0O6vL9DQPmqSZ9FBerqFGxWHrxScneaaMVzMpNX/5eneqveVBt88RccytyJG5+HYRHcRyKIbLfmX48L/C22HJeAm3PyzehGHdOmDcsxPtVB+Fgq7SDuB4tHWBT8j6wihOO7ww==

Agora que você possui o id vindo do request e o os dados criptografados convertidos para base64, seu card_hash deverá ser formatado da seguinte maneira:

card_hash = id + "_" + encrypted_string_base64

Cartões

Objeto card

Objeto card

{
    "object": "card",
    "id": "card_ci6y37hc00030a416wrxsmzyi",
    "date_created": "2015-03-06T21:21:25.000Z",
    "date_updated": "2015-03-06T21:21:26.000Z",
    "brand": "visa",
    "holder_name": "API CUSTOMER",
    "first_digits": "401872",
    "last_digits": "8048",
    "fingerprint": "Jl9oOIiDjAjR",
    "customer": null,
    "valid": true
}

Sempre que você faz uma requisição através da nossa API nós guardamos as informações do portador do cartão, para que, futuramente, você possa utilizar essas informações para novas cobranças, ou implementação de features como one-click-buy.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: subscription
id
String
Identificador do cartão
date_created
String
Data de criação do objeto card
date_updated
String
Data de atualização do objeto card
brand
String
Marca da operadora do cartão
holder_name
String
Nome do portador do cartão
first_digits
String
Primeiros dígitos do cartão (6 dígitos)
last_digits
String
Últimos dígitos do cartão (4 dígitos)
fingerprint
String
Hash que permite comparar dois cartões através de seus fingerprints para saber se são o mesmo
customer
Object
Objeto com dados do comprador
valid
Boolean
Propriedade para verificar a validade do cartão

Criando um cartão

POST https://api.pagar.me/1/cards

curl -X  POST https://api.pagar.me/1/cards \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'card_number=4018720572598048' \
-d 'holder_name=API Customer' \
-d 'card_expiration_date=0116'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"


card = PagarMe::Card.new({
    :card_number => '4111111111111111',
    :card_holder_name => 'Jose da Silva',
    :card_expiration_month => '10',
    :card_expiration_year => '15',
    :card_cvv => '314'
})

card.create
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $card = new PagarMe_Card(array(
        "card_number" => "4111111111111111",
        "card_holder_name" => "Jose da Silva",
        "card_expiration_month" => 10,
        "card_expiration_year" => 22,
        "card_cvv" => "123",
    ));
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";
PagarMeService.DefaultEncryptionKey = "ek_test_Ec8KhxISQ1tug1b8bCcxC2nXfxqRnk";

Card card = new Card();
card.Number = "4111111111111111";
card.HolderName = "Jose da Silva";
card.ExpirationDate = "1022";
card.Cvv = "123";

card.Save();

Você pode armazenar os dados do cartão do seu cliente através da rota /cards, assim você poderá usar o id do objeto gerado para realizar futuras transações, no lugar do card_hash.

JSON Retornado (Exemplo)

{
    "object": "card",
    "id": "card_ci6y37h16wrxsmzyi",
    "date_created": "2015-03-06T21:21:25.000Z",
    "date_updated": "2015-03-06T21:21:26.000Z",
    "brand": "visa",
    "holder_name": "API CUSTOMER",
    "first_digits": "401872",
    "last_digits": "8048",
    "fingerprint": "Jl9oOIiDjAjR",
    "customer": null,
    "valid": true
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
card_number Número do portador do cartão
card_expiration_date ou expiration_date Data de expiração do cartão
holder_name Nome no cartão do portador
customer_id Você pode usar o id do objeto customer para associar mais informações do cliente ao card a ser gerado
card_hash Você também pode criar um objeto card usando os dados do cartão criptografados no card_hash

Retornando um cartão salvo

GET https://api.pagar.me/1/cards/:id

curl -X  GET https://api.pagar.me/1/cards/card_ci6y37h16wrxsmzyi \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

card = PagarMe::Card.find_by_id("1234")
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $card = PagarMe_Card::findById("card_ci6y37hc00030a416wrxsmzyi");
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var card = PagarMeService.GetDefaultService().Cards.Find("card_ci6y37hc00030a416wrxsmzyi");

Use a rota /cards/:id para retornar os dados de um cartão previamente salvo.

JSON Retornado (Exemplo)

{
    "object": "card",
    "id": "card_ci6y37h16wrxsmzyi",
    "date_created": "2015-03-06T21:21:25.000Z",
    "date_updated": "2015-03-06T21:21:26.000Z",
    "brand": "visa",
    "holder_name": "API CUSTOMER",
    "first_digits": "401872",
    "last_digits": "8048",
    "fingerprint": "Jl9oOIiDjAjR",
    "customer": null,
    "valid": true
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Validação de R$ 1,23

Essa cobrança é realizada para validar o cartão que pode vir a ser utilizado na criação de uma transação (objeto transaction) ou de uma assinatura (subscription). Ou seja, a API Pagar.Me envia uma requisição ao banco emissor, pedindo a reserva de R$1,23 no saldo do portador, caso autorizada, cria um novo cartão em nossa base, retornando o objeto ao lado:

 {
    "object": "card",
    "id": "card_civi47gf900dgwf6dugd02b98",
    "date_created": "2016-11-14T13:37:43.656Z",
    "date_updated": "2016-11-17T12:59:09.657Z",
    "brand": "visa",
    "holder_name": "Pernalonga",
    "first_digits": "424242",
    "last_digits": "4242",
    "country": "US",
    "fingerprint": "zuXID6kjRtS+",
    "customer": null,
    "valid": true,
    "expiration_date": "0221"
  }

Em que o id card_civi47gf900dgwf6dugd02b98 pode ser reutilizado para futuras compras.

OBS: O valor será estornado para o portador do cartão no exato momento após a validação dos dados.

Planos

Através dessas rotas você pode gerenciar todos os planos do seu negócio, para posteriormente criar cobranças recorrentes, que serão as assinaturas.

Objeto plan

Objeto plan

{
    "object": "plan",
    "id": 13731,
    "amount": 31000,
    "days": 30,
    "name": "Plano Diamond",
    "trial_days": 7,
    "date_created": "2015-03-03T17:31:47.000Z",
    "payment_methods": [
        "boleto"
    ],
    "color": "gold",
    "charges": null,
    "installments": 1
}

Com o objeto plan você consegue definir um plano no qual assinaturas poderão estar atreladas a este plano. Informações como valor do plano, nome, dias de teste, entre outras informações, são armazenadas pelos planos.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: plan
id
Number
Número identificador do plano
amount
Number
Preço do plano, em centavos
days
Number
Dias para efetuação da próxima cobrança da assinatura atrelada ao plano.
name
String
Nome do plano
trial_days
Number
Dias que o usuário poderá testar o serviço gratuitamente
date_created
String
Data da criação do plano (ISODate)
payment_methods
Array
Array de Strings contendo os possíveis métodos de pagamento deste plano.
Valores possíveis: credit_card, boleto
color
String
Propriedade opcional para atribuição de uma cor ao plano.
Valor padrão: null
charges
Number
Número de cobranças que podem ser feitas em uma assinatura.
OBS: No caso de pagamento com cartão de crédito, esse valor não inclui a cobrança feita na criação da assinatura.
Ex: Plano anual com no máximo 3 cobranças, days = 365 e charges = 2 (cartão de crédito) ou charges = 3 (boleto)
installments
Number
Informa em quantas vezes o pagamento será parcelado entre cada cobrança

Criando Planos

POST https://api.pagar.me/1/plans

curl -X POST https://api.pagar.me/1/plans \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'amount=31000' \
-d 'days=30' \
-d 'name=Plano Ouro' \
-d 'payments_methods[]=boleto'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

plan = PagarMe::Plan.new({
    :name => "Plano gold",
    :trial_days => 5,
    :days => 30,
    :amount => 3000,
}

plan.create
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $plan = new PagarMe_Plan(array(
        "amount" => 3000,
        "trial_days" => 5,
        "days" => 30,
        "name" => "Plano gold"
    ));

    $plan->create();
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Plan plan = new Plan();
plan.Amount = 3000;
plan.TrialDays = 5;
plan.Days = 30;
plan.Name = "Plano gold";

plan.Save();

Cria um plano, onde poderão ser definidos o nome deste, preço, tempo de recorrência, métodos de pagamento, dentre outras opções.

JSON Retornado (Exemplo)

{
    "object": "plan",
    "id": 12779,
    "amount": 31000,
    "days": 30,
    "name": "Plano Ouro",
    "trial_days": 0,
    "date_created": "2015-03-03T16:28:00.000Z",
    "payment_methods": [
        "boleto"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
amount
obrigatório
Valor que será cobrado recorrentemente (em centavos). Ex: R$49,90 = 4990
days
obrigatório
Prazo, em dias, para cobrança das parcelas
name
obrigatório
Nome do plano
trial_days
default: 0
Dias para teste gratuito do produto. Valor começará a ser cobrado no dia trial_days + 1
payment_methods
Array, default: [boleto, credit_card]
Meios de pagamentos aceitos. Pode ser boleto, cartão de crédito ou ambos
color
default: null
Armazena o valor de uma cor para o plano
charges
default: null
Número de cobranças que poderão ser feitas nesse plano.
Ex: Plano cobrado 1x por ano, válido por no máximo 3 anos. Nesse caso, nossos parâmetros serão: days = 365, installments = 1, charges=2 (cartão de crédito) ou charges=3 (boleto).
OBS: No caso de cartão de crédito, a cobrança feita na ativação da assinatura não é considerada.
OBS: null irá cobrar o usuário indefinidamente, ou até o plano ser cancelado
installments
default: 1
Número de parcelas entre cada charge.
Ex: Plano anual, válido por 2 anos, podendo ser divido em até 12 vezes. Nesse caso, nossos parâmetros serão: days = 30, installments = 12, charges=2 (cartão de crédito) ou charges=3 (boleto).
OBS: Boleto sempre terá installments = 1

Veja mais sobre como criar um plano aqui.

Retornando um plano

GET https://api.pagar.me/1/plans/:id

curl -X GET https://api.pagar.me/1/plans/13580 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

plan = PagarMe::Plan.find_by_id("13580")
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $plan = PagarMe_Plan::findById("13850");

PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var plan = PagarMeService.GetDefaultService().Plans.Find("13850");

Retorna um plano previamente criado.

JSON Retornado (Exemplo)

{
    "object": "plan",
    "id": 13580,
    "amount": 31000,
    "days": 30,
    "name": "Plano Ouro",
    "trial_days": 0,
    "date_created": "2015-03-03T16:28:00.000Z",
    "payment_methods": [
        "boleto"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id de identificação do plano previamente criado

Retornando planos

GET https://api.pagar.me/1/plans

curl -X GET https://api.pagar.me/1/plans \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'page=1' \
-d 'count=3'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

plans = PagarMe::Plan.all(1, 3)
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $plans = PagarMe_Plan::all(1, 3);

PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var plans = PagarMeService.GetDefaultService().Plans.FindAll(new Plan());

Retorna todos os planos previamente criados.

JSON Retornado (Exemplo)

[{
    "object": "plan",
    "id": 15553,
    "amount": 31000,
    "days": 30,
    "name": "Plano Ouro",
    "trial_days": 0,
    "date_created": "2015-03-27T00:37:36.000Z",
    "payment_methods": [
        "boleto",
        "credit_card"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}, {
    "object": "plan",
    "id": 15495,
    "amount": 79000,
    "days": 30,
    "name": "Cacique",
    "trial_days": 0,
    "date_created": "2015-03-26T14:37:10.000Z",
    "payment_methods": [
        "boleto",
        "credit_card"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}, {
    "object": "plan",
    "id": 15487,
    "amount": 300000,
    "days": 30,
    "name": "TOP MBA 360",
    "trial_days": 0,
    "date_created": "2015-03-25T21:28:32.000Z",
    "payment_methods": [
        "boleto",
        "credit_card"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de plano
page
default: 1
Útil para implementação de uma paginação de resultados

Atualizando Planos

PUT https://api.pagar.me/1/plans/:id

curl -X  PUT https://api.pagar.me/1/plans/13580 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'name=Plano Diamong' \
-d 'trial_days=7'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

plan = PagarMe::Plan.find_by_id("1234")

plan.name = "plano silver"

plan.save
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $plan = PagarMe_Plan::findById("12785");

    $plan->setName("plano silver");

Atualiza um plano previamente criado. As propriedades que podem ser alteradas são:

JSON Retornado (Exemplo)

{
    "object": "plan",
    "id": 13580,
    "amount": 31000,
    "days": 30,
    "name": "Plano Ouro",
    "trial_days": 7,
    "date_created": "2015-03-03T16:28:00.000Z",
    "payment_methods": [
        "boleto"
    ],
    "color": null,
    "charges": null,
    "installments": 1
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
id de identificação do plano previamente criado
name Nome do plano
trial_days Dias para testar o produto/serviço gratuitamente

Assinaturas

Objeto subscription

Objeto subscription

{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12830,
        "amount": 1300,
        "days": 15,
        "name": "Plano Prata",
        "trial_days": 0,
        "date_created": "2015-03-06T17:25:25.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 14858,
    "current_transaction": {
        "object": "transaction",
        "status": "waiting_payment",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": null,
        "acquirer_name": "development",
        "authorization_code": null,
        "soft_descriptor": null,
        "tid": null,
        "nsu": null,
        "date_created": "2015-03-06T18:15:12.000Z",
        "date_updated": "2015-03-06T18:15:12.000Z",
        "amount": 1300,
        "installments": 1,
        "id": 185486,
        "cost": 0,
        "postback_url": null,
        "payment_method": "boleto",
        "antifraud_score": null,
        "boleto_url": "https://pagar.me",
        "boleto_barcode": "1234 5678",
        "boleto_expiration_date": "2015-03-13T18:15:12.000Z",
        "referer": null,
        "ip": null,
        "subscription_id": 14858,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "boleto",
    "current_period_start": null,
    "current_period_end": null,
    "charges": 0,
    "status": "canceled",
    "date_created": "2015-03-04T18:41:57.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": null
}

Esse objeto contém os dados das assinaturas geradas pelo seu sistema, que são atreladas a um plano.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: subscription
plan
Object
Objeto com os dados do plano que a assinatura está associada
id
Number
Número identificador do plano
current_transaction
Object
Objeto com os dados da última transação realizada nessa assinatura
postback_url
String
Endpoint da aplicação integrada ao Pagar.me que irá receber os jsons de resposta a cada atualização dos processos
payment_method
String
Método de pagamento associado a essa assinatura
current_period_start
String
Início do período de cobrança da assinatura
current_period_end
String
Término do período de cobrança da assinatura
charges
Number
Número de cobranças que foram efetuadas na assinatura, sem contar a cobrança inicial da assinatura no caso de cartão de crédito.
status
String
Possíveis estados da transação/assinatura
Valores possíveis: trialing, paid, pending_payment, unpaid, canceled, ended
date_created
String
Data da criação da assinatura
phone
Object
Objeto com dados do telefone do cliente
address
Object
Objeto com dados do endereço do cliente
customer
Object
Objeto com dados do cliente
card
Object
Objeto com dados do cartão do cliente
metadata
Object
Objeto com dados adicionais do cliente/produto/serviço vendido

Criando assinaturas

POST https://api.pagar.me/1/subscriptions

curl -X POST https://api.pagar.me/1/subscriptions \
-d 'api_key=ak_test_TSgC3nrsdidfHAas24shu43HUhurw9' \
-d 'customer[email]=api@test.com' \
-d 'plan_id=12783' \
-d 'card_id=card_ci234fx8rr649rt16rtb11132' \
-d 'postback_url=http://requestb.in/zyn5obzy' \
-d 'payment_method=credit_card'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

plan = PagarMe::Plan.find_by_id("12783")

subscription = PagarMe::Subscription.new({
    :payment_method => 'credit_card',
    :card_number => "4901720080344448",
    :card_holder_name => "Jose da Silva",
    :card_expiration_month => "10",
    :card_expiration_year => "15",
    :card_cvv => "314",
    :postback_url => "http://test.com/postback",
    :customer => {
        email: 'api@test.com'
})
subscription.plan = plan

subscription.create
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $plan = PagarMe_Plan::findById("13850");

    $subscription = new PagarMe_Subscription(array(
        "plan" => $plan,
        "payment_method" => "credit_card",
        "card_number" => "4901720080344448",
        "card_holder_name" => "Jose da Silva",
        "card_expiration_month" => 12,
        "card_expiration_year" => 15,
        "card_cvv" => "123",
        'customer' => array(
            'email' => 'api@test.com'
        )));

    $subscription->create();

?>
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Subscription subscription = new Subscription();
subscription.PaymentMethod = PaymentMethod.CreditCard;
subscription.CardNumber = "4901720080344448";
subscription.CardHolderName = "Jose da Silva";
subscription.CardExpirationDate = "1215";
subscription.CardCvv = "123";

Customer customer = new Customer();
customer.Email = "api@test.com";
subscription.Customer = customer;

subscription.Save();

Para efetivamente cobrar seu cliente de forma recorrente, você deve criar uma assinatura, que atrelada a um plano, conterá os dados de cobrança.

A criação de uma subscription (assinatura) é parecida com a criação de uma transação. Veja mais detalhes sobre como cobrar seu cliente de forma recorrente aqui.

OBS: Você pode passar os objetos customer e metadata na criação de uma assinatura, assim como feito na criação de uma transação. A diferença é que a propriedade customer[email] é obrigatória na criação da assinatura.

OBS: As transações criadas pelas assinaturas não passam pelo antifraude, devido a ocorrência de fraudes nesse tipo de serviço serem praticamente nulas.

JSON Retornado (Exemplo)

{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12783,
        "amount": 31000,
        "days": 30,
        "name": "Plano Ouro",
        "trial_days": 0,
        "date_created": "2015-03-03T16:56:32.000Z",
        "payment_methods": ["boleto", "credit_card"],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 16892,
    "current_transaction": {
        "object": "transaction",
        "status": "waiting_payment",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": null,
        "acquirer_name": "development",
        "authorization_code": null,
        "soft_descriptor": null,
        "tid": null,
        "nsu": null,
        "date_created": "2015-04-14T20:17:18.000Z",
        "date_updated": "2015-04-14T20:17:19.000Z",
        "amount": 31000,
        "installments": 1,
        "id": 194402,
        "cost": 0,
        "card_holder_name": null,
        "card_last_digits": null,
        "card_first_digits": null,
        "card_brand": null,
        "postback_url": null,
        "payment_method": "boleto",
        "antifraud_score": null,
        "boleto_url": "https://pagar.me",
        "boleto_barcode": "1234 5678",
        "boleto_expiration_date": "2015-04-21T20:17:18.000Z",
        "referer": "api_key",
        "ip": "179.185.132.108",
        "subscription_id": 16892,
        "metadata": {}
    },
    "postback_url": "http://requestb.in/zyn5obzy",
    "payment_method": "boleto",
    "current_period_start": null,
    "current_period_end": null,
    "charges": 0,
    "status": "unpaid",
    "date_created": "2015-04-14T20:17:19.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": null,
    "metadata": null
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
plan_id
obrigatório
id do plano a ser associado a uma assinatura
card_hash
obrigatório
Dados encriptados do cartão do cliente. Você também pode usar o card_id ao invés do card_hash OBS: No caso de pagamentos via boleto não utilizar o card_hash ou o card_id
postback_url URL onde nosso sistema irá enviar requisições informando a cada alteração de status da assinatura em questão
customer[email]
obrigatório
Email do cliente
customer[name]
obrigatório (com antifraude)
Nome completo ou razão social do cliente que está realizando a transação
customer[document_number]
obrigatório (com antifraude)
CPF ou CNPJ do cliente, sem separadores
customer[address][street]
obrigatório (com antifraude)
logradouro (rua, avenida, etc) do cliente
customer[address][street_number]
obrigatório (com antifraude)
Número da residência/estabelecimento do cliente
customer[address][complementary] completo do endereço do cliente
customer[address][neighborhood]
obrigatório (com antifraude)
bairro de localização do cliente
customer[address][zipcode]
obrigatório (com antifraude)
CEP do imóvel do cliente, sem separadores
customer[phone][ddd]
obrigatório (com antifraude)
DDD do telefone do cliente
customer[phone][number]
obrigatório (com antifraude)
número de telefone do cliente
customer[sex]
M ou F (letras maiúsculas)
sexo do cliente
customer[born_at]
Formato: MM-DD-AAAA
Data de nascimento do cliente.
Ex: 11-02-1985
metadata Você pode passar dados adicionais na criação da transação para posteriormente filtrar estas na nossa dashboard. Ex: metadata[ idProduto ]=13933139

Retornando uma assinatura

GET https://api.pagar.me/1/subscriptions/:id

curl -X GET https://api.pagar.me/1/subscriptions/14858 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

subscription = PagarMe::Subscription.find_by_id("14858")
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $subscription = PagarMe_Subscription::findById(14858);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var subscription = PagarMeService.GetDefaultService().Subscriptions.Find("14858");

Essa rota é utilizada para retornar os dados de uma determinada assinatura.

JSON Retornado (Exemplo)

{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12783,
        "amount": 31000,
        "days": 30,
        "name": "Plano Ouro",
        "trial_days": 0,
        "date_created": "2015-03-03T16:56:32.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 14858,
    "current_transaction": {
        "object": "transaction",
        "status": "paid",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": "00",
        "acquirer_name": "development",
        "authorization_code": "11344",
        "soft_descriptor": null,
        "tid": "1425494517057",
        "nsu": "1425494517057",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "amount": 31000,
        "installments": 1,
        "id": 185122,
        "cost": 515,
        "postback_url": null,
        "payment_method": "credit_card",
        "antifraud_score": null,
        "boleto_url": null,
        "boleto_barcode": null,
        "boleto_expiration_date": null,
        "referer": "api_key",
        "ip": "189.8.94.42",
        "subscription_id": 14858,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "credit_card",
    "current_period_start": "2015-03-04T18:41:56.746Z",
    "current_period_end": "2015-04-03T18:41:56.746Z",
    "charges": 0,
    "status": "paid",
    "date_created": "2015-03-04T18:41:57.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": null
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da assinatura

Retornando assinaturas

GET https://api.pagar.me/1/subscriptions

curl -X GET https://api.pagar.me/1/subscriptions \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'page=1' \
-d 'count=2'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

subscriptions = PagarMe::Subscription.all(1, 2)
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $subscription = PagarMe_Subscription::all(1, 2);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var subscriptions = PagarMeService.GetDefaultService().Subscriptions.FindAll(new Subscription());

Essa rota é utilizada para retornar os dados de todas assinaturas.

JSON Retornado (Exemplo)

[{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12830,
        "amount": 1300,
        "days": 15,
        "name": "Plano Prata",
        "trial_days": 0,
        "date_created": "2015-03-06T17:25:25.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 15186,
    "current_transaction": {
        "object": "transaction",
        "status": "paid",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": "00",
        "acquirer_name": "development",
        "authorization_code": "934740",
        "soft_descriptor": null,
        "tid": "1427840452918",
        "nsu": "1427840452918",
        "date_created": "2015-03-31T22:20:52.000Z",
        "date_updated": "2015-03-31T22:20:53.000Z",
        "amount": 62000,
        "installments": 1,
        "id": 191522,
        "cost": 980,
        "card_holder_name": "API CUSTOMER",
        "card_last_digits": "8048",
        "card_first_digits": "401872",
        "card_brand": "visa",
        "postback_url": null,
        "payment_method": "credit_card",
        "antifraud_score": null,
        "boleto_url": null,
        "boleto_barcode": null,
        "boleto_expiration_date": null,
        "referer": "api_key",
        "ip": "189.8.94.42",
        "subscription_id": 15186,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "credit_card",
    "card_brand": "visa",
    "card_last_digits": "8048",
    "current_period_start": "2015-03-31T22:20:53.320Z",
    "current_period_end": "2015-04-15T22:20:53.320Z",
    "charges": 2,
    "status": "paid",
    "date_created": "2015-03-13T20:56:31.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6y37hc00030a416wrxsmzyi",
        "date_created": "2015-03-06T21:21:25.000Z",
        "date_updated": "2015-03-06T21:21:26.000Z",
        "brand": "visa",
        "holder_name": "API CUSTOMER",
        "first_digits": "401872",
        "last_digits": "8048",
        "fingerprint": "Jl9oOIiDjAjR",
        "valid": true
    },
    "metadata": null
}, {
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 14335,
        "amount": 15590,
        "days": 180,
        "name": "Plano Semestral",
        "trial_days": 0,
        "date_created": "2015-03-13T21:04:18.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 15185,
    "current_transaction": {
        "object": "transaction",
        "status": "waiting_payment",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": null,
        "acquirer_name": "development",
        "authorization_code": null,
        "soft_descriptor": null,
        "tid": null,
        "nsu": null,
        "date_created": "2015-03-13T21:05:07.000Z",
        "date_updated": "2015-03-13T21:05:07.000Z",
        "amount": 3630,
        "installments": 1,
        "id": 186443,
        "cost": 0,
        "card_holder_name": null,
        "card_last_digits": null,
        "card_first_digits": null,
        "card_brand": null,
        "postback_url": null,
        "payment_method": "boleto",
        "antifraud_score": null,
        "boleto_url": "https://pagar.me",
        "boleto_barcode": "1234 5678",
        "boleto_expiration_date": "2015-03-20T21:05:07.000Z",
        "referer": null,
        "ip": null,
        "subscription_id": 15185,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "boleto",
    "card_brand": null,
    "card_last_digits": null,
    "current_period_start": null,
    "current_period_end": null,
    "charges": 4,
    "status": "unpaid",
    "date_created": "2015-03-13T20:54:30.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": null,
    "metadata": null
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Atualizando uma assinatura

PUT https://api.pagar.me/1/subscriptions/:id

curl -X PUT https://api.pagar.me/1/subscriptions/14858 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'plan_id=12830' \
-d 'payment_method=credit_card' \
-d 'card_id=card_ci6y37hc00030a416wrxsmzyi'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

subscription = PagarMe::Subscription.find_by_id(14858)

subscription.payment_method = 'boleto'

subscription.save
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $subscription = PagarMe_Subscription::findById(14858);
    $subscription->setPaymentMethod("boleto");

    $subscription->save();

Após criar uma assinatura, você pode atualizar os dados do método do pagamento e o plano que essa assinatura está atrelada.

JSON Retornado (Exemplo)

{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12830,
        "amount": 1300,
        "days": 15,
        "name": "Plano Prata",
        "trial_days": 0,
        "date_created": "2015-03-06T17:25:25.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 14858,
    "current_transaction": {
        "object": "transaction",
        "status": "waiting_payment",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": null,
        "acquirer_name": "development",
        "authorization_code": null,
        "soft_descriptor": null,
        "tid": null,
        "nsu": null,
        "date_created": "2015-03-06T18:15:12.000Z",
        "date_updated": "2015-03-06T18:15:12.000Z",
        "amount": 1300,
        "installments": 1,
        "id": 185486,
        "cost": 0,
        "postback_url": null,
        "payment_method": "boleto",
        "antifraud_score": null,
        "boleto_url": "https://pagar.me",
        "boleto_barcode": "1234 5678",
        "boleto_expiration_date": "2015-03-13T18:15:12.000Z",
        "referer": null,
        "ip": null,
        "subscription_id": 14858,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "boleto",
    "current_period_start": null,
    "current_period_end": null,
    "charges": 0,
    "status": "unpaid",
    "date_created": "2015-03-04T18:41:57.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": null
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
plan_id id do novo plano atrelado a assinatura
payment_method
obrigatório
método de pagamento utilizado na assinatura.
Valores possíveis: credit_card, boleto
card_id Identificador dos dados de um cartão previamente salvo na nossa base de dados
card_hash Dados encriptados de um cartão de crédito
card_number Número de um cartão de crédito. Usado quando o cartão a ser configurado na assinatura ainda não está salvo no nosso banco de dados
card_holder_name Nome do portador do cartão. Usado quando o cartão a ser configurado na assinatura ainda não está salvo no nosso banco de dados
card_expiration_date
Formato: MMYY
Data de expiração do cartão.
Ex: 0518 (Maio de 2018)

Cancelando uma assinatura

POST https://api.pagar.me/1/subscriptions/:id/cancel

curl -X POST https://api.pagar.me/1/subscriptions/14858/cancel \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

subscription = PagarMe::Subscription.find_by_id("1234")

subscription.cancel
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $subscription = PagarMe_Subscription::findById(14858);
    $subscription->cancel();

Para cancelar uma assinatura você deve utilizar a rota /subscriptions/:id/cancel

JSON Retornado (Exemplo)

{
    "object": "subscription",
    "plan": {
        "object": "plan",
        "id": 12830,
        "amount": 1300,
        "days": 15,
        "name": "Plano Prata",
        "trial_days": 0,
        "date_created": "2015-03-06T17:25:25.000Z",
        "payment_methods": [
            "boleto",
            "credit_card"
        ],
        "color": null,
        "charges": null,
        "installments": 1
    },
    "id": 14858,
    "current_transaction": {
        "object": "transaction",
        "status": "waiting_payment",
        "refuse_reason": null,
        "status_reason": "acquirer",
        "acquirer_response_code": null,
        "acquirer_name": "development",
        "authorization_code": null,
        "soft_descriptor": null,
        "tid": null,
        "nsu": null,
        "date_created": "2015-03-06T18:15:12.000Z",
        "date_updated": "2015-03-06T18:15:12.000Z",
        "amount": 1300,
        "installments": 1,
        "id": 185486,
        "cost": 0,
        "postback_url": null,
        "payment_method": "boleto",
        "antifraud_score": null,
        "boleto_url": "https://pagar.me",
        "boleto_barcode": "1234 5678",
        "boleto_expiration_date": "2015-03-13T18:15:12.000Z",
        "referer": null,
        "ip": null,
        "subscription_id": 14858,
        "metadata": {}
    },
    "postback_url": null,
    "payment_method": "boleto",
    "current_period_start": null,
    "current_period_end": null,
    "charges": 0,
    "status": "canceled",
    "date_created": "2015-03-04T18:41:57.000Z",
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": null
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da assinatura a ser cancelada

Transações em uma assinatura

GET https://api.pagar.me/1/subscriptions/:id/transactions

curl -X GET https://api.pagar.me/1/subscriptions/14858/transactions \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um array de objetos transaction contendo as transações feitas a partir de uma assinatura.

JSON Retornado (Exemplo)

[{
    "object": "transaction",
    "status": "waiting_payment",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": null,
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": null,
    "nsu": null,
    "date_created": "2015-03-06T18:15:12.000Z",
    "date_updated": "2015-03-06T18:15:12.000Z",
    "amount": 1300,
    "installments": 1,
    "id": 185486,
    "cost": 0,
    "postback_url": null,
    "payment_method": "boleto",
    "antifraud_score": null,
    "boleto_url": "https://pagar.me",
    "boleto_barcode": "1234 5678",
    "boleto_expiration_date": "2015-03-13T18:15:12.261Z",
    "referer": null,
    "ip": null,
    "subscription_id": 14858,
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": {}
}, {
    "object": "transaction",
    "status": "waiting_payment",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": null,
    "acquirer_name": "development",
    "authorization_code": null,
    "soft_descriptor": null,
    "tid": null,
    "nsu": null,
    "date_created": "2015-03-06T18:02:25.000Z",
    "date_updated": "2015-03-06T18:02:26.000Z",
    "amount": 31000,
    "installments": 1,
    "id": 185481,
    "cost": 0,
    "postback_url": null,
    "payment_method": "boleto",
    "antifraud_score": null,
    "boleto_url": "https://pagar.me",
    "boleto_barcode": "1234 5678",
    "boleto_expiration_date": "2015-03-13T18:02:25.904Z",
    "referer": null,
    "ip": null,
    "subscription_id": 14858,
    "phone": null,
    "address": null,
    "customer": null,
    "card": null,
    "metadata": {}
}, {
    "object": "transaction",
    "status": "paid",
    "refuse_reason": null,
    "status_reason": "acquirer",
    "acquirer_response_code": "00",
    "acquirer_name": "development",
    "authorization_code": "11344",
    "soft_descriptor": null,
    "tid": 1425494517057,
    "nsu": 1425494517057,
    "date_created": "2015-03-04T18:41:56.000Z",
    "date_updated": "2015-03-04T18:41:57.000Z",
    "amount": 31000,
    "installments": 1,
    "id": 185122,
    "cost": 515,
    "postback_url": null,
    "payment_method": "credit_card",
    "antifraud_score": null,
    "boleto_url": null,
    "boleto_barcode": null,
    "boleto_expiration_date": null,
    "referer": "api_key",
    "ip": "189.8.94.42",
    "subscription_id": 14858,
    "phone": null,
    "address": null,
    "customer": {
        "object": "customer",
        "document_number": null,
        "document_type": "cpf",
        "name": null,
        "email": "api@test.com",
        "born_at": null,
        "gender": null,
        "date_created": "2015-03-04T18:40:03.000Z",
        "id": 14437
    },
    "card": {
        "object": "card",
        "id": "card_ci6v2mom200br5616ln4vg10q",
        "date_created": "2015-03-04T18:41:56.000Z",
        "date_updated": "2015-03-04T18:41:57.000Z",
        "brand": "mastercard",
        "holder_name": "Api Customer",
        "first_digits": "548045",
        "last_digits": "3123",
        "fingerprint": "HSiLJan2nqwn",
        "valid": true
    },
    "metadata": {}
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da assinatura que possui as transações desejadas

POSTback

Ao criar uma transação ou uma assinatura, você tem a opção de passar o parâmetro postback_url na requisição com a informação da URL do seu sistema que irá receber as notificações a cada alteração de status dessas transações/assinaturas.

POSTback de transações

Dados enviados via POSTback de uma transação

{
  "old_status": "processing",
  "object": "transaction",
  "current_status": "paid",
  "desired_status": "paid",
  "event": "transaction_status_changed",
  "id": 194330
}

Sempre que uma transação tiver seu estado alterado, uma notificação será enviada caso tenha sido atribuída uma URL de POSTback na criação desta transação.

Exemplo de retorno via POSTback

Propriedade Descrição
old_status
String
Status anterior desta transação.
Valores possíveis: processing, authorized, waiting_payment, pending_refund
object
String
Nome do tipo do objeto
Valores possíveis: transaction
current_status
String
Status atual da transação.
Valores possíveis: authorized, paid, refunded, waiting_payment, pending_refund, refused
desired_status
String
Status desejado desta transação se todo o fluxo for respeitado.
Valores possíveis: paid
event
String
Nome do evento
Valores possíveis: transaction_status_changed
id
Number
Id da transação

POSTback de assinaturas

Dados enviados via POSTback de uma assinatura

{
  "old_status": "unpaid",
  "object": "transaction",
  "current_status": "paid",
  "desired_status": "paid",
  "event": "subscription_status_changed",
  "id": 16859
}

Sempre que uma assinatura tiver seu estado alterado, uma notificação será enviada caso tenha sido atribuída uma URL de POSTback na criação desta assinatura.

Exemplo de retorno via POSTback

Recebíveis

Objeto payable

Objeto payable

{
    "object": "payable",
    "id": 1465,
    "status": "paid",
    "amount": 700,
    "fee": 80,
    "installment": null,
    "transaction_id": 191517,
    "split_rule_id": "sr_ci7xsejbp000awq16wr5rkweh",
    "payment_date": "2015-03-31T03:00:00.000Z",
    "type": null,
    "date_created": "2015-03-31T22:16:21.000Z"
}

Objeto contendo os dados de um recebível. O recebível (payable) é gerado automaticamente após uma transação ser paga, para cada parcela de uma transação é gerado um recebível, que também podem ser divididos por recebedor (no caso de um split ter sido feito).

Ex: Uma transação paga com 5 parcelas e 3 recebedores nas regras de split irá gerar 15 (5 x 3) recebíveis. Com isso você tem controle sobre a menor divisão possível de um pagamento.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: payable
id
Number
Identificador do recebível
status
String
Estado atual do recebível.
Valores possíveis: waiting_funds, paid
amount
Number
Valor em centavos que foi pago
fee
Number
Valor em centavos que foi cobrado (taxa)
installment
Number
Número da parcela
transaction_id
Number
Identificador da transação que gerou o recebível
split_rule_id
String
Identificador da regra de split do recebível
payment_date
String
Dia e hora do pagamento (ISODate)
type
String
Tipo do recebível.
Valores possíveis: credit, refund e chargeback
date_created
String
Data da criação do objeto (ISODate)

Retornando recebíveis

GET https://api.pagar.me/1/payables

curl -X GET https://api.pagar.me/1/payables \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'count=3' \
-d 'page=1'

Retorna todos os recebíveis da sua empresa.

JSON Retornado (Exemplo)

[{
    "object": "payable",
    "id": 1465,
    "status": "paid",
    "amount": 700,
    "fee": 80,
    "installment": null,
    "transaction_id": 191517,
    "split_rule_id": "sr_ci7xsejbp000awq16wr5rkweh",
    "payment_date": "2015-03-31T03:00:00.000Z",
    "type": null,
    "date_created": "2015-03-31T22:16:21.000Z"
}, {
    "object": "payable",
    "id": 1464,
    "status": "paid",
    "amount": 300,
    "fee": 35,
    "installment": null,
    "transaction_id": 191517,
    "split_rule_id": "sr_ci7xsejbn0009wq16h3ybjgif",
    "payment_date": "2015-03-31T03:00:00.000Z",
    "type": null,
    "date_created": "2015-03-31T22:16:21.000Z"
}, {
    "object": "payable",
    "id": 1462,
    "status": "paid",
    "amount": 91000,
    "fee": 0,
    "installment": null,
    "transaction_id": 191508,
    "split_rule_id": "sr_ci7xru0nx005ckx16zjnvft7x",
    "payment_date": "2015-03-31T03:00:00.000Z",
    "type": null,
    "date_created": "2015-03-31T20:43:05.000Z"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Retornando um recebível

GET https://api.pagar.me/1/payables/:id

curl -X GET https://api.pagar.me/1/payables/1465 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um recebível de sua conta.

JSON Retornado (Exemplo)

{
    "object": "payable",
    "id": 1465,
    "status": "paid",
    "amount": 700,
    "fee": 80,
    "installment": null,
    "transaction_id": 191517,
    "split_rule_id": "sr_ci7xsejbp000awq16wr5rkweh",
    "payment_date": "2015-03-31T03:00:00.000Z",
    "type": null,
    "date_created": "2015-03-31T22:16:21.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id do recebível

Saldo

Objeto balance

Objeto balance

{
    "object": "balance",
    "waiting_funds": {
        "amount": 0
    },
    "available": {
        "amount": 3169323
    },
    "transferred": {
        "amount": 3163500
    }
}

Com este objeto, você pode obter informações gerais sobre o saldo da sua conta.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: balance
waiting_funds
Object
Possui a propriedade amount, que representa quanto, em centavos, você tem a receber do Pagar.me
available
Object
Possui a propriedade amount, que representa quanto, em centavos, você tem disponível em sua conta Pagar.me
transferred
Object
Possui a propriedade amount, que representa quanto, em centavos, você já transferiu para sua conta bancária (quanto já recebeu efetivamente)

Saldo geral das operações de sua empresa (company)

GET https://api.pagar.me/1/balance

curl -X  GET https://api.pagar.me/1/balance \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' 

Com essa rota /balance você poderá consultar o saldo gerado pelas suas transações.

OBS: os valores retornados estão em centavos.

JSON Retornado (Exemplo)

{
    "object": "balance",
    "waiting_funds": {
        "amount": 0
    },
    "available": {
        "amount": 3019898
    },
    "transferred": {
        "amount": 3163500
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Saldo geral de um recebedor específico

GET https://api.pagar.me/1/recipients/:id/balance

curl -X GET https://api.pagar.me/1/recipients/re_ci7nhf1ay0007n016wd5t22nl/balance \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna o balanço de saldo de um determinado recebedor.

JSON Retornado (Exemplo)

{
    "object": "balance",
    "waiting_funds": {
        "amount": 0
    },
    "available": {
        "amount": 0
    },
    "transferred": {
        "amount": 0
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível em sua Dashboard)
:id
obrigatório
Id do recebedor desejado

Operações de saldo

Objeto balance_operation

Objeto balance_operation

{
    "object": "balance_operation",
    "id": 4861,
    "status": "available",
    "balance_amount": 3019898,
    "balance_old_amount": 2920013,
    "type": "payable",
    "amount": 100000,
    "fee": 115,
    "date_created": "2015-03-06T21:00:31.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1297,
        "status": "paid",
        "amount": 100000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185537,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T21:00:31.000Z"
    }
}

Com este objeto você poderá acompanhar como estava/está seu saldo a cada movimentação bancária.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: balance_operation
id
String
Identificador da operação
status
String
Estado do saldo da conta.
Valores possíveis: waiting_funds, available e transferred
balance_amount
Number
Saldo atual da conta
type
String
O que gerou a movimentação.
Valores possíveis: payable, transfer ou anticipation
amount
Number
Valor transacionado para a conta
fee
Number
Taxa cobrada pela transação
date_created
String
Data da movimentação
movement_object
Object
Objeto da origem da movimentação

Histórico das operações

GET https://api.pagar.me/1/balance/operations

curl -X  GET https://api.pagar.me/1/balance/operations \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' 

Com a rota /balance/operations você poderá ver todos os movimentos ocorridos no saldo da sua conta.

JSON Retornado (Exemplo)

[{
    "object": "balance_operation",
    "id": 4861,
    "status": "available",
    "balance_amount": 3019898,
    "balance_old_amount": 2920013,
    "type": "payable",
    "amount": 100000,
    "fee": 115,
    "date_created": "2015-03-06T21:00:31.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1297,
        "status": "paid",
        "amount": 100000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185537,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T21:00:31.000Z"
    }
}, {
    "object": "balance_operation",
    "id": 4852,
    "status": "available",
    "balance_amount": 2920013,
    "balance_old_amount": 2910128,
    "type": "payable",
    "amount": 10000,
    "fee": 115,
    "date_created": "2015-03-06T18:44:42.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1294,
        "status": "paid",
        "amount": 10000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185507,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T18:44:42.000Z"
    }
}, {
    "object": "balance_operation",
    "id": 4840,
    "status": "available",
    "balance_amount": 2910128,
    "balance_old_amount": 2880243,
    "type": "payable",
    "amount": 30000,
    "fee": 115,
    "date_created": "2015-03-05T19:32:36.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1290,
        "status": "paid",
        "amount": 30000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185273,
        "payment_date": "2015-03-05T03:00:00.000Z",
        "date_created": "2015-03-05T19:32:35.000Z"
    }
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de operação de saldo
page
default: 1
Útil para implementação de uma paginação de resultados
status
default: available
Estado do saldo da conta. Valores possíveis: waiting_funds, available e transferred

Histórico específico de uma operação

GET https://api.pagar.me/1/balance/operations/:id

curl -X  GET https://api.pagar.me/1/balance/operations/4861 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' 

Com a rota /balance/operations/:id você poderá ver uma operação específica ocorrida no saldo da sua conta.

JSON Retornado (Exemplo)

{
    "object": "balance_operation",
    "id": 4861,
    "status": "available",
    "balance_amount": 3019898,
    "balance_old_amount": 2920013,
    "type": "payable",
    "amount": 100000,
    "fee": 115,
    "date_created": "2015-03-06T21:00:31.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1297,
        "status": "paid",
        "amount": 100000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185537,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T21:00:31.000Z"
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da operação desejada

Contas bancárias

Objeto bank_account

Objeto bank_account

{
    "object": "bank_account",
    "id": 4840,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:35:40.000Z"
}

Contém os dados de uma conta bancária para futuros pagamentos.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: bank_account
id
String
Identificador da conta bancária
bank_code
String
Valor identificador do código do banco
agencia
String
Valor identificador da agência a qual a conta pertence
agencia_dv
String
Dígito verificador da agência
conta
String
Número da conta bancária
conta_dv
String
Dígito verificador da conta
type
String
Tipo da conta bancária (conta_corrente, conta_poupanca, conta_corrente_conjunta, conta_poupanca_conjunta)
document_type
String
Tipo do documento do titular da conta
document_number
String
Número do documento do titular da conta (cpf ou cnpj)
legal_name
String
Nome completo (se pessoa física) ou Razão Social (se pessoa jurídica)
date_created
String
Data de criação da conta bancária (ISODate)

Criando uma conta bancária

POST https://api.pagar.me/1/bank_accounts

curl -X POST https://api.pagar.me/1/bank_accounts \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'bank_code=341' \
-d 'agencia=0932' \
-d 'agencia_dv=5' \
-d 'conta=58054' \
-d 'type=conta_corrente' \
-d 'conta_dv=1' \
-d 'document_number=26268738888' \
-d 'legal_name=API BANK ACCOUNT'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

bank_account = PagarMe::BankAccount.new({
    :bank_code => '237',
    :agencia => '1935',
    :agencia_dv => '9',
    :conta => '23398',
    :conta_dv => '9',
    :type => 'conta_corrente',
    :legal_name => 'foo bar loem',
    :document_number => '111.111.111-11'
})

bank_account.create
<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $account = new Pagarme_Bank_Account(array(
        "bank_code" => "341",
        "agencia" => "0932",
        "agencia_dv" => "5",
        "conta" => "58054",
        "conta_dv" => "1",
        "type" => "conta_corrente",
        "document_number" => "26268738888",
        "legal_name" => "API BANK ACCOUNT"
    ));
    $account->create();
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

BankAccount b = new BankAccount();
b.Agencia = "0192";
b.AgenciaDv = "0";
b.Conta = "03245";
b.ContaDv = "0";
b.BankCode = "0341";
b.DocumentNumber = "26268738888";
b.LegalName = "API BANK ACCOUNT";
b.Save();

Cria uma conta bancária para futuros pagamentos.

JSON Retornado (Exemplo)

{
    "object": "bank_account",
    "id": 4840,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:35:40.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
bank_code
obrigatório
Código do banco
OBS: Deve conter 3 caracteres, apenas números
agencia
obrigatório
Agência onde sua conta foi criada
OBS: Limite de 5 caracteres, apenas números
agencia_dv Dígito verificador da sua agência
OBS: Deve conter 1 dígito, apenas números
conta
obrigatório
Número da conta bancária
OBS: Limite de 13 caracteres, apenas números
conta_dv
obrigatório
Dígito verificador da conta
OBS: Limite de 2 caracteres, apenas alfanuméricos
type
default: conta_corrente
Tipo da conta bancária
Valores possíveis: conta_corrente, conta_poupanca, conta_corrente_conjunta, conta_poupanca_conjunta
document_number
obrigatório
Documento identificador do titular da conta (cpf ou cnpj)
Ex: 35146484252
legal_name
obrigatório
Nome completo (se pessoa física) ou razão social (se pessoa jurídica)

Retornando uma conta bancária

GET https://api.pagar.me/1/bank_accounts/:id

curl -X GET https://api.pagar.me/1/bank_accounts/4840 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

bank_account = PagarMe::BankAccount.find_by_id("4840")
<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $bank_account = PagarMe_Bank_Account::findById("4840");
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var account = PagarMeService.GetDefaultService().BankAccounts.Find("4840");

Através dessa rota você consegue retornar os dados de uma conta bancária específica.

JSON Retornado (Exemplo)

{
    "object": "bank_account",
    "id": 4840,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:35:40.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da conta bancária desejada

Retornando várias contas bancárias

GET https://api.pagar.me/1/bank_accounts

curl -X GET https://api.pagar.me/1/bank_accounts \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'count=3' \
-d 'page=2'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

bank_accounts = PagarMe::BankAccount.find_by({ bank_code: '237' })
<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $accounts = PagarMe_Bank_Account::all(2, 3);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var accounts = PagarMeService.GetDefaultService().BankAccounts.FindAll(new BankAccount());

Através dessa rota você consegue retornar os dados de várias contas bancárias.

JSON Retornado (Exemplo)

[{
    "object": "bank_account",
    "id": 4841,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:40:51.000Z"
}, {
    "object": "bank_account",
    "id": 4840,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:35:40.000Z"
}, {
    "object": "bank_account",
    "id": 4839,
    "bank_code": "341",
    "agencia": "0932",
    "agencia_dv": "5",
    "conta": "58054",
    "conta_dv": "1",
    "type": "conta_corrente",
    "document_type": "cpf",
    "document_number": "26268738888",
    "legal_name": "API BANK ACCOUNT",
    "charge_transfer_fees": false,
    "date_created": "2015-03-19T15:35:14.000Z"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de conta bancária
page
default: 1
Útil para implementação de uma paginação de resultados

Recebedores

Objeto recipient

Objeto recipient

{
    "object": "recipient",
    "id": "re_ci9bucss300h1zt6dvywufeqc",
    "bank_account": {
        "object": "bank_account",
        "id": 4841,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:40:51.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "automatic_anticipation_enabled": true,
    "anticipatable_volume_percentage": 85,
    "date_created": "2015-05-05T21:41:48.000Z",
    "date_updated": "2015-05-05T21:41:48.000Z"
}

Objeto contendo os dados de um recebedor.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: recipient
id
String
Identificador do recebedor
bank_account
Object
Objeto contendo os dados bancários do recebedor
transfer_enabled
Boolean
Identifica se o recebedor está habilitado para receber automaticamente ou não
last_transfer
String
Data da última transferência (ISODate)
transfer_interval
String
Frequência na qual o recebedor irá ser pago.
Valores possíveis: daily, weekly, monthly
transfer_day
Number
Dia no qual o recebedor vai ser pago. Para cada transfer_day, existe uma faixa de pagamento possível.
weekly: 1 a 5, onde 1 é segunda-feira e 5 é sexta-feira
monthly: 1 a 31
automatic_anticipation_enabled
Boolean
Identifica se o recebedor está habilitado para receber automaticamente ou não o valor disponível para antecipação
anticipatable_volume_percentage
Number
Porcentagem do valor passível de antecipação que será antecipado automaticamente
date_created
String
Data de criação do recebedor (ISODate)
date_updated
String
Data de atualização do recebedor

Criando um recebedor

POST https://api.pagar.me/1/recipients

curl -X POST https://api.pagar.me/1/recipients \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'transfer_interval=weekly' \
-d 'transfer_day=5' \
-d 'transfer_enabled=true' \
-d 'automatic_anticipation_enabled=true' \
-d 'anticipatable_volume_percentage=85'
-d 'bank_account_id=4841'
<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $recipient = new PagarMe_Recipient(array(
        "transfer_interval" => "weekly",
        "transfer_day" => 5,
        "transfer_enabled" => true,
        "automatic_anticipation_enabled" => true,
        "anticipatable_volume_percentage" => 85,
        "bank_account_id" => 4841
    ));
    $recipient->create();
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Recipient recipient = new Recipient();
recipient.TransferInterval = TransferInterval.Weekly;
recipient.TransferDay = 5;
recipient.TransferEnabled = true;
recipient.BankAccount = PagarMeService.GetDefaultService().BankAccounts.Find("4840");
recipient.Save();

Com essa rota você consegue criar um recebedor, definindo o período que ele irá receber os pagamentos e qual a conta bancária que será utilizada para envio dos pagamentos.

JSON Retornado (Exemplo)

{
    "object": "recipient",
    "id": "re_ci9bucss300h1zt6dvywufeqc",
    "bank_account": {
        "object": "bank_account",
        "id": 4841,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:40:51.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "automatic_anticipation_enabled": true,
    "anticipatable_volume_percentage": 85,
    "date_created": "2015-05-05T21:41:48.000Z",
    "date_updated": "2015-05-05T21:41:48.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
transfer_interval
obrigatório
Frequência na qual o recebedor irá ser pago.
Valores possíveis: daily, weekly, monthly
transfer_day
obrigatório
Dia no qual o recebedor vai ser pago.
transfer_enabled
obrigatório
Variável que indica se o recebedor pode receber os pagamentos automaticamente
bank_account_id
obrigatório*
Identificador de uma conta bancária previamente criada. Caso você não tenha essa informação, você pode passar os parâmetros necessários para criação de uma conta bancária
bank_account
obrigatório*
Objeto contendo os dados bancários do recebedor. Este objeto, e as suas respectivas propriedades, serão obrigatórios caso não seja informado um bank_account_id
bank_account[bank_code] Código do banco do recebedor
bank_account[agencia] Agência da conta do recebedor
bank_account[conta] Número da conta bancária do recebedor
bank_account[conta_dv] Dígito verificador da conta do recebedor
bank_account[document_number] CPF ou CNPJ do recebedor
bank_account[legal_name] Nome completo ou razão social do recebedor

Retornando todos os recebedores

GET https://api.pagar.me/1/recipients

curl -X GET https://api.pagar.me/1/recipients \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

page = 1
count = 10
recipients = PagarMe::Recipient.all(page, count)
# ou
recipients = PagarMe::Recipient.all # => default page = 1, count = 10
<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $recipients = PagarMe_Recipient::all(1, 10);
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";


var pagarmeRequest = PagarMeService.GetDefaultService().Recipients.BuildFindQuery(new Recipient ());

// Mude/Adicione a query String o que você deseja, e.g: count = 50
var newTupleForQueryString = Tuple.Create("count", "50");

pagarmeRequest.Query.Add(newTupleForQueryString);

var recipients = PagarMeService.GetDefaultService ().Recipients.FinishFindQuery (pagarmeRequest.Execute ());




Retorna um Array de objetos com todos os recebedores criados pela sua companhia.

JSON Retornado (Exemplo)

[{
    "object": "recipient",
    "id": "re_ci7nhf1ay0007n016wd5t22nl",
    "bank_account": {
        "object": "bank_account",
        "id": 4901,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": null,
        "conta": "58999",
        "conta_dv": "3",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "RECIPIENT TEST",
        "charge_transfer_fees": true,
        "date_created": "2015-03-24T15:53:17.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "date_created": "2015-03-24T15:53:27.000Z",
    "date_updated": "2015-03-24T15:53:27.000Z"
}, {
    "object": "recipient",
    "id": "re_ci7nheu0m0006n016o5sglg9t",
    "bank_account": {
        "object": "bank_account",
        "id": 4901,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": null,
        "conta": "58999",
        "conta_dv": "3",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "RECIPIENT TEST",
        "charge_transfer_fees": true,
        "date_created": "2015-03-24T15:53:17.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "date_created": "2015-03-24T15:53:17.000Z",
    "date_updated": "2015-03-24T15:53:17.000Z"
}, {
    "object": "recipient",
    "id": "re_ci7ng63iv00bdp8164c05ggi9",
    "bank_account": {
        "object": "bank_account",
        "id": 4841,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:40:51.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "date_created": "2015-03-24T15:18:30.000Z",
    "date_updated": "2015-03-24T15:18:30.000Z"
}, {
    "object": "recipient",
    "id": "re_ci76hxnym00b8dw16y3hdxb21",
    "bank_account": {
        "object": "bank_account",
        "id": 1774,
        "bank_code": "000",
        "agencia": "0000",
        "agencia_dv": null,
        "conta": "00000",
        "conta_dv": "0",
        "document_type": "cnpj",
        "document_number": "00000000000000",
        "legal_name": "CONTA BANCARIA DE TESTES",
        "charge_transfer_fees": true,
        "date_created": "2015-03-12T18:35:51.000Z"
    },
    "transfer_enabled": false,
    "last_transfer": null,
    "transfer_interval": null,
    "transfer_day": null,
    "date_created": "2015-03-12T18:35:51.000Z",
    "date_updated": "2015-03-12T18:35:51.000Z"
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos recebedores
page
default: 1
Útil para implementação de uma paginação de resultados

Retornando um recebedor

GET https://api.pagar.me/1/recipients/:id

curl -X GET https://api.pagar.me/1/recipients/re_ci7nhf1ay0007n016wd5t22nl \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'


<?php
    require("pagarme-php/Pagarme.php");
    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $recipient = PagarMe_Recipient::findById("re_ci7nhf1ay0007n016wd5t22nl");
PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

var recipient = PagarMeService.GetDefaultService().Recipients.Find("re_ci7nhf1ay0007n016wd5t22nl");

Retorna um objeto com os dados de um recebedor criado pela sua companhia.

JSON Retornado (Exemplo)

{
    "object": "recipient",
    "id": "re_ci7nhf1ay0007n016wd5t22nl",
    "bank_account": {
        "object": "bank_account",
        "id": 4901,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": null,
        "conta": "58999",
        "conta_dv": "3",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "RECIPIENT TEST",
        "charge_transfer_fees": true,
        "date_created": "2015-03-24T15:53:17.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "date_created": "2015-03-24T15:53:27.000Z",
    "date_updated": "2015-03-24T15:53:27.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id de recebedor desejado

Atualizando um recebedor

PUT https://api.pagar.me/1/recipients/:id

curl -X PUT https://api.pagar.me/1/recipients/re_ci7nhf1ay0007n016wd5t22nl \
-d 'anticipatable_volume_percentage=80' \
-d 'bank_account_id=5233' \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Após criar um recebedor, você pode atualizar todas as configurações do mesmo.

JSON Retornado (Exemplo)

{
    "object": "recipient",
    "id": "re_ci7nhf1ay0007n016wd5t22nl",
    "bank_account": {
        "object": "bank_account",
        "id": 5233,
        "bank_code": "341",
        "agencia": "0721",
        "agencia_dv": null,
        "conta": "02733",
        "conta_dv": "3",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "RECIPIENT TEST",
        "charge_transfer_fees": true,
        "date_created": "2015-03-24T15:53:17.000Z"
    },
    "transfer_enabled": true,
    "last_transfer": null,
    "transfer_interval": "weekly",
    "transfer_day": 5,
    "anticipatable_volume_percentage": 80,
    "automatic_anticipation_enabled": true,
    "date_created": "2015-03-24T15:53:27.000Z",
    "date_updated": "2015-03-29T15:53:27.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
transfer_interval
obrigatório
Frequência na qual o recebedor irá ser pago.
Valores possíveis: daily, weekly, monthly
transfer_day
obrigatório
Dia no qual o recebedor vai ser pago.
transfer_enabled
obrigatório
Variável que indica se o recebedor pode receber os pagamentos automaticamente
anticipatable_volume_percentage Limite de volume que pode ser antecipado pelo recebedor, no intervalo de 1 a 100.
bank_account_id
obrigatório*
Identificador de uma conta bancária previamente criada. Caso você não tenha essa informação, você pode passar os parâmetros necessários para criação de uma conta bancária.
OBS: Para atualizar a conta bancária, ela deve obrigatóriamente possuir o mesmo CPF ou CNPJ da conta bancária anterior
bank_account
obrigatório*
Objeto contendo os dados bancários do recebedor. Este objeto, e as suas respectivas propriedades, serão obrigatórios caso não seja informado um bank_account_id
OBS: Para atualizar a conta bancária, ela deve obrigatóriamente possuir o mesmo CPF ou CNPJ da conta bancária anterior
bank_account[bank_code] Código do banco do recebedor
bank_account[agencia] Agência da conta do recebedor
bank_account[conta] Número da conta bancária do recebedor
bank_account[conta_dv] Dígito verificador da conta do recebedor
bank_account[document_number] CPF ou CNPJ do recebedor
bank_account[legal_name] Nome completo ou razão social do recebedor

Operações de saldo de um recebedor

GET https://api.pagar.me/1/recipients/:recipient_id/balance/operations

curl -X GET https://api.pagar.me/1/recipients/re_ci7nhf1ay0007n016wd5t22nl/balance/operations \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'count=3' \
-d 'page=1'

Retorna as movimentações que aconteceram na conta do recebedor. OBS: Retorna somente as movimentações com status available (disponível).

JSON Retornado (Exemplo)

[{
    "object": "balance_operation",
    "id": 4861,
    "status": "available",
    "balance_amount": 3019898,
    "balance_old_amount": 2920013,
    "movement_type": "payable",
    "amount": 100000,
    "fee": 115,
    "date_created": "2015-03-06T21:00:31.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1297,
        "status": "paid",
        "amount": 100000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185537,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T21:00:31.000Z"
    }
}, {
    "object": "balance_operation",
    "id": 4852,
    "status": "available",
    "balance_amount": 2920013,
    "balance_old_amount": 2910128,
    "movement_type": "payable",
    "amount": 10000,
    "fee": 115,
    "date_created": "2015-03-06T18:44:42.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1294,
        "status": "paid",
        "amount": 10000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185507,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T18:44:42.000Z"
    }
}, {
    "object": "balance_operation",
    "id": 4840,
    "status": "available",
    "balance_amount": 2910128,
    "balance_old_amount": 2880243,
    "movement_type": "payable",
    "amount": 30000,
    "fee": 115,
    "date_created": "2015-03-05T19:32:36.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1290,
        "status": "paid",
        "amount": 30000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185273,
        "payment_date": "2015-03-05T03:00:00.000Z",
        "date_created": "2015-03-05T19:32:35.000Z"
    }
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de operações de saldo
page
default: 1
Útil para implementação de uma paginação de resultados

Operação de saldo específica de um recebedor

GET https://api.pagar.me/1/recipients/:recipient_id/balance/operations/:id

curl -X GET https://api.pagar.me/1/recipients/re_ci7nhf1ay0007n016wd5t22nl/balance/operations \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna uma movimentação de saldo que aconteceu na conta do recebedor.

JSON Retornado (Exemplo)

{
    "object": "balance_operation",
    "id": 4861,
    "status": "available",
    "balance_amount": 3019898,
    "balance_old_amount": 2920013,
    "movement_type": "payable",
    "amount": 100000,
    "fee": 115,
    "date_created": "2015-03-06T21:00:31.000Z",
    "movement_object": {
        "object": "payable",
        "id": 1297,
        "status": "paid",
        "amount": 100000,
        "fee": 115,
        "installment": 1,
        "transaction_id": 185537,
        "payment_date": "2015-03-06T03:00:00.000Z",
        "date_created": "2015-03-06T21:00:31.000Z"
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:recipient_id
obrigatório
Id de recebedor desejado
:id
obrigatório
Id da operação de saldo desejada

Antecipações

Através da rota /recipients/:recipient_id/bulk_anticipations e suas derivadas, você pode criar antecipações, obter os limites de antecipação, cancelar, dentre outras atividades relacionadas a estas.

Objeto bulk_anticipation

Objeto bulk_anticipation

{
    "amount": 600005, 
    "anticipation_fee": 44940, 
    "date_created": "2015-10-23T05:17:54.000Z", 
    "date_updated": "2015-10-23T05:17:54.000Z", 
    "fee": 30025, 
    "id": "ba_cig37i5s6004xor6e5cefsjsp", 
    "object": "bulk_anticipation", 
    "payment_date": "2015-12-13T02:00:00.000Z", 
    "status": "pending", 
    "timeframe": "start", 
    "type": "spot"
}

Ao criar ou atualizar uma antecipação, este será o objeto que você irá receber como resposta em cada etapa do processo de efetivação da antecipação.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: bulk_anticipation
status
String
Status atual da antecipação
Valores possíveis: building, pending, approved, refused, canceled
timeframe
String
Período de onde os recebíveis irão vir, do ínicio ou do fim de sua agenda de recebíveis. Ex: Caso você escolha do começo (start), seu custo será menor mas há maior impacto no seu fluxo de caixa.
Valores possíveis: start, end
payment_date
String
Data de pagamento da antecipação.
amount
Number
Valor bruto, em centavos, da antecipação criada.
fee
Number
Taxa de adquirência relacionada aos recebíveis antecipados.
anticipation_fee
Number
Taxa de antecipação relacionada aos recebíveis antecipados.
id
String
Identificador da antecipação

Criando uma antecipação

POST https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations

curl -X POST https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/ \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'timeframe=start' \
-d 'payment_date=1462999741870' \
-d 'requested_amount=561599' \
-d 'building=true' \

Para criar uma antecipação, você deve usar a rota /recipients/:recipient_id/bulk_anticipations.

JSON retornado (exemplo):

{
    "amount": 600005, 
    "anticipation_fee": 44940, 
    "date_created": "2015-10-23T05:17:54.000Z", 
    "date_updated": "2015-10-23T05:17:54.000Z", 
    "fee": 30025, 
    "id": "ba_cig37i5s6004xor6e5cefsjsp", 
    "object": "bulk_anticipation", 
    "payment_date": "2015-12-13T02:00:00.000Z", 
    "status": "pending", 
    "timeframe": "start", 
    "type": "spot"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
payment_date
obrigatório
Data que você deseja receber a antecipação em sua conta Pagar.me
timeframe
obrigatório
Valores: start, end
Define o período de onde os recebíveis serão escolhidos. start define recebíveis próximos, perto de serem pagos, e end define recebíveis longes, no final de todos recebíveis que você possui para receber
requested_amount
obrigatório
Valor líquido, em centavos, que você deseja receber de antecipação
building
Valores: true ou false
Define se a antecipação deve retornar com status building, para building=true, para possíveis ajustes no valor da antecipação, ou se a transferência é criada diretamente, para building=false e a antecipação já vai diretamente para a aprovação do Pagar.me. OBS: Caso você deseje alterar a antecipação após confirmar, você tem 5 minutos antes que a antecipação building seja destruída automaticamente

Obtendo os limites de antecipação

GET https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations/limits

curl -X GET https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/limits \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'timeframe=start' \
-d 'payment_date=1462999741870' \

Retorna os limites máximos e mínimos de antecipação que aquele recebedor poder fazer.

JSON Retornado (exemplo):

{
    "maximum": {
        "amount": 23000, 
        "anticipation_fee": 1000, 
        "fee": 2633
    }, 
    "minimum": {
        "amount": 10000, 
        "anticipation_fee": 200, 
        "fee": 1543
    }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:recipient_id
obrigatório
Identificador do recebedor
timeframe
obrigatório
Valores: start, end
Define o período de onde os recebíveis serão escolhidos. start define recebíveis próximos, perto de serem pagos, e end define recebíveis longes, no final de todos recebíveis que você possui para receber
payment_date
obrigatório
Data de pagamento deseja para a antecipação, ou seja, data em que você deseja que o dinheiro esteja em sua conta Pagar.me disponível para saque

Confirmando uma antecipação building

POST https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations/:id/confirm

curl -X POST https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/ba_as2i4234js23in123/confirm \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Confirma a antecipação criada, assim seu status passará para pending, ou seja, está criada com sucesso e aguardando aprovação do Pagar.me.

JSON Retornado (exemplo):

{
    "amount": 600005, 
    "anticipation_fee": 44940, 
    "date_created": "2015-10-23T05:17:54.000Z", 
    "date_updated": "2015-10-23T05:17:54.000Z", 
    "fee": 30025, 
    "id": "ba_cig37i5s6004xor6e5cefsjsp", 
    "object": "bulk_anticipation", 
    "payment_date": "2015-12-13T02:00:00.000Z", 
    "status": "pending", 
    "timeframe": "start", 
    "type": "spot"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Cancelando uma antecipação pending

POST https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations/:id/cancel

curl -X POST https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/ba_as2i4234js23in123/cancel \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Cancela uma antecipação com status pending. Enquanto a antecipação foi criada e o Pagar.me ainda não a confirmou, você pode cancelar a antecipação a qualquer momento.

JSON Retornado (exemplo):

{
    "amount": 600005, 
    "anticipation_fee": 44940, 
    "date_created": "2015-10-23T05:17:54.000Z", 
    "date_updated": "2015-10-23T05:17:54.000Z", 
    "fee": 30025, 
    "id": "ba_cig37i5s6004xor6e5cefsjsp", 
    "object": "bulk_anticipation", 
    "payment_date": "2015-12-13T02:00:00.000Z", 
    "status": "canceled", 
    "timeframe": "start", 
    "type": "spot"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Deletando uma antecipação building

DELETE https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations/:id/

curl -X DELETE https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/ba_as2i4234js23in123/ \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Enquanto você está construindo uma antecipação (status building), você pode cancelar o processo deletando a criação daquela antecipação. Lembrando que caso você não a destrua no status building, após 5 minutos ela é automaticamente destruída.

JSON Retornado (exemplo):

[
]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)

Retornando todas as antecipações

GET https://api.pagar.me/1/recipients/:recipient_id/bulk_anticipations/

curl -X GET https://api.pagar.me/1/recipients/re_a123sd18das9d164/bulk_anticipations/ \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna um Array contendo objetos de antecipações.

JSON Retornado (exemplo):

[
    {
        "amount": 600005, 
        "anticipation_fee": 44940, 
        "date_created": "2015-10-23T05:17:54.000Z", 
        "date_updated": "2015-10-23T05:17:54.000Z", 
        "fee": 30025, 
        "id": "ba_cig37i5s6004xor6e5cefsjsp", 
        "object": "bulk_anticipation", 
        "payment_date": "2015-12-13T02:00:00.000Z", 
        "status": "pending", 
        "timeframe": "start", 
        "type": "spot"
    }, 
    {
        "amount": 220439, 
        "anticipation_fee": 24271, 
        "date_created": "2015-10-21T17:09:09.000Z", 
        "date_updated": "2015-10-21T17:09:43.000Z", 
        "fee": 11028, 
        "id": "ba_cig1214ng000sii6eryzz4pjb", 
        "object": "bulk_anticipation", 
        "payment_date": "2015-10-23T02:00:00.000Z", 
        "status": "canceled", 
        "timeframe": "start", 
        "type": "spot"
    }, 
    {
        "amount": 406065, 
        "anticipation_fee": 16842, 
        "date_created": "2015-10-21T17:08:41.000Z", 
        "date_updated": "2015-10-22T12:20:51.000Z", 
        "fee": 20313, 
        "id": "ba_cig120jcg000rii6evg415z4w", 
        "object": "bulk_anticipation", 
        "payment_date": "2015-10-23T02:00:00.000Z", 
        "status": "canceled", 
        "timeframe": "start", 
        "type": "spot"
    }]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de transação
page
default: 1
Útil para implementação de uma paginação de resultados

Regras do split

Objeto split_rule

Objeto split_rule

{
    "object": "split_rule",
    "id": "sr_ci7ntawl1001s2m164zrbp7tz",
    "recipient_id": "re_ci7nhf1ay0007n016wd5t22nl",
    "charge_processing_fee": true,
    "liable": true,
    "percentage": 30,
    "amount": null,
    "date_created": "2015-03-24T21:26:09.000Z",
    "date_updated": "2015-03-24T21:26:09.000Z"
}

Objeto que contém as informações das regras da divisão do valor gerado na transação.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: split_rule
id
String
Identificador da regra de divisão
recipient_id
obrigatório
String
Recebedor que irá receber os valores descritos nessa regra
charge_processing_fee
Boolean
Define se o recebedor dessa regra irá ser cobrado pela taxa da Pagar.me
liable
Boolean
Define se o recebedor vinculado a essa regra irá se responsabilizar pelo risco da transação (chargeback)
percentage
obrigatório*
Number
Porcentagem que o recebedor vai receber do valor da transação.
OBS: Caso percentage seja utilizada, não é necessário passar o parâmetro amount
amount
obrigatório*
Number
Valor que o recebedor vai receber da transação.
OBS: Caso amount seja utilizado, não é necessário passar o parâmetro percentage
date_created
String
Data da criação da split_rule
date_updated
String
Data de atualização da split_rule

Transferências

Objeto transfer

Objeto transfer

{
    "object": "transfer",
    "id": 480,
    "amount": 13000,
    "type": "doc",
    "status": "pending_transfer",
    "fee": 367,
    "funding_estimated_date": "2015-03-21T15:44:14.417Z",
    "bank_account": {
        "object": "bank_account",
        "id": 4840,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:35:40.000Z"
    },
    "date_created": "2015-03-20T15:44:14.000Z"
}

Objeto retornado ao se criar uma transferência bancária.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: transfer
id
Number
Número identificador da transação
amount
Number
Valor, em centavos, do valor transferido
type
String
Tipo da transação.
Valores possíveis: ted, doc ou credito_em_conta
status
String
Estado no qual a transação se encontra.
Valores possíveis: pending_transfer, transferred, failed, processing ou canceled
fee
Number
Taxa cobrada pela transferência, em centavos.
funding_date
String
Data da ocorrência da transferência
funding_estimated_date
String
Data estimada para efetivação da transferência (ISODate)
transaction_id
Number
Identificador da transação estornada
bank_account
Object
Objeto contendo os dados da conta bancária que irá receber a transferência
date_created
String
Data da criação da transferência (ISODate)

Criando uma transferência

POST https://api.pagar.me/1/transfers

curl -X POST https://api.pagar.me/1/transfers \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'amount=13000' \
-d 'bank_account_id=4840'

Realiza uma transferência para uma conta bancária previamente criada.

JSON Retornado (Exemplo)

{
    "object": "transfer",
    "id": 480,
    "amount": 13000,
    "type": "doc",
    "status": "pending_transfer",
    "fee": 367,
    "funding_estimated_date": "2015-03-21T15:44:14.417Z",
    "bank_account": {
        "object": "bank_account",
        "id": 4840,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:35:40.000Z"
    },
    "date_created": "2015-03-20T15:44:14.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
amount
obrigatório
Valor, em centavos, a ser transferido para uma determinada conta bancária
bank_account_id
obrigatório*
Número identificador da conta bancária que irá receber a transferência.
OBS: Caso tenha sido passado um recipient_id, se o parâmetro bank_account_id for omitido, o valor será depositado na conta bancária definida no recebedor informado
recipient_id
obrigatório*
Indica que o valor da transferência sairá da conta do recebedor identificado por este parâmetro.
OBS: Caso o recipient_id seja passado, não é necessário passar bank_account_id

Vendo dados de uma transferência

GET https://api.pagar.me/1/transfers/:id

curl -X GET https://api.pagar.me/1/transfers/484 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna os dados de uma transferência previamente realizada.

JSON Retornado (Exemplo)

{
    "object": "transfer",
    "id": 480,
    "amount": 13000,
    "type": "doc",
    "status": "pending_transfer",
    "fee": 367,
    "funding_estimated_date": "2015-03-21T15:44:14.417Z",
    "bank_account": {
        "object": "bank_account",
        "id": 4840,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:35:40.000Z"
    },
    "date_created": "2015-03-20T15:44:14.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da transferência desejada

Vendo dados de várias transferências

GET https://api.pagar.me/1/transfers

curl -X GET https://api.pagar.me/1/transfers \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Retorna os dados de todas as transferências previamente realizadas.

JSON Retornado (Exemplo)

{
    "object": "transfer",
    "id": 480,
    "amount": 13000,
    "type": "doc",
    "status": "pending_transfer",
    "fee": 367,
    "funding_estimated_date": "2015-03-21T15:44:14.417Z",
    "bank_account": {
        "object": "bank_account",
        "id": 4840,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:35:40.000Z"
    },
    "date_created": "2015-03-20T15:44:14.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos de transferência
page
default: 1
Útil para implementação de uma paginação de resultados

Cancelando uma transferência

POST https://api.pagar.me/1/transfers/:id/cancel

curl -X POST https://api.pagar.me/1/transfers/480/cancel \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0'

Cancela uma transferência previamente realizada.

JSON Retornado (Exemplo)

{
    "object": "transfer",
    "id": 480,
    "amount": 13000,
    "type": "doc",
    "status": "canceled",
    "fee": 367,
    "funding_date": null,
    "funding_estimated_date": "2015-03-21T15:44:14.000Z",
    "transaction_id": null,
    "bank_account": {
        "object": "bank_account",
        "id": 4840,
        "bank_code": "341",
        "agencia": "0932",
        "agencia_dv": "5",
        "conta": "58054",
        "conta_dv": "1",
        "document_type": "cpf",
        "document_number": "26268738888",
        "legal_name": "API BANK ACCOUNT",
        "charge_transfer_fees": false,
        "date_created": "2015-03-19T15:35:40.000Z"
    },
    "date_created": "2015-03-20T15:44:14.000Z"
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id da transferência a ser cancelada

Clientes

Criando um cliente

POST https://api.pagar.me/1/customers/:id

curl -X POST https://api.pagar.me/1/customers \
-d "api_key=ak_test_T12378asdgyug234DoGKgN234897dsf98" \
-d "document_number=18152564000105" \
-d "name=nome do cliente" \
-d "email=eee@email.com" \
-d "born_at=13121988" \
-d "gender=M" \
-d "address[street]=rua qualquer" \
-d "address[complementary]=apto" \
-d "address[street_number]=13" \
-d "address[neighborhood]=pinheiros" \
-d "address[city]=sao paulo" \
-d "address[state]=SP" \
-d "address[zipcode]=05444040" \
-d "address[country]=Brasil" \
-d "phone[ddi]=55" \
-d "phone[ddd]=11" \
-d "phone[number]=999887766"
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

customer = PagarMe::Card.new({
    :document_number => "18152564000105",
    :name => "nome do cliente",
    :email => "eee@email.com",
    :born_at => 13121988,
    :gender => "M",
    :address => {
        :street => "rua qualquer",
        :complementary => "apto",
        :street_number => 13,
        :neighborhood => "pinheiros",
        :city => "sao paulo",
        :state => "SP",
        :zipcode => "05444040",
        :country => "Brasil"
    },
    :phone => {
        :ddi => 55,
        :ddd => 11,
        :number => 999887766
    }
})

customer.create
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $customer = new PagarMe_Customer(array(
      "document_number" => "18152564000105",
      "name" => "nome do cliente",
      "email" => "eee@email.com",
      "born_at" => 13121988,
      "gender" => "M",
      "address" => array(
        "street" => "rua qualquer",
        "complementary" => "apto",
        "street_number" => 13,
        "neighborhood" => "pinheiros",
        "city" => "sao paulo",
        "state" => "SP",
        "zipcode" => "05444040",
        "country" => "Brasil"
      ),
      "phone" => array(
        "ddi" => 55,
        "ddd" => 11,
        "number" => 999887766
      )
    ));

    $customer->create();

Através dessa rota você pode salvar os dados de um cliente no nosso banco de dados.

JSON Retornado (Exemplo)

{
    "object": "customer",
    "document_number": "18152564000105",
    "document_type": "cnpj",
    "name": "nome do cliente",
    "email": "eee@email.com",
    "born_at": "1970-01-01T03:38:41.988Z",
    "gender": "M",
    "date_created": "2015-04-10T18:38:19.000Z",
    "id": 253591,
    "phones": [{
        "object": "phone",
        "ddi": "55",
        "ddd": "11",
        "number": "999887766",
        "id": 148590
    }],
    "addresses": [{
        "object": "address",
        "street": "rua qualquer",
        "complementary": "apto",
        "street_number": "13",
        "neighborhood": "pinheiros",
        "city": "sao paulo",
        "state": "SP",
        "zipcode": "05444040",
        "country": "Brasil",
        "id": 153809
    }]
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
document_number
obrigatório
Número do CPF ou CNPJ do cliente
name
obrigatório
Nome ou razão social do comprador
email
obrigatório
E-mail do comprador
born_at Data de nascimento
gender Gênero
address[street]
obrigatório
Nome da rua
address[complementary] Complemento do endereço
address[street_number]
obrigatório
Número do imóvel
address[neighborhood]
obrigatório
Bairro
address[city] Cidade
address[state] Estado
address[zipcode]
obrigatório
Código postal (CEP)
address[country] País
phone[ddi] DDI (Discagem Direta Internacional)
phone[ddd]
obrigatório
DDD (Discagem Direta à Distância)
phone[number]
obrigatório
Número do telefone (máximo de 9 dígitos, apenas números)

Retornando dados do cliente

GET https://api.pagar.me/1/customers/:id

curl -X GET https://api.pagar.me/1/customers/11222 \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' 
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

customer = PagarMe::Customer.find_by_id(11222)
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $customer = PagarMe_Customer::findById(11222);

Através da rota /customers/:id você recebe todos os dados do seu cliente, previamente cadastrado na realização de uma transação, quando os dados deste é passado pelos parâmetros customer[nomeDaPropriedade].

JSON Retornado (Exemplo)

{
    "object": "customer",
    "document_number": "31442053332",
    "document_type": "cpf",
    "name": "api customer fullname",
    "email": "api@customer.com.br",
    "born_at": null,
    "gender": null,
    "date_created": "2014-10-13T10:51:38.000Z",
    "id": 11222,
    "phones": [{
        "object": "phone",
        "ddi": "55",
        "ddd": "22",
        "number": "99887766",
        "id": 12345
    }],
    "addresses": [{
        "object": "address",
        "street": "Rua Veneza",
        "complementary": null,
        "street_number": "31",
        "neighborhood": "São Paulo",
        "city": "Av API",
        "state": "SP",
        "zipcode": "15078731",
        "country": "Brasil",
        "id": 13743
    }]
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
:id
obrigatório
Id do cliente desejado

Retornando dados de clientes

GET https://api.pagar.me/1/customers

curl -X GET https://api.pagar.me/1/customers \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'page=1' \
-d 'count=2'
require 'pagarme'

PagarMe.api_key = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0"

card = PagarMe::Card.all(1, 2)
<?php
    require("pagarme-php/Pagarme.php");

    Pagarme::setApiKey("ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0");

    $customers = PagarMe_Customer::all(1, 2);

Retorna todos os clientes cadastrados em sua conta.

JSON Retornado (Exemplo)

[{
    "object": "customer",
    "document_number": "18152564000105",
    "document_type": "cnpj",
    "name": "nome do cliente",
    "born_at": "1970-01-01T03:38:41.988Z",
    "gender": "M",
    "date_created": "2015-04-10T22:04:18.000Z",
    "id": 15132,
    "phones": [{
        "object": "phone",
        "ddi": "55",
        "ddd": "11",
        "number": "999887766",
        "id": 13746
    }],
    "addresses": [{
        "object": "address",
        "street": "rua qualquer",
        "complementary": "apto",
        "street_number": "13",
        "neighborhood": "pinheiros",
        "city": "sao paulo",
        "state": "SP",
        "zipcode": "05444040",
        "country": "Brasil",
        "id": 13958
    }]
}, {
    "object": "customer",
    "document_number": "18152564000105",
    "document_type": "cnpj",
    "email": "eee@email.com",
    "born_at": "1970-01-01T03:38:41.988Z",
    "gender": "M",
    "date_created": "2015-04-10T22:03:49.000Z",
    "id": 15131,
    "phones": [{
        "object": "phone",
        "ddi": "55",
        "ddd": "11",
        "number": "999887766",
        "id": 13745
    }],
    "addresses": [{
        "object": "address",
        "street": "rua qualquer",
        "complementary": "apto",
        "street_number": "13",
        "neighborhood": "pinheiros",
        "city": "sao paulo",
        "state": "SP",
        "zipcode": "05444040",
        "country": "Brasil",
        "id": 13957
    }]
}]
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
count
default: 10
Retorna n objetos customer
page
default: 1
Útil para implementação de uma paginação de resultados

Buscas avançadas

ElasticSearch

GET https://api.pagar.me/1/search

curl -X GET https://api.pagar.me/1/search \
-d 'api_key=ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0' \
-d 'type=transaction' \
-d 'query=
{
  "query": {
    "filtered": {
      "query": {"match_all": {}},
      "filter": {
        "and": [
          {
            "range": {
              "date_created": {
                "lte": "2016-01-31",
                "gte": "2016-01-01"
              }
            }
          },
          {
            "or": [
              {"term": {"status": "waiting_payment"}},
              {"term": {"status": "paid"}}
            ]
          }
        ]
      }
    }
  },
  "sort": [
    {
      "date_created": {"order": "desc"}
    }
  ],
  "size": 5,
  "from": 0
}'

Através da rota /search você consegue fazer consultas usando o ElasticSearch em nossa base dados. Essas consultas são extremamente otimizadas, e permitem que você minere os dados de suas transações e demais informações armazenadas no Pagar.me da forma que lhe for mais conveniente.

Um exemplo de como utilizar a Query DSL do ElasticSearch é exibido nesta sessão. No exemplo ao lado, buscamos por objetos do tipo transaction. Usamos o filtro range para filtrar transações com date_created entre 1º de Janeiro de 2016 e 31 de Janeiro de 2016. Da mesma maneira, usamos uma combinação de filtros or e term para filtrar todas as transações que contanham status como paid ou como waiting_payment. Por fim, limitamos nossa busca a 5 elementos com o parâmetro size, ordenamos os resultados por ordem descrescente de date_created com o parâmetro sort, e por fim especificamos a página de resultados desejada com o parâmetro from.

JSON Retornado (Exemplo)

{
  "took": 7,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 17,
    "max_score": null,
    "hits": [
      {
        "_index": "pagarme",
        "_type": "transaction",
        "_id": "353328",
        "_score": null,
        "_source": {
          "object": "transaction",
          "status": "waiting_payment",
          "refuse_reason": null,
          "status_reason": "acquirer",
          "acquirer_response_code": null,
          "acquirer_name": "development",
          "authorization_code": null,
          "soft_descriptor": null,
          "tid": null,
          "nsu": null,
          "date_created": "2016-01-14T16:07:16.000Z",
          "date_updated": "2016-01-14T16:07:17.000Z",
          "amount": 23000,
          "installments": 1,
          "id": 353328,
          "cost": 0,
          "card_holder_name": null,
          "card_last_digits": null,
          "card_first_digits": null,
          "card_brand": null,
          "postback_url": null,
          "payment_method": "boleto",
          "capture_method": "ecommerce",
          "antifraud_score": null,
          "boleto_url": "https://pagar.me",
          "boleto_barcode": "1234 5678",
          "boleto_expiration_date": "2016-01-21T02:00:00.730Z",
          "referer": "api_key",
          "ip": "179.191.82.50",
          "subscription_id": null,
          "phone": null,
          "address": null,
          "customer": null,
          "card": null,
          "antifraud_metadata": {},
          "metadata": {}
        },
        "sort": [
          1452787636000
        ]
      },
      {
        "_index": "pagarme",
        "_type": "transaction",
        "_id": "353327",
        "_score": null,
        "_source": {
          "object": "transaction",
          "status": "waiting_payment",
          "refuse_reason": null,
          "status_reason": "acquirer",
          "acquirer_response_code": null,
          "acquirer_name": "development",
          "authorization_code": null,
          "soft_descriptor": null,
          "tid": null,
          "nsu": null,
          "date_created": "2016-01-14T16:07:12.000Z",
          "date_updated": "2016-01-14T16:07:12.000Z",
          "amount": 22000,
          "installments": 1,
          "id": 353327,
          "cost": 0,
          "card_holder_name": null,
          "card_last_digits": null,
          "card_first_digits": null,
          "card_brand": null,
          "postback_url": null,
          "payment_method": "boleto",
          "capture_method": "ecommerce",
          "antifraud_score": null,
          "boleto_url": "https://pagar.me",
          "boleto_barcode": "1234 5678",
          "boleto_expiration_date": "2016-01-21T02:00:00.247Z",
          "referer": "api_key",
          "ip": "179.191.82.50",
          "subscription_id": null,
          "phone": null,
          "address": null,
          "customer": null,
          "card": null,
          "antifraud_metadata": {},
          "metadata": {}
        },
        "sort": [
          1452787632000
        ]
      },
      {
        "_index": "pagarme",
        "_type": "transaction",
        "_id": "353326",
        "_score": null,
        "_source": {
          "object": "transaction",
          "status": "waiting_payment",
          "refuse_reason": null,
          "status_reason": "acquirer",
          "acquirer_response_code": null,
          "acquirer_name": "development",
          "authorization_code": null,
          "soft_descriptor": null,
          "tid": null,
          "nsu": null,
          "date_created": "2016-01-14T16:06:47.000Z",
          "date_updated": "2016-01-14T16:06:47.000Z",
          "amount": 21000,
          "installments": 1,
          "id": 353326,
          "cost": 0,
          "card_holder_name": null,
          "card_last_digits": null,
          "card_first_digits": null,
          "card_brand": null,
          "postback_url": null,
          "payment_method": "boleto",
          "capture_method": "ecommerce",
          "antifraud_score": null,
          "boleto_url": "https://pagar.me",
          "boleto_barcode": "1234 5678",
          "boleto_expiration_date": "2016-01-21T02:00:00.223Z",
          "referer": "api_key",
          "ip": "179.191.82.50",
          "subscription_id": null,
          "phone": null,
          "address": null,
          "customer": null,
          "card": null,
          "antifraud_metadata": {},
          "metadata": {}
        },
        "sort": [
          1452787607000
        ]
      },
      {
        "_index": "pagarme",
        "_type": "transaction",
        "_id": "353325",
        "_score": null,
        "_source": {
          "object": "transaction",
          "status": "waiting_payment",
          "refuse_reason": null,
          "status_reason": "acquirer",
          "acquirer_response_code": null,
          "acquirer_name": "development",
          "authorization_code": null,
          "soft_descriptor": null,
          "tid": null,
          "nsu": null,
          "date_created": "2016-01-14T16:06:41.000Z",
          "date_updated": "2016-01-14T16:06:42.000Z",
          "amount": 20000,
          "installments": 1,
          "id": 353325,
          "cost": 0,
          "card_holder_name": null,
          "card_last_digits": null,
          "card_first_digits": null,
          "card_brand": null,
          "postback_url": null,
          "payment_method": "boleto",
          "capture_method": "ecommerce",
          "antifraud_score": null,
          "boleto_url": "https://pagar.me",
          "boleto_barcode": "1234 5678",
          "boleto_expiration_date": "2016-01-21T02:00:00.664Z",
          "referer": "api_key",
          "ip": "179.191.82.50",
          "subscription_id": null,
          "phone": null,
          "address": null,
          "customer": null,
          "card": null,
          "antifraud_metadata": {},
          "metadata": {}
        },
        "sort": [
          1452787601000
        ]
      },
      {
        "_index": "pagarme",
        "_type": "transaction",
        "_id": "353324",
        "_score": null,
        "_source": {
          "object": "transaction",
          "status": "waiting_payment",
          "refuse_reason": null,
          "status_reason": "acquirer",
          "acquirer_response_code": null,
          "acquirer_name": "development",
          "authorization_code": null,
          "soft_descriptor": null,
          "tid": null,
          "nsu": null,
          "date_created": "2016-01-14T16:06:16.000Z",
          "date_updated": "2016-01-14T16:06:16.000Z",
          "amount": 19000,
          "installments": 1,
          "id": 353324,
          "cost": 0,
          "card_holder_name": null,
          "card_last_digits": null,
          "card_first_digits": null,
          "card_brand": null,
          "postback_url": null,
          "payment_method": "boleto",
          "capture_method": "ecommerce",
          "antifraud_score": null,
          "boleto_url": "https://pagar.me",
          "boleto_barcode": "1234 5678",
          "boleto_expiration_date": "2016-01-21T02:00:00.080Z",
          "referer": "api_key",
          "ip": "179.191.82.50",
          "subscription_id": null,
          "phone": null,
          "address": null,
          "customer": null,
          "card": null,
          "antifraud_metadata": {},
          "metadata": {}
        },
        "sort": [
          1452787576000
        ]
      }
    ]
  }
}
Parâmetro Descrição
api_key
obrigatório
Chave da API (disponível no seu dashboard)
type
obrigatório
Objeto a ser buscado na base de dados, você pode buscar por qualquer objeto existente na API.
Ex: transaction, subscription ou bank_account
query Filtros a serem utilizados para obtenção dos resultados esperados. Veja mais sobre as buscas no Elasticsearch aqui
search_type Informa o tipo de busca que deve ser feita na base de dados. Mais sobre tipos de pesquisa aqui

Códigos postais

Consulta de CEP

GET https://api.pagar.me/1/zipcodes/:zipcode

curl -X GET https://api.pagar.me/1/zipcodes/01452001

Com essa rota você pode verificar os dados de um determinado CEP.

JSON Retornado (Exemplo)

{
    "neighborhood": "Jardim Paulistano",
    "street": "Avenida Brigadeiro Faria Lima",
    "city": "São Paulo",
    "state": "SP",
    "zipcode": "01452001"
}
Parâmetro Descrição
:zipcode
obrigatório
Código postal (CEP) que você deseja buscar informações

Erros

Erros da API

Exemplo:

{
    "errors": [{
        "type": "invalid_parameter",
        "parameter_name": "api_key",
        "message": "api_key está faltando"
    }],
    "url": "/transactions",
    "method": "get"
}

Os possíveis erros retornados da API são:

Erros na geração do card_hash

Exemplo:

{
   "card_number": "Número do cartão inválido.",
   "card_holder_name": "Nome do portador inválido.",
   "card_expiration_month": "Mês de expiração inválido.",
   "card_expiration_year": "Ano de expiração inválido.",
   "card_cvv": "Código de segurança inválido."
}

Antes do card_hash ser criado, é verificado se os dados do cartão estão corretos, caso algum item esteja errado, será retornado um objeto com todos os valores incorretos.

Análises antifraude

Objeto antifraud_analysis

Objeto antifraud_analysis

{
    "cost": 60,
    "date_created": "2015-01-10T12:31:13.000Z",
    "date_updated": "2015-03110T12:31:13.000Z",
    "id": 99999,
    "name": "clearsale",
    "object": "antifraud_analysis",
    "score": 31.39,
    "status": "approved"
}

Objeto retornado após a análise antifraude feita em uma transação. Toda vez que uma transação é criada e você está com seu sistema de antifraude ativo, ela passa pela análise antifraude de todos antifraudes ativos para sua empresa, para cada análise dessa, um novo objeto antifraud_analysis é criado.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: antifraud_analysis
name
String
Nome do antifraude utilizado
score
Number
pontuação, de 0 a 100, da probabilidade de fraude na transação realizada
cost
Number
Custo da análise antifraude
status
String
Possíveis valores de estado para as análises antifraude: processing, approved, refused e failed
date_created
String
Data de criação da transação no formato ISODate
date_updated
String
Data de atualização da transação no formato ISODate
id
Number
Número identificador da análise antifraude

Usuário

Objeto user

Objeto user

{
    "object": "user",
    "id": "52d7faa6d8dd64e210f6c4e3",
    "email": "ciclano@pagar.me",
    "name": "Ciclano da Silva",
    "permission": "read_write",
    "date_created": "2014-01-16T15:28:38.201Z"
}

Dados de um usuário registrado no nosso sistema.

Propriedade Descrição
object
String
Nome do tipo do objeto criado/modificado.
Valor retornado: user
id
String
Identificador do usuário
email
String
Email do usuário
name
String
Nome do usuário
permission
String
Tipo de permissão do usuário.
Tipos: admin, read_write, read_only
date_created
String
Data da criação do usuário (ISODate)