The Banco Inter PHP client provides convenient access to the Banco Inter API from applications written in the PHP language.
PHP 7.4.0 and later.
You can install the package via Composer. Run the following command:
composer require potelo/inter-php
Or simply add it to your composer.json dependences and run composer update
:
"require": {
"potelo/inter-php": "dev-main"
}
To use the client, use Composer's autoload:
require_once 'vendor/autoload.php';
The library require the following extensions in order to work properly:
If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
Getting Authorization doc
$privateKey = 'you-private-key-path.key';
$certificate = 'you-certificate-path.crt';
$clientId = 'you-client-id';
$clientSecret = 'your-client-secret';
$client = new \Potelo\InterPhp\InterClient($privateKey, $certificate, $clientId, $clientSecret);
$scopes = ['cob.read'];
$client->authorize($scopes);
You can get new token with new scopes using the same client instance:
$scopes = ['cob.read', 'cob.write', 'pix.read', 'pix.write'];
$client->authorize($scopes);
get
doc
Get a Bank Slip.
$bankSlip = $client->bankSlipApi()->get('bank-slip-our-number');
print_r($bankSlip);
getPdf
doc
Get a Bank Slip PDF.
$bankSlip = $client->bankSlipApi()->getPdf('bank-slip-our-number');
print_r($bankSlip);
create
doc
Create a Bank Slip.
$yorNumber = "your-number";
$dueDate = new \DateTime('2023-03-31');
$payer = new Payer("cpf number", "FISICA", "Payer Name", "Address", "Salvador", "BA", "41000000");
$bankSlip = $this->client->bankSlipApi()->create($yorNumber, 10.90, $dueDate, 0, $payer);
print_r($bankSlip);
list
doc
Get a list of Bank Slips in a period.
$after = new \DateTime('2023-03-31');
$before = new \DateTime('2023-03-31');
$bankSlips = $this->client->bankSlipApi()->list($after, $before);
print_r($bankSlips);
You can pass an array of filters to the list
method.
$after = new \DateTime('2023-03-31');
$before = new \DateTime('2023-03-31');
$filters = [
'filtrarDataPor' => 'VENCIMENTO',
];
$bankSlips = $this->client->bankSlipApi()->list($after, $before, $filters);
print_r($bankSlips);
summary
doc
Get a summary of a list of Bank Slips.
$after = new \DateTime('2023-03-31');
$before = new \DateTime('2023-03-31');
$summary = $this->client->bankSlipApi()->summary($after, $before);
print_r($summary);
cancel
doc
Cancel a Bank Slip.
$cancelReason = "APEDIDODOCLIENTE";
$this->client->bankSlipApi()->cancel('bank-slip-our-number', $cancelReason);
get
doc
Get an Immediate Charge by transaction id.
$immediateCharge = $client->immediateChargeApi()->get('your-immediate-charge-txid');
print_r($immediateCharge);
create
doc
Create an Immediate Charge.
$amount = 12.50;
$pixKey = 'your-pix-key';
$expiry = 3600; // seconds
$data = [
"devedor" => [
"cpf" => "01234567891",
"nome" => "John Doe"
],
"loc" => [
"tipoCob" => "cob"
],
"solicitacaoPagador" => " ",
"infoAdicionais" => [
[
"nome" => "Product",
"valor" => "cool pajamas"
]
]
];
$immediateCharge = $client->immediateChargeApi()->create($pixKey, $amount, $expiry, $data);
print_r($immediateCharge);
createAs
doc
Create an Immediate Charge specifying a unique transaction id.
$txId = 'your-unique-transaction-id';
$amount = 12.44;
$pixKey = 'your-pix-key';
$secondsToExpiry = 3600;
$data = [
"devedor" => [
"cpf" => "01234567891",
"nome" => "John Doe"
],
"loc" => [
"tipoCob" => "cob"
],
"solicitacaoPagador" => " ",
"infoAdicionais" => [
[
"nome" => "Product",
"valor" => "cool pajamas"
]
]
];
$immediateCharge = $client->immediateChargeApi()->createAs($txId, $pixKey, $amount, $secondsToExpiry, $data);
print_r($immediateCharge);
update
doc
Update an Immediate Charge.
$data = [
"valor" => 22.50
];
$immediateCharge = $client->immediateChargeApi()->update('immediate-charge-txid', $data);
print_r($immediateCharge);
list
doc
Get a list of Immediate Charges in a period.
$after = new \DateTime('2023-03-01T00:00:00-03:00');
$before = new \DateTime('2023-03-23T23:59:00-03:00');
$immediateCharges = $client->immediateChargeApi()->list($after, $before);
print_r($immediateCharges);
You can pass an array of filters to the list
method.
$after = new \DateTime('2023-03-01T00:00:00-03:00');
$before = new \DateTime('2023-03-23T23:59:00-03:00');
$filters = [
'cpf' => '01234567891',
];
$immediateCharges = $client->immediateChargeApi()->list($after, $before, $filters);
print_r($immediateCharges);
get
doc
Get a Pix by transaction id.
$pix = $client->pixApi()->get('pix-endToEndId');
print_r($pix);
list
doc
Get a list of Pix in a period.
$after = new \DateTime('2023-03-01T00:00:00-03:00');
$before = new \DateTime('2023-03-23T23:59:00-03:00');
$pixList = $client->immediateChargeApi()->list($after, $before);
print_r($pixList);
returnPix
doc
Return a Pix.
$id = 'your-unique-id';
$amountToReturn = 12.44;
$pix = $client->pixApi()->returnPix('pix-endToEndId', $id, $amountToReturn);
print_r($pix);
getReturnPix
doc
Get a Pix return.
$id = 'your-unique-id';
$pix = $client->pixApi()->getReturnPix('pix-endToEndId', $id);
print_r($pix);
The Banco Inter API documentation can be found here.