O saque é uma transferência, feita por meio de uma TED, entre a conta bancária do Pagar.me e a conta bancária cadastrada no seu recebedor. Os saques que forem feitos até as 15h do mesmo dia terão o seu valor creditado também no mesmo dia. Existe um custo de R$3,67 caso não seja para uma conta Bradesco.

É possível utilizar dois tipos de saque no Pagar.me, o automático e o manual. Se você quiser saber mais sobre os tipos de saque, acesse: Tipos de saque.

1. Dashboard

A forma mais simples de se fazer um saque é utilizando a nossa Dashboard, conforme mostra a imagem abaixo:

1152

Em sua página de extrato

2. API

Também é possível realizar o saque diretamente pela nossa API. Para fazer um saque de valores que estejam disponíveis no seu saldo Pagar.me, é preciso especificar para a API alguns parâmetros:

api_keySua API KEY para autenticação.
recipient_idEste é o id do recebedor que ficará com a quantia solicitada. Por meio da conta bancária cadastrada (Ver mais em: Recebedores )
amountValor que deseja sacar. Lembrando que deve estar em centavos, sendo que R$100,00 equivale a 10000.

Veja o exemplo:

curl -X POST https://api.pagar.me/1/transfers -H 'content-type: application/json' -d '{
    "amount": "10000", 
    "api_key": "SUA API KEY", 
    "recipient_id": "re_ci9bucss300h1zt6dvywufeqc"
}'
require 'pagarme'

PagarMe.api_key = 'SUA API KEY'
PagarMe::Recipient.find(recipient_id).receive amount
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');

$transfer = $pagarme->transfers()->create([
  'amount' => 1000,
  'recipient_id' => 're_cjeptpdyg03u3cb6elj68p5ej'
]);
PagarMeService.DefaultApiKey = "SUA API KEY";

var transfer = new Transfer()
{
  RecipientId = "re_ci9bucss300h1zt6dvywufeqc",
  Amount = 10000
}
transfer.Save();
import pagarme from 'pagarme'

pagarme.client.connect({ api_key: 'SUA_API_KEY' })
  .then(client => client.transfers.create({
    amount: 10000,
  	bank_account_id: 'bank_account_id',
  	recipient_id: 'recipient_id',
  }))
  .then(transfer => console.log(transfer))

Basta fazer isso para conseguir realizar um saque para a sua conta bancária.

O retorno imediato de um saque junto à API Pagar.me é:

{
  "object": "transfer",
  "id": 31203,
  "amount": 10000,
  "type": "ted",
  "status": "pending_transfer",
  "source_type": "recipient",
  "source_id": "re_cimcpc2qc002za46d9dt4vfok",
  "target_type": "bank_account",
  "target_id": "12298597",
  "fee": 367,
  "funding_date": null,
  "funding_estimated_date": "2017-01-23T02:00:00.000Z",
  "transaction_id": null,
  "date_created": "2017-01-22T15:35:17.375Z",
  "bank_account": {
    "object": "bank_account",
    "id": 12298597,
    "bank_code": "000",
    "agencia": "0000",
    "agencia_dv": null,
    "conta": "00000",
    "conta_dv": "0",
    "type": "conta_corrente",
    "document_type": "cnpj",
    "document_number": "00000000000000",
    "legal_name": "CONTA BANCARIA DE TESTES",
    "charge_transfer_fees": true,
    "date_created": "2016-03-29T00:45:13.023Z"
  }
}

Cancelando um saque

Você pode também cancelar um saque pela API Pagar.me da seguinte maneira:

curl -X POST https://api.pagar.me/1/transfers/31203/cancel -H 'content-type: application/json' -d '{
    "api_key": "SUA API KEY"
}'
import pagarme from 'pagarme'

pagarme.client.connect({ api_key: 'SUA_API_KEY' })
  .then(client => client.transfers.cancel({
    id: 'transfer_id'
  }))
<?php
require("vendor/autoload.php");
$pagarme = new PagarMe\Client('SUA_CHAVE_DE_API');

$canceledTransfer = $pagarme->transfers()->cancel([
  'id' => 'ID_DA_TRANSFERÊNCIA'
]);

❗️

Cuidado

Só é possível cancelar um saque enquanto o status dele no Pagar.me ainda estiver pending_transfer.

Quando você solicita o cancelamento de um saque, o retorno da API Pagar.me é:

{
  "object": "transfer",
  "id": 31203,
  "amount": 10000,
  "type": "ted",
  "status": "canceled",
  "source_type": "recipient",
  "source_id": "re_cimcpc2qc002za46d9dt4vfok",
  "target_type": "bank_account",
  "target_id": "12298597",
  "fee": 367,
  "funding_date": null,
  "funding_estimated_date": "2017-01-23T02:00:00.000Z",
  "transaction_id": null,
  "date_created": "2017-01-22T15:35:17.375Z",
  "bank_account": {
    "object": "bank_account",
    "id": 12298597,
    "bank_code": "000",
    "agencia": "0000",
    "agencia_dv": null,
    "conta": "00000",
    "conta_dv": "0",
    "type": "conta_corrente",
    "document_type": "cnpj",
    "document_number": "00000000000000",
    "legal_name": "CONTA BANCARIA DE TESTES",
    "charge_transfer_fees": true,
    "date_created": "2016-03-29T00:45:13.023Z"
  }
}

Próximo

Excelente! Veja agora como fazer uma antecipação.