We provide the convenience of transferring funds directly to other accounts.
In the document below, we will detail the processes related to making transfers via Pix or Ted, providing a clear and comprehensive understanding of the operation and how to manage the lifecycle of this resource.
You can also use a Pix Key to send a Pix Transfer.
NOTE: Read Core Concepts before continuing this guide.
For each environment: (Sandbox or Production)
1. Create an account at Stark Bank.
2. Create a webhook with the following subscriptions to receive events in your desired URL:
transfer
2.1. Via Internet Banking:
Integrations > Webhook > New Webhook
2.2. Via API:
Use the POST /webhook route to create the webhook
Transfer is a resource that can be used to send Pix and Ted payments to other bank accounts.
To create a Transfer (Ted or Pix), you need to provide the mandatory parameters: amount, name, taxId, bankCode, branchCode and accountNumber.
You can also send a Pix Transfer using a Pix Key and an amount.
Optional parameters include accountType, description, externalId, scheduled, tags, and rules.
Each Transfer has a status that can change over time according to its life cycle:
| Status | Description |
|---|---|
| Created | The Transfer was successfully created in Stark Bank. |
| Processing | The Transfer is being processed by Stark Bank. |
| Success | The Transfer was successfully completed. |
| Failed | The Transfer was unsuccessful. |
| Canceled | The Transfer was canceled before processing. |
Every time either you or Stark Bank makes a change to a Transfer, we create a Log. Logs are pretty useful for understanding the life cycle of each Transfer and the changes that happened to it. Here you can see the flow of possible logs:
A completed Transfer can be reversed back to its payer. When a reversal occurs, the following flow of logs will happen:
| Log type | Status | Description |
|---|---|---|
| Created | Created | The Transfer was successfully created in Stark Bank. |
| Sending | Processing | The Transfer is being sent to the banking network. |
| Sent | Processing | The Transfer was sent to the banking network. |
| Success | Success | The Transfer was successfully completed and credited. |
| Failed | Failed | The Transfer was unsuccessful. |
| Resending | Processing | The Transfer is being retried after a temporary failure. |
| Canceling | Processing | The Transfer cancellation is being processed. |
| Canceled | Canceled | The Transfer was canceled before processing. |
| Reversing | Success | The Transfer reversal is being processed. |
| Reversed | Success | The Transfer was reversed back to the payer. |
| Refunded | Success | The Transfer was refunded. |
id
Unique id for the transfer.
amount
Amount in cents to be transferred. Example: 1000000 (R$10,000.00).
name
Recipient full name.
taxId
Recipient CPF or CNPJ.
bankCode
3-digit bank code (Ted) or 8-digit ISPB code (Pix) of the recipient's bank.
branchCode
Recipient's branch code.
accountNumber
Recipient's account number.
accountType
Recipient's bank account type. Options: "checking", "payment", "savings", "salary". Default: "checking".
externalId
Unique ID to prevent duplicate transfers. Repeated externalIds will cause failures.
scheduled
Scheduled date or datetime for the transfer. Example: "2020-08-14" or "2020-08-14T15:23:26+00:00".
description
Custom description to override the default bank statement description.
tags
Tags associated with the transfer.
rules
List of rule objects with key and value to modify transfer behavior.
fee
Fee charged in cents.
status
Current transfer status. Options: "created", "processing", "success", "failed", "canceled".
transactionIds
Ledger transaction IDs linked to the transfer.
created
Creation datetime. Example: "2020-02-06T16:22:24.664148+00:00".
updated
Last update datetime. Example: "2020-02-06T16:22:24.664148+00:00".
To create a Ted Transfer, fill in the mandatory parameters: amount, name, taxId, bankCode, branchCode and accountNumber.
For Ted Transfers, the bankCode parameter must be filled with the 3-digit bank code of the recipient's bank.
Ted Transfers scheduled for today will be accepted until 16:00 (BRT) and will be pushed to the next business day afterwards.
import starkbank
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id="123.456.789-10",
name="Daenerys Targaryen Stormborn",
bank_code="665",
branch_code="2201",
account_number="76543-8"
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
bankCode: '665',
branchCode: '2201',
accountNumber: '10000-0',
taxId: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn'
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"bankCode" => "665",
"branchCode" => "2201",
"accountNumber" => "10000-0",
"taxId" => "123.456.789-10",
"name" => "Daenerys Targaryen Stormborn"
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
List<Transfer> transfers = new ArrayList<>();
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("bankCode", "665");
data.put("branchCode", "2201");
data.put("accountNumber", "10000-0");
data.put("taxId", "123.456.789-10");
data.put("name", "Daenerys Targaryen Stormborn");
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
bank_code: '665',
branch_code: '2201',
account_number: '10000-0',
tax_id: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn'
)
]
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
bank_code: "665",
branch_code: "2201",
account_number: "10000-0",
tax_id: "123.456.789-10",
name: "Daenerys Targaryen Stormborn"
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
bankCode: "665",
branchCode: "2201",
accountNumber: "10000-0",
taxID: "123.456.789-10",
name: "Daenerys Targaryen Stormborn"
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
Name: "Daenerys Targaryen Stormborn",
TaxId: "123.456.789-10",
BankCode: "665",
BranchCode: "2201",
AccountNumber: "10000-0"
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:bank-code "665"
:branch-code "2201"
:account-number "10000-0"
:tax-id "123.456.789-10"
:name "Daenerys Targaryen Stormborn"
}
]))
(dorun (map println transfers))
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "123.456.789-10",
"name": "Daenerys Targaryen Stormborn",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "10000-0"
},
]
}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=665,
branch_code=2201,
created=2020-02-06 16:22:24.664134,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=0,
id=5412038532661248,
name=Daenerys Targaryen Stormborn,
rules=[],
scheduled=2020-08-14 10:00:00,
status=created,
tags=[],
tax_id=123.456.789-10,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '276.685.415-00',
bankCode: '665',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [ ],
rules: [ ],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 20018183
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
)
[rules] => Array
(
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"tags": [],
"rules": [],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 20018183,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
scheduled: 2023-08-14T10:00:00+00:00,
description: Daenerys Targaryen Stormborn (594.739.480-42),
tags: [],
rules: [],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "my-external-id",
fee: 200,
id: "5412038532661248",
name: "Daenerys Targaryen Stormborn",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: [],
tax_id: "594.739.480-42",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
BranchCode: 2201,
AccountNumber: 76543-8,
TaxID: 594.739.480-42,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
BankCode: 20018183,
Scheduled: 07/02/2020 07:00:00,
Tags: {},
Rules: {},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Daenerys Targaryen Stormborn,
TaxId:330.731.970-10
BankCode:20018183
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[]
Rules:[]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags [],
:branch-code "2201",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "76543-8",
:bank-code "20018183",
:account-type: "checking",
:external-id: "my-external-id"}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "76543-8",
"accountType": "checking",
"amount": 1000000,
"bankCode": "665",
"branchCode": "2201",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"fee": 0,
"id": "5412038532661248",
"name": "Daenerys Targaryen Stormborn",
"rules": [],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [],
"taxId": "594.739.480-42",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}
To create a Pix Transfer, fill in the mandatory parameters: amount, name, taxId, bankCode, branchCode and accountNumber.
For Pix Transfers, the bankCode parameter must be filled with the 8-digit ISPB code of the recipient's bank.
Pix Transfers are available 24/7 and can be scheduled for any date and time.
import starkbank
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id="123.456.789-10",
name="Daenerys Targaryen Stormborn",
bank_code="20018183",
branch_code="2201",
account_number="76543-8"
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
bankCode: '20018183',
branchCode: '2201',
accountNumber: '10000-0',
taxId: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn'
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"bankCode" => "20018183",
"branchCode" => "2201",
"accountNumber" => "10000-0",
"taxId" => "123.456.789-10",
"name" => "Daenerys Targaryen Stormborn"
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
List<Transfer> transfers = new ArrayList<>();
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("bankCode", "20018183");
data.put("branchCode", "2201");
data.put("accountNumber", "10000-0");
data.put("taxId", "123.456.789-10");
data.put("name", "Daenerys Targaryen Stormborn");
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
bank_code: '20018183',
branch_code: '2201',
account_number: '10000-0',
tax_id: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn'
)
]
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
account_number: "10000-0",
tax_id: "123.456.789-10",
name: "Daenerys Targaryen Stormborn"
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
bankCode: "20018183",
branchCode: "2201",
accountNumber: "10000-0",
taxID: "123.456.789-10",
name: "Daenerys Targaryen Stormborn"
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
scheduled := time.Date(2020, 08, 14, 0, 0, 0, 0, time.UTC)
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
Name: "Daenerys Targaryen Stormborn",
TaxId: "123.456.789-10",
BankCode: "20018183",
BranchCode: "2201",
AccountNumber: "10000-0"
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:bank-code "20018183"
:branch-code "2201"
:account-number "10000-0"
:tax-id "123.456.789-10"
:name "Daenerys Targaryen Stormborn"
}
]))
(dorun (map println transfers))
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "123.456.789-10",
"name": "Daenerys Targaryen Stormborn",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "10000-0"
},
]
}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=20018183,
branch_code=2201,
created=2020-02-06 16:22:24.664134,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=0,
id=5412038532661248,
name=Daenerys Targaryen Stormborn,
rules=[],
scheduled=2020-08-14 10:00:00,
status=created,
tags=[],
tax_id=123.456.789-10,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '276.685.415-00',
bankCode: '20018183',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [ ],
rules: [ ],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 20018183
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
)
[rules] => Array
(
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"tags": [],
"rules": [],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 20018183,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
scheduled: 2023-08-14T10:00:00+00:00,
description: Daenerys Targaryen Stormborn (594.739.480-42),
tags: [],
rules: [],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "my-external-id",
fee: 200,
id: "5412038532661248",
name: "Daenerys Targaryen Stormborn",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: [],
tax_id: "594.739.480-42",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
BranchCode: 2201,
AccountNumber: 76543-8,
TaxID: 594.739.480-42,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
BankCode: 20018183,
Scheduled: 07/02/2020 07:00:00,
Tags: {},
Rules: {},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Daenerys Targaryen Stormborn,
TaxId:330.731.970-10
BankCode:20018183
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[]
Rules:[]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags [],
:branch-code "2201",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "76543-8",
:bank-code "20018183",
:account-type: "checking",
:external-id: "my-external-id"}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "76543-8",
"accountType": "checking",
"amount": 1000000,
"bankCode": "20018183",
"branchCode": "2201",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"fee": 0,
"id": "5412038532661248",
"name": "Daenerys Targaryen Stormborn",
"rules": [],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [],
"taxId": "594.739.480-42",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}
AccountType: You can use this parameter to set the receiver's bank account type. Options include "checking", "payment", "savings", and "salary". "checking" is the default.
This parameter only takes effect for Pix Transfers.
The transfer will fail if the accountType is different from the receiver's bank account.
Rules: This parameter can be used to modify the transfer behavior.
The following rules are available:
resendingLimit: integer value that sets the number of retry attempts to complete the transfer. "10" by default.
isReversalAllowed: boolean value that determines if reversals are accepted for the transfer. It applies only to transfers made by Pix and to reversals with reason "customerRequest". Reversals for "fraud" or "bankError" are still accepted. "true" by default.
isPartialReversalAllowed: boolean value that determines if partial reversals are accepted for the transfer. It applies only to transfers made by Pix and to reversals with reason "customerRequest". Reversals for "fraud" or "bankError" are still accepted. "true" by default.
Note: The isPartialReversalAllowed rule should not be set to true if the isReversalAllowed rule is set to false.
import starkbank
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id="123.456.789-10",
name="Daenerys Targaryen Stormborn",
bank_code="20018183",
branch_code="2201",
account_number="76543-8",
account_type="savings",
rules=[
starkbank.transfer.Rule(
key="resendingLimit",
value=5
)
]
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
bankCode: '20018183',
branchCode: '2201',
accountNumber: '10000-0',
accountType: 'savings',
taxId: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
rules: [
{
key: 'resendingLimit',
value: 5
}
]
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"bankCode" => "20018183",
"branchCode" => "2201",
"accountNumber" => "10000-0",
"accountType" => "savings",
"taxId" => "123.456.789-10",
"name" => "Daenerys Targaryen Stormborn",
"rules" => [
new StarkBank\Transfer\Rule([
"key" => "resendingLimit",
"value" => 5
])
]
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
List<Transfer> transfers = new ArrayList<>();
List<Transfer.Rule> rules = new ArrayList<>();
rules.add(new Transfer.Rule("resendingLimit", 5));
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("bankCode", "20018183");
data.put("branchCode", "2201");
data.put("accountNumber", "10000-0");
data.put("accountType", "savings");
data.put("taxId", "123.456.789-10");
data.put("name", "Daenerys Targaryen Stormborn");
data.put("rules", rules);
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
bank_code: '20018183',
branch_code: '2201',
account_number: '10000-0',
tax_id: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
account_type: 'savings',
rules: [
StarkBank::Transfer::Rule.new(
key: 'resendingLimit',
value: 5
)
]
)
]
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
account_number: "10000-0",
account_type: "savings",
tax_id: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
rules: [
%StarkBank.Transfer.Rule{
key: "resendingLimit",
value: 5
}
]
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
bankCode: "20018183",
branchCode: "2201",
accountNumber: "10000-0",
accountType: "savings",
taxID: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
externalID: "my-external-id",
scheduled: DateTime.Today.Date.AddDays(1),
tags: new List<string> { "daenerys", "invoice/1234" },
rules: new List<Transfer.Rule>
{
new Transfer.Rule(
key: "resendingLimit",
value: 5
)
}
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
Name: "Daenerys Targaryen Stormborn",
TaxId: "123.456.789-10",
BankCode: "20018183",
BranchCode: "2201",
AccountNumber: "10000-0",
AccoountType: "savings",
Rules: []rule.Rule{{Key: "resendingLimit", Value: 5}},
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:bank-code "20018183"
:branch-code "2201"
:account-number "10000-0"
:account-type "savings"
:tax-id "123.456.789-10"
:name "Daenerys Targaryen Stormborn"
}
]))
(dorun (map println transfers))
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "123.456.789-10",
"name": "Daenerys Targaryen Stormborn",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "10000-0",
"accountType": "savings",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
]
},
]
}'
Transfer(
account_number=76543-8,
account_type=savings,
amount=1000000,
bank_code=20018183,
branch_code=2201,
created=2020-02-06 16:22:24.664134,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=0,
id=5412038532661248,
name=Daenerys Targaryen Stormborn,
rules=[
Rule(
key=resendingLimit,
value=5
)
],
scheduled=2020-08-14 10:00:00,
status=created,
tags=[],
tax_id=123.456.789-10,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '276.685.415-00',
bankCode: '20018183',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'savings',
externalId: 'my-external-id',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [],
rules: [
{
key: 'resendingLimit',
value: 5
}
],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 20018183
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => savings
[externalId] => my-external-id
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
)
[rules] => Array
(
[0] => StarkBank\Transfer\Rule Object
(
[key] => resendingLimit
[value] => 5
)
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "savings",
"externalId": "my-external-id",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"tags": [],
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 20018183,
branch_code: 2201,
account_number: 76543-8,
account_type: savings,
external_id: my-external-id,
scheduled: 2023-08-14T10:00:00+00:00,
description: Daenerys Targaryen Stormborn (594.739.480-42),
tags: [],
rules: [
rule(
key: resendingLimit,
value: 5
)
],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "savings",
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "my-external-id",
fee: 200,
id: "5412038532661248",
name: "Daenerys Targaryen Stormborn",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[
%{
"key" => "resendingLimit",
"value" => 5
}
],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: [],
tax_id: "594.739.480-42",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
BranchCode: 2201,
AccountNumber: 76543-8,
TaxID: 594.739.480-42,
AccountType: savings,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
BankCode: 20018183,
Scheduled: 07/02/2020 07:00:00,
Tags: {},
Rules: {
Rule(
Key: resendingLimit,
Value: 5
)
},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Daenerys Targaryen Stormborn,
TaxId:330.731.970-10
BankCode:20018183
BranchCode:2201
AccountNumber:76543-8
AccountType:savings
ExternalId:my-external-id
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[]
Rules:[
{
Key:resendingLimit
Value:5
}
]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags [],
:branch-code "2201",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "76543-8",
:bank-code "20018183",
:account-type: "savings",
:external-id: "my-external-id"}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "76543-8",
"accountType": "savings",
"amount": 1000000,
"bankCode": "20018183",
"branchCode": "2201",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"fee": 0,
"id": "5412038532661248",
"name": "Daenerys Targaryen Stormborn",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [],
"taxId": "594.739.480-42",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}
Description: You can set a custom description to override the default description shown in your starkbank statement.
For example: "Payment for service #1234." Otherwise, the default description will be as follows: "Daenerys Targaryen Stormborn (123.456.789-10)." The name parameter concatenated with the taxId parameter.
ExternalId: Unique ID to prevent duplicate transfers. Repeated externalIds should cause failures by duplication.
By default, it blocks transfers to the same bank account with the same amount on the same day. Example: "my-internal-id"
Tags: Array of strings to tag the entity for future queries. All tags will be converted to lowercase. Example: ["daenerys", "invoice/1234"]
import starkbank
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id="123.456.789-10",
name="Daenerys Targaryen Stormborn",
bank_code="20018183",
branch_code="2201",
account_number="76543-8",
external_id="my-external-id",
tags=["daenerys", "invoice/1234"],
description="Payment for service #1234"
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
bankCode: '20018183',
branchCode: '2201',
accountNumber: '10000-0',
taxId: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
externalId: 'my-external-id',
tags: ['daenerys', 'invoice/1234'],
description: 'Payment for service #1234'
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"bankCode" => "20018183",
"branchCode" => "2201",
"accountNumber" => "10000-0",
"taxId" => "123.456.789-10",
"name" => "Daenerys Targaryen Stormborn",
"externalId" => "my-external-id",
"tags" => ["daenerys", "invoice/1234"],
"description" => "Payment for service #1234"
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
List<Transfer> transfers = new ArrayList<>();
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("bankCode", "20018183");
data.put("branchCode", "2201");
data.put("accountNumber", "10000-0");
data.put("taxId", "123.456.789-10");
data.put("name", "Daenerys Targaryen Stormborn");
data.put("externalId", "my-external-id");
data.put("tags", new String[]{"daenerys", "invoice/1234"});
data.put("rules", rules);
data.put("description", "Payment for service #1234");
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
bank_code: '20018183',
branch_code: '2201',
account_number: '10000-0',
tax_id: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
external_id: 'my-external-id',
tags: %w[daenerys invoice/1234],
description: 'Payment for service #1234'
)
]
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
account_number: "10000-0",
tax_id: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
external_id: "my-external-id",
tags: ["daenerys", "invoice/1234"],
description: "Payment for service #1234"
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
bankCode: "20018183",
branchCode: "2201",
accountNumber: "10000-0",
taxID: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
externalID: "my-external-id",
tags: new List<string> { "daenerys", "invoice/1234" },
description: "Payment for service #1234"
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
Name: "Daenerys Targaryen Stormborn",
TaxId: "123.456.789-10",
BankCode: "20018183",
BranchCode: "2201",
AccountNumber: "10000-0",
ExternalId: "my-external-id",
Tags: []string{"daenerys", "invoice/1234"},
Description: "Payment for service #1234"
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:bank-code "20018183"
:branch-code "2201"
:account-number "10000-0"
:tax-id "123.456.789-10"
:name "Daenerys Targaryen Stormborn"
:external-id: "my-external-id"
:tags ["daenerys" "invoice/1234"]
:description "Payment for service #1234"
}
]))
(dorun (map println transfers))
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "123.456.789-10",
"name": "Daenerys Targaryen Stormborn",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "10000-0",
"externalId": "my-external-id",
"tags": ["daenerys", "invoice/1234"],
"description": "Payment for service #1234"
},
]
}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=20018183,
branch_code=2201,
created=2020-02-06 16:22:24.664134,
description=Payment for service #1234,
external_id=my-external-id,
fee=0,
id=5412038532661248,
name=Daenerys Targaryen Stormborn,
rules=[],
scheduled=2020-08-14 10:00:00,
status=created,
tags=['daenerys', 'invoice/1234'],
tax_id=123.456.789-10,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '276.685.415-00',
bankCode: '20018183',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Payment for service #1234',
tags: [ 'daenerys', 'invoice/1234' ],
rules: [],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 20018183
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Payment for service #1234
[tags] => Array
(
[0] => daenerys
[1] => invoice/1234
)
[rules] => Array
(
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Payment for service #1234",
"tags": [
"daenerys",
"invoice/1234"
],
"rules": [
{}
],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 20018183,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
scheduled: 2023-08-14T10:00:00+00:00,
description: Payment for service #1234,
tags: ["daenerys", "invoice/1234"],
rules: [
rule()
],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "my-external-id",
fee: 200,
id: "5412038532661248",
name: "Daenerys Targaryen Stormborn",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[],
description: "Payment for service #1234",
tags: ["daenerys", "invoice/1234"],
tax_id: "594.739.480-42",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
BranchCode: 2201,
AccountNumber: 76543-8,
TaxID: 594.739.480-42,
AccountType: checking,
ExternalID: my-external-id,
Description: Payment for service #1234,
BankCode: 20018183,
Scheduled: 07/02/2020 07:00:00,
Tags: { daenerys, invoice/1234 },
Rules: {},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Daenerys Targaryen Stormborn,
TaxId:330.731.970-10
BankCode:20018183
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Payment for service #1234
Tags:[daenerys invoice/1234]
Rules:[]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags ["daenerys" "invoice/1234"],
:branch-code "2201",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Payment for service #1234",
:tax-id "594.739.480-42",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "76543-8",
:bank-code "20018183",
:account-type: "checking",
:external-id: "my-external-id"}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "76543-8",
"accountType": "checking",
"amount": 1000000,
"bankCode": "20018183",
"branchCode": "2201",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Payment for service #1234",
"externalId": "my-external-id",
"fee": 0,
"id": "5412038532661248",
"name": "Daenerys Targaryen Stormborn",
"rules": [],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [
"daenerys",
"invoice/1234"
],
"taxId": "594.739.480-42",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}
Scheduled: Schedule the transfer for a specific date.
Today is the default.
Ted Transfer's schedules for today will be accepted until 16:00 (BRT) and will be pushed to the next business day afterwards.
Pix Transfers are available 24/7 and can be scheduled for any date and time.
Example: "2020-08-14T15:23:26+00:00" or "2020-08-14"
import starkbank
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id="123.456.789-10",
name="Daenerys Targaryen Stormborn",
bank_code="20018183",
branch_code="2201",
account_number="76543-8",
scheduled="2020-08-14"
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
bankCode: '20018183',
branchCode: '2201',
accountNumber: '10000-0',
taxId: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
scheduled: '2020-08-14',
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"bankCode" => "20018183",
"branchCode" => "2201",
"accountNumber" => "10000-0",
"taxId" => "123.456.789-10",
"name" => "Daenerys Targaryen Stormborn",
"scheduled" => "2020-08-14"
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
List<Transfer> transfers = new ArrayList<>();
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("bankCode", "20018183");
data.put("branchCode", "2201");
data.put("accountNumber", "10000-0");
data.put("taxId", "123.456.789-10");
data.put("name", "Daenerys Targaryen Stormborn");
data.put("scheduled", "2020-08-14");
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
bank_code: '20018183',
branch_code: '2201',
account_number: '10000-0',
tax_id: '123.456.789-10',
name: 'Daenerys Targaryen Stormborn',
scheduled: "2020-08-14"
)
]
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
account_number: "10000-0",
tax_id: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
scheduled: "2020-08-14",
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
bankCode: "20018183",
branchCode: "2201",
accountNumber: "10000-0",
taxID: "123.456.789-10",
name: "Daenerys Targaryen Stormborn",
scheduled: DateTime.Today.Date.AddDays(1),
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
scheduled := time.Date(2020, 08, 14, 0, 0, 0, 0, time.UTC)
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
Name: "Daenerys Targaryen Stormborn",
TaxId: "123.456.789-10",
BankCode: "20018183",
BranchCode: "2201",
AccountNumber: "10000-0",
Scheduled: &scheduled,
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:bank-code "20018183"
:branch-code "2201"
:account-number "10000-0"
:tax-id "123.456.789-10"
:name "Daenerys Targaryen Stormborn"
:scheduled (date/future-datetime)
}
]))
(dorun (map println transfers))
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "123.456.789-10",
"name": "Daenerys Targaryen Stormborn",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "10000-0",
"scheduled": "2020-08-14",
},
]
}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=20018183,
branch_code=2201,
created=2020-02-06 16:22:24.664134,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=0,
id=5412038532661248,
name=Daenerys Targaryen Stormborn,
rules=[],
scheduled=2020-08-14 10:00:00,
status=created,
tags=[],
tax_id=123.456.789-10,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '276.685.415-00',
bankCode: '20018183',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [],
rules: [],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 20018183
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
)
[rules] => Array
(
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "20018183",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"tags": [],
"rules": [],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 20018183,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
scheduled: 2023-08-14T10:00:00+00:00,
description: Daenerys Targaryen Stormborn (594.739.480-42),
tags: [],
rules: [],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "20018183",
branch_code: "2201",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "my-external-id",
fee: 200,
id: "5412038532661248",
name: "Daenerys Targaryen Stormborn",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: [],
tax_id: "594.739.480-42",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
BranchCode: 2201,
AccountNumber: 76543-8,
TaxID: 594.739.480-42,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
BankCode: 20018183,
Scheduled: 07/02/2020 07:00:00,
Tags: {},
Rules: {},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Daenerys Targaryen Stormborn,
TaxId:330.731.970-10
BankCode:20018183
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[]
Rules:[]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags [],
:branch-code "2201",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "76543-8",
:bank-code "20018183",
:account-type: "checking",
:external-id: "my-external-id"}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "76543-8",
"accountType": "checking",
"amount": 1000000,
"bankCode": "20018183",
"branchCode": "2201",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"fee": 0,
"id": "5412038532661248",
"name": "Daenerys Targaryen Stormborn",
"rules": [],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [],
"taxId": "594.739.480-42",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}
Get a list of Transfers using filters such as after, before, status and tags to narrow the results.
import starkbank
transfers = starkbank.transfer.query(
after="2020-04-01",
before="2020-04-30",
)
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfers = await starkbank.transfer.query({
after: '2020-04-01',
before: '2020-04-30',
});
for await (let transfer of transfers) {
console.log(transfer);
}
})();
$transfers = StarkBank\Transfer::query([
"after" => "2020-04-01",
"before" => "2020-04-30"
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import com.starkbank.utils.Generator;
import java.util.HashMap;
HashMap<String, Object> params = new HashMap<>();
params.put("after", "2020-04-01");
params.put("before", "2020-04-30");
Generator<Transfer> transfers = Transfer.query(params);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
transfers = StarkBank::Transfer.query(
after: '2020-04-01',
before: '2020-04-30'
)
transfers.each do |transfer|
puts transfer
end
transfers = StarkBank.Transfer.query!(
after: "2020-04-01",
before: "2020-04-30"
)
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
IEnumerable<StarkBank.Transfer> transfers = StarkBank.Transfer.Query(
after: new DateTime(2020, 4, 1),
before: new DateTime(2020, 4, 30)
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"time"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
var params = map[string]interface{}{}
params["after"] = time.Date(2020, 4, 1, 0, 0, 0, 0, time.UTC)
params["before"] = time.Date(2020, 4, 30, 0, 0, 0, 0, time.UTC)
transfers, errorChannel := transfer.Query(params, nil)
loop:
for {
select {
case err := <-errorChannel:
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
case transfer, ok := <-transfers:
if !ok {
break loop
}
fmt.Printf("%+v", transfer)
}
}
}
(def transfers
(starkbank.transfer/query
{
:after "2020-04-01"
:before "2020-04-30"
}))
(dorun (map println transfers))
curl --location --request GET '{{baseUrl}}/v2/transfer?after=2020-04-01&before=2020-04-30'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=665,
branch_code=2201,
created=2020-04-24 17:49:10.225810,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=200,
id=5950134772826112,
name=Daenerys Targaryen Stormborn,
rules=[
Rule(
key=resendingLimit,
value=5
)
],
status=processing,
scheduled=2020-08-14 11:00:00,
tags=['daenerys', 'invoice/1234'],
tax_id=594.739.480-42,
transaction_ids=['5991715760504832'],
updated=2020-04-24 17:49:10.225810
)
Transfer {
id: '5950134772826112',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '594.739.480-42',
bankCode: '665',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [ 'daenerys', 'invoice/1234' ],
rules: [
{
key: 'resendingLimit',
value: 5
}
],
fee: 200,
status: 'processing',
scheduled: '2020-08-14T11:00:00+00:00',
created: '2020-04-24T17:49:10.225810+00:00',
updated: '2020-04-24T17:49:10.225810+00:00',
transactionIds: [ '5991715760504832' ]
}
StarkBank\Transfer Object
(
[id] => 5950134772826112
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 665
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
[0] => daenerys
[1] => invoice/1234
)
[rules] => Array
(
[0] => StarkBank\Transfer\Rule Object
(
[key] => resendingLimit
[value] => 5
)
)
[fee] => 200
[status] => processing
[scheduled] => DateTime Object
(
[date] => 2020-08-14 11:00:00
[timezone_type] => 1
[timezone] => +00:00
)
[transactionIds] => Array
(
[0] => 5991715760504832
)
[created] => DateTime Object
(
[date] => 2020-04-24 17:49:10.225810
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-04-24 17:49:10.225810
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"id": "5950134772826112",
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"transactionIds": ["5991715760504832"],
"fee": 200,
"tags": [
"daenerys",
"invoice/1234"
],
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"status": "processing",
"scheduled": "2020-08-14T11:00:00+00:00",
"created": "2020-04-24T17:49:10+00:00",
"updated": "2020-04-24T17:49:10+00:00"
})
transfer(
id: 5950134772826112,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 665,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
description: Daenerys Targaryen Stormborn (594.739.480-42),
transaction_ids: ["5991715760504832"],
fee: 200,
tags: ["daenerys", "invoice/1234"],
rules: [
rule(
key: resendingLimit,
value: 5
)
],
status: processing,
scheduled: 2020-08-14T11:00:00+00:00,
created: 2020-04-24T17:49:10+00:00,
updated: 2020-04-24T17:49:10+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "665",
branch_code: "2201",
created: ~U[2020-04-24 17:49:10.225810Z],
external_id: "my-external-id",
fee: 200,
id: "5950134772826112",
name: "Daenerys Targaryen Stormborn",
status: "processing",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[
%{"key" => "resendingLimit", "value" => 5}
],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: ["daenerys", "invoice/1234"],
tax_id: "594.739.480-42",
transaction_ids: ["5991715760504832"],
updated: ~U[2020-04-24 17:49:10.225810Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
TaxID: 594.739.480-42,
BankCode: 665,
BranchCode: 2201,
AccountNumber: 76543-8,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
TransactionIds: { 5991715760504832 },
Fee: 200,
Tags: { daenerys, invoice/1234 },
Rules: {
Rule(
Key: resendingLimit,
Value: 5
)
},
Status: processing,
Scheduled: 08/14/2020 11:00:00,
Created: 04/24/2020 17:49:10,
Updated: 04/24/2020 17:49:10,
ID: 5950134772826112
)
{
Id:5950134772826112
Amount:1000000
Name:Daenerys Targaryen Stormborn
TaxId:594.739.480-42
BankCode:665
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2020-08-14 11:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[daenerys invoice/1234]
Rules:[
{
Key:resendingLimit
Value:5
}
]
Fee:200
Status:processing
TransactionIds:[5991715760504832]
Created:2020-04-24 17:49:10.225810 +0000 +0000
Updated:2020-04-24 17:49:10.225810 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags ["daenerys" "invoice/1234"],
:branch-code "2201",
:updated "2020-04-24T17:49:10.225810+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-04-24T17:49:10.225810+00:00",
:status "processing",
:id "5950134772826112",
:transaction-ids ["5991715760504832"],
:account-number "76543-8",
:bank-code "665",
:account-type: "checking",
:external-id: "my-external-id"}
{
"cursor": null,
"transfers": [
{
"id": "5950134772826112",
"status": "processing",
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"scheduled": "2020-08-14T11:00:00+00:00",
"tags": ["daenerys", "invoice/1234"],
"created": "2020-04-24T17:49:10.225810+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"updated": "2020-04-24T17:49:10.225810+00:00",
"transactionIds": ["5991715760504832"],
"fee": 200
}
]
}
Get a single Transfer by its id.
You can use it to check the current status of a Transfer.
import starkbank
transfer = starkbank.transfer.get("5950134772826112")
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfer = await starkbank.transfer.get('5950134772826112');
console.log(transfer);
})();
$transfer = StarkBank\Transfer::get("5950134772826112");
print_r($transfer);
import com.starkbank.*;
Transfer transfer = Transfer.get("5950134772826112");
System.out.println(transfer);
require('starkbank')
transfer = StarkBank::Transfer.get('5950134772826112')
puts transfer
transfer = StarkBank.Transfer.get!("5950134772826112")
transfer |> IO.inspect
using System;
StarkBank.Transfer transfer = StarkBank.Transfer.Get("5950134772826112");
Console.WriteLine(transfer);
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
transfer, err := transfer.Get("5950134772826112", nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
fmt.Println(transfer)
}
(def transfer (starkbank.transfer/get "5950134772826112"))
(println transfer)
curl --location --request GET '{{baseUrl}}/v2/transfer/5950134772826112'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=1000000,
bank_code=665,
branch_code=2201,
created=2020-04-24 17:49:10.225810,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=200,
id=5950134772826112,
name=Daenerys Targaryen Stormborn,
rules=[
Rule(
key=resendingLimit,
value=5
)
],
status=processing,
scheduled=2020-08-14 11:00:00,
tags=['daenerys', 'invoice/1234'],
tax_id=594.739.480-42,
transaction_ids=['5991715760504832'],
updated=2020-04-24 17:49:10.225810
)
Transfer {
id: '5950134772826112',
amount: 1000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '594.739.480-42',
bankCode: '665',
branchCode: '2201',
accountNumber: '76543-8',
accountType: 'checking',
externalId: 'my-external-id',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [ 'daenerys', 'invoice/1234' ],
rules: [
{
key: 'resendingLimit',
value: 5
}
],
fee: 200,
status: 'processing',
scheduled: '2020-08-14T11:00:00+00:00',
created: '2020-04-24T17:49:10.225810+00:00',
updated: '2020-04-24T17:49:10.225810+00:00',
transactionIds: [ '5991715760504832' ]
}
StarkBank\Transfer Object
(
[id] => 5950134772826112
[amount] => 1000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 665
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
[0] => daenerys
[1] => invoice/1234
)
[rules] => Array
(
[0] => StarkBank\Transfer\Rule Object
(
[key] => resendingLimit
[value] => 5
)
)
[fee] => 200
[status] => processing
[scheduled] => DateTime Object
(
[date] => 2020-08-14 11:00:00
[timezone_type] => 1
[timezone] => +00:00
)
[transactionIds] => Array
(
[0] => 5991715760504832
)
[created] => DateTime Object
(
[date] => 2020-04-24 17:49:10.225810
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-04-24 17:49:10.225810
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"id": "5950134772826112",
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"transactionIds": ["5991715760504832"],
"fee": 200,
"tags": [
"daenerys",
"invoice/1234"
],
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"status": "processing",
"scheduled": "2020-08-14T11:00:00+00:00",
"created": "2020-04-24T17:49:10+00:00",
"updated": "2020-04-24T17:49:10+00:00"
})
transfer(
id: 5950134772826112,
amount: 1000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 665,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
description: Daenerys Targaryen Stormborn (594.739.480-42),
transaction_ids: ["5991715760504832"],
fee: 200,
tags: ["daenerys", "invoice/1234"],
rules: [
rule(
key: resendingLimit,
value: 5
)
],
status: processing,
scheduled: 2020-08-14T11:00:00+00:00,
created: 2020-04-24T17:49:10+00:00,
updated: 2020-04-24T17:49:10+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 1000000,
bank_code: "665",
branch_code: "2201",
created: ~U[2020-04-24 17:49:10.225810Z],
external_id: "my-external-id",
fee: 200,
id: "5950134772826112",
name: "Daenerys Targaryen Stormborn",
status: "processing",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[
%{"key" => "resendingLimit", "value" => 5}
],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: ["daenerys", "invoice/1234"],
tax_id: "594.739.480-42",
transaction_ids: ["5991715760504832"],
updated: ~U[2020-04-24 17:49:10.225810Z]
}
Transfer(
Amount: 1000000,
Name: Daenerys Targaryen Stormborn,
TaxID: 594.739.480-42,
BankCode: 665,
BranchCode: 2201,
AccountNumber: 76543-8,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
TransactionIds: { 5991715760504832 },
Fee: 200,
Tags: { daenerys, invoice/1234 },
Rules: {
Rule(
Key: resendingLimit,
Value: 5
)
},
Status: processing,
Scheduled: 08/14/2020 11:00:00,
Created: 04/24/2020 17:49:10,
Updated: 04/24/2020 17:49:10,
ID: 5950134772826112
)
{
Id:5950134772826112
Amount:1000000
Name:Daenerys Targaryen Stormborn
TaxId:594.739.480-42
BankCode:665
BranchCode:2201
AccountNumber:76543-8
AccountType:checking
ExternalId:my-external-id
Scheduled:2020-08-14 11:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[daenerys invoice/1234]
Rules:[
{
Key:resendingLimit
Value:5
}
]
Fee:200
Status:processing
TransactionIds:[5991715760504832]
Created:2020-04-24 17:49:10.225810 +0000 +0000
Updated:2020-04-24 17:49:10.225810 +0000 +0000
}
{:amount 1000000,
:fee 200,
:tags ["daenerys" "invoice/1234"],
:branch-code "2201",
:updated "2020-04-24T17:49:10.225810+00:00",
:name "Daenerys Targaryen Stormborn",
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id "594.739.480-42",
:created "2020-04-24T17:49:10.225810+00:00",
:status "processing",
:id "5950134772826112",
:transaction-ids ["5991715760504832"],
:account-number "76543-8",
:bank-code "665",
:account-type: "checking",
:external-id: "my-external-id"}
{
"transfer": {
"id": "5950134772826112",
"status": "processing",
"amount": 1000000,
"name": "Daenerys Targaryen Stormborn",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"scheduled": "2020-08-14T11:00:00+00:00",
"tags": ["daenerys", "invoice/1234"],
"created": "2020-04-24T17:49:10.225810+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"updated": "2020-04-24T17:49:10.225810+00:00",
"transactionIds": ["5991715760504832"],
"fee": 200
}
}
This method will allow the cancellation of a transfer.
It's important to note that it's only possible to cancel transfers before the start of processing.
import starkbank
transfer = starkbank.transfer.delete("6693962735681536")
print(transfer)
const starkbank = require('starkbank');
(async() => {
let transfer = await starkbank.transfer.delete('6693962735681536');
console.log(transfer);
})();
$transfer = StarkBank\Transfer::delete("6693962735681536");
print_r($transfer);
import com.starkbank.*;
Transfer transfer = Transfer.delete("6693962735681536");
System.out.println(transfer);
require('starkbank')
transfer = StarkBank::Transfer.delete('6693962735681536')
puts transfer
transfer = StarkBank.Transfer.delete!("6693962735681536")
transfer |> IO.inspect
using System;
StarkBank.Transfer transfer = StarkBank.Transfer.Delete("6693962735681536");
Console.WriteLine(transfer);
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
transfer, err := transfer.Delete("6693962735681536", nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
fmt.Println(transfer)
}
(def transfer (starkbank.transfer/delete "6693962735681536"))
(println transfer)
curl --location --request DELETE '{{baseUrl}}/v2/transfer/6693962735681536'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
Transfer(
account_number=76543-8,
account_type=checking,
amount=100000000,
bank_code=665,
branch_code=2201,
created=2020-04-24 17:49:10.225810,
description=Daenerys Targaryen Stormborn (594.739.480-42),
external_id=my-external-id,
fee=200,
id=6693962735681536,
name=Daenerys Targaryen Stormborn,
rules=[
Rule(
key=resendingLimit,
value=5
)
],
status=canceled,
scheduled=2020-08-14 11:00:00,
tags=['daenerys', 'invoice/1234'],
tax_id=594.739.480-42,
transaction_ids=['5991715760504832'],
updated=2020-04-24 17:49:10.225810
)
Transfer {
id: '6693962735681536',
amount: 100000000,
name: 'Daenerys Targaryen Stormborn',
taxId: '594.739.480-42',
bankCode: '665',
branchCode: '2201',
accountNumber: '10000-0',
accountType: 'checking',
externalId: 'my-external-id',
description: 'Daenerys Targaryen Stormborn (594.739.480-42)',
tags: [ 'daenerys', 'invoice/1234 ],
rules: [
{
key: 'resendingLimit',
value: 5
}
],
fee: 200,
status: 'canceled',
scheduled: '2020-08-14T11:00:00+00:00',
created: '2020-04-24T17:49:10.225810+00:00',
updated: '2020-04-24T17:49:10.225810+00:00',
transactionIds: [ '5991715760504832' ]
}
StarkBank\Transfer Object
(
[id] => 6693962735681536
[amount] => 100000000
[name] => Daenerys Targaryen Stormborn
[taxId] => 594.739.480-42
[bankCode] => 665
[branchCode] => 2201
[accountNumber] => 76543-8
[accountType] => checking
[externalId] => my-external-id
[description] => Daenerys Targaryen Stormborn (594.739.480-42)
[tags] => Array
(
[0] => daenerys
[1] => invoice/1234
)
[rules] => Array
(
[0] => StarkBank\Transfer\Rule Object
(
[key] => resendingLimit
[value] => 5
)
)
[fee] => 200
[status] => canceled
[scheduled] => DateTime Object
(
[date] => 2020-08-14 11:00:00
[timezone_type] => 1
[timezone] => +00:00
)
[transactionIds] => Array
(
[0] => 5991715760504832
)
[created] => DateTime Object
(
[date] => 2020-04-09 16:26:08.988538
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-04-09 16:26:10.280537
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"id": "6693962735681536",
"amount": 100000000,
"name": "Daenerys Targaryen Stormborn",
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"externalId": "my-external-id",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"tags": [
"daenerys",
"invoice/1234"
],
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"transactionIds": ["5991715760504832"],
"fee": 200,
"status": "canceled",
"scheduled": '2020-08-14T11:00:00+00:00',
"created": "2020-04-11T01:08:29+00:00",
"updated": "2020-04-11T01:08:31+00:00"
})
transfer(
id: 6693962735681536,
amount: 100000000,
name: Daenerys Targaryen Stormborn,
tax_id: 594.739.480-42,
bank_code: 665,
branch_code: 2201,
account_number: 76543-8,
account_type: checking,
external_id: my-external-id,
description: Daenerys Targaryen Stormborn (594.739.480-42),
transaction_ids: ["5991715760504832"],
fee: 200,
tags: ["daenerys", "invoice/1234"],
rules: [
rule(
key: resendingLimit,
value: 5
)
],
status: canceled,
scheduled: 2020-08-14T11:00:00+00:00,
created: 2020-04-11T01:08:29+00:00,
updated: 2020-04-11T01:08:31+00:00
)
%StarkBank.Transfer {
account_number: "76543-8",
account_type: "checking",
amount: 100000000,
bank_code: "665",
branch_code: "2201",
created: ~U[2020-04-24 17:49:10.039009Z],
external_id: "my-external-id",
fee: 200,
id: "6693962735681536",
name: "Daenerys Targaryen Stormborn",
status: "canceled",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[
%{"key" => "resendingLimit", "value" => 5}
],
description: "Daenerys Targaryen Stormborn (594.739.480-42)",
tags: ["daenerys", "invoice/1234"],
tax_id: "594.739.480-42",
transaction_ids: ["5991715760504832"],
updated: ~U[2020-04-24 17:49:10.611646Z]
}
Transfer(
Amount: 100000000,
Name: Daenerys Targaryen Stormborn,
TaxID: 594.739.480-42,
BankCode: 665,
BranchCode: 2201,
AccountNumber: 76543-8,
AccountType: checking,
ExternalID: my-external-id,
Description: Daenerys Targaryen Stormborn (594.739.480-42),
TransactionIds: { 5991715760504832 },
Fee: 200,
Tags: { daenerys, invoice/1234 },
Rules: {
Rule(
Key: resendingLimit,
Value: 5
)
},
Status: canceled,
Scheduled: 08/14/2020 11:00:00,
Created: 04/14/2020 17:49:10,
Updated: 04/14/2020 17:49:10,
ID: 6693962735681536
)
{
Id:6693962735681536
Amount:100000000
Name:Daenerys Targaryen Stormborn
TaxId:594.739.480-42
BankCode:001
BranchCode:1234
AccountNumber:123456-0
AccountType:checking
ExternalId:my-external-id
Scheduled:2020-08-14 11:00:00 +0000 +0000
Description:Daenerys Targaryen Stormborn (594.739.480-42)
Tags:[daenerys invoice/1234]
Rules:[
{
Key:resendingLimit
Value:5
}
]
Fee:200
Status:canceled
TransactionIds:[5991715760504832]
Created:2020-04-24 17:49:10.611646Z +0000 +0000
Updated:2020-04-24 17:49:10.611646Z +0000 +0000
}
{
:amount 100000000,
:fee 200,
:tags [daenerys invoice/1234],
:branch-code 0001,
:updated 2020-04-24T17:49:10.225810+00:00,
:name Daenerys Targaryen Stormborn,
:description "Daenerys Targaryen Stormborn (594.739.480-42)",
:tax-id 012.345.678-90,
:created 2020-12-05T01:08:39.415347+00:00,
:status canceled,
:id 6693962735681536,
:scheduled 2020-08-14T11:00:0.000000+00:00,
:transaction-ids [5991715760504832],
:account-number 00000-0,
:bank-code 60701190,
:account-type: "checking",
:external-id: "my-external-id"
}
{
"transfer": {
"id": "6693962735681536",
"status": "canceled",
"amount": 100000000,
"name": "Daenerys Targaryen Stormborn",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"taxId": "594.739.480-42",
"bankCode": "665",
"branchCode": "2201",
"accountNumber": "76543-8",
"accountType": "checking",
"scheduled": "2020-08-14T11:00:00+00:00",
"tags": ["daenerys", "invoice/1234"],
"created": "2020-03-25T19:59:02.130246+00:00",
"description": "Daenerys Targaryen Stormborn (594.739.480-42)",
"externalId": "my-external-id",
"updated": "2020-04-24T17:49:10.225810+00:00",
"transactionIds": ["5991715760504832"],
"fee": 200,
}
}
After creation, you can use asynchronous Webhooks to monitor status changes of the entity. The Transfer will follow the following life cycle:
Every time we change a Transfer, we create a Log. Logs are pretty useful for understanding the life cycle of each Transfer. Whenever a new Log is created, we will fire a Webhook to your registered URL.
NOTE: Check the Webhook Get Started for more details on how to receive and process Webhook events.
NOTE: A transfer subscription is required to receive this event.
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
{
"event": {
"id": "5258020443389952",
"subscription": "transfer",
"workspaceId": "6341320293482496",
"created": "2024-02-01T02:06:27.872660+00:00",
"log": {
"id": "4638457385189376",
"type": "success",
"created": "2024-02-01T02:06:26.317809+00:00",
"errors": [],
"transfer": {
"id": "6679150966341632",
"amount": 10000,
"accountNumber": "123456-0",
"accountType": "checking",
"bankCode": "001",
"branchCode": "1234",
"created": "2024-02-01T02:06:26.294998+00:00",
"description": "Payment for service #1234",
"externalId": "my_external_id",
"fee": 0,
"metadata": {},
"name": "Steve Rogers",
"rules": [
{
"key": "resendingLimit",
"value": 5
}
],
"scheduled": "2024-12-02T10:00:00+00:00",
"status": "success",
"tags": [
"order/123",
"customer/456"
],
"taxId": "330.731.970-10",
"transactionIds": ["5991715760504832"],
"updated": "2024-02-01T02:06:26.317865+00:00"
}
}
}
}
Pix Keys are saved in the DICT (Diretorio de Identificadores de Contas Transacionais), the centralized Pix service managed by Bacen (Brazilian Central Bank) that allows you to search for transactional accounts with convenient addressing keys.
The types of keys currently available are CPF, CNPJ, phone number, email and EVP (random UUID).
You can look up a Pix Key to retrieve the recipient's bank account data and use it to create a Pix Transfer without manually entering all the bank details.
Note: Try to avoid looking up DICT keys without sending transfers afterwards, since Bacen's system will block users making too many standalone requests in a short timespan. Invalid key searches also count towards this block.
id
Unique id for the Pix key (CPF, CNPJ, phone, email or EVP).
accountNumber
Account number.
accountType
Account type. Options: "checking", "savings", "salary", "payment".
bankName
Bank name.
branchCode
Account branch code.
ispb
Bank ISPB code.
name
Account owner full name.
ownerType
Account owner type. Options: "business", "personal".
status
Current key status.
taxId
Account owner CPF or CNPJ.
type
Key type. Options: "cpf", "cnpj", "phone", "email", "evp".
Get a single Pix Key by its id. You can retrieve a key's information using the SDKs or via the GET /dict-key/:id API route.
The returned data will include some encrypted parameters, but you shouldn't worry about it. Just pass the values as they come to the Transfer parameters.
Accepted key formats: email, phone number, CPF, CNPJ or EVP (random UUID).
import starkbank
dictkey = starkbank.dictkey.get("jon.snow@starkbank.com")
print(dictkey)
const starkbank = require('starkbank');
(async() => {
let dictKey = await starkbank.dictKey.get('jon.snow@starkbank.com');
console.log(dictKey);
})();
$dictKey = DictKey::get('jon.snow@starkbank.com');
print_r($dictKey);
import com.starkbank.*;
DictKey dictKey = DictKey.get("jon.snow@starkbank.com");
System.out.println(dictKey);
require('starkbank')
dict_key = StarkBank::DictKey.get('jon.snow@starkbank.com')
puts dict_key
dict_key = StarkBank.DictKey.get!("jon.snow@starkbank.com")
dict_key |> IO.inspect
using System;
StarkBank.DictKey dictKey = StarkBank.DictKey.Get("jon.snow@starkbank.com");
Console.WriteLine(dictKey);
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/dictkey"
)
func main() {
key, err := dictkey.Get("jon.snow@starkbank.com", nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
fmt.Printf("%+v", key)
}
(def dict-key (starkbank.dict-key/get "jon.snow@starkbank.com"))
(println dict-key)
curl --location --request GET '{{baseUrl}}/v2/dict-key/jon.snow@starkbank.com'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
DictKey(
account_number=*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
account_type=checking,
branch_code=*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
id=jon.snow@starkbank.com,
ispb=67372284,
name=Jon Snow,
owner_type=naturalPerson,
status=registered,
tax_id=***.456.789-**,
type=email
)
DictKey {
id: 'jon.snow@starkbank.com',
type: 'email',
accountType: 'checking',
name: 'Jon Snow',
taxId: '***.456.789-**',
ownerType: 'naturalPerson',
ispb: '67372284',
branchCode: '*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl',
accountNumber: '*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy',
status: 'registered'
}
StarkBank\DictKey Object
(
[id] => jon.snow@starkbank.com
[type] => email
[accountType] => checking
[name] => Jon Snow
[taxId] => ***.456.789-**
[ownerType] => naturalPerson
[ispb] => 67372284
[branchCode] => *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl
[accountNumber] => *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy
[status] => registered
)
DictKey({
"type": "email",
"accountType": "checking",
"name": "Jon Snow",
"taxId": "***.456.789-**",
"ownerType": "naturalPerson",
"ispb": "67372284",
"branchCode": "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
"accountNumber": "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
"status": "registered",
"id": "jon.snow@starkbank.com"
})
dictkey(
id: jon.snow@starkbank.com,
type: email,
account_type: checking,
name: Jon Snow,
tax_id: ***.456.789-**,
owner_type: naturalPerson,
ispb: 67372284,
branch_code: *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
account_number: *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
status: registered
)
%StarkBank.DictKey{
accountNumber: "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
accountType: "checking",
branchCode: "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
id: "jon.snow@starkbank.com",
ispb: "67372284",
name: "Jon Snow",
ownerType: "naturalPerson",
status: "registered",
taxId: "***.456.789-**",
type: "email"
}
DictKey(
Type: email,
AccountType: checking,
Name: Jon Snow,
TaxId: ***.456.789-**,
OwnerType: naturalPerson,
Ispb: 67372284,
BranchCode: *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
AccountNumber: *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
Status: registered,
ID: jon.snow@starkbank.com
)
{
Id:jon.snow@starkbank.com
Type:email
Name:Jon Snow
TaxId:***.456.789-**
OwnerType:naturalPerson
Ispb:67372284
BranchCode:*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl
AccountNumber:*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy
AccountType:checking
Status:registered
}
{
:branch-code *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
:owner-type naturalPerson,
:name Jon Snow,
:tax-id ***.201.821-**,
:type email,
:status registered,
:account-type checking,
:id jon.snow@starkbank.com,
:ispb 67372284,
:account-number *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy
}
{
"key": {
"status": "registered",
"accountNumber": "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
"ownerType": "naturalPerson",
"taxId": "***.456.789-**",
"accountType": "checking",
"branchCode": "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
"ispb": "67372284",
"name": "Jon Snow",
"id": "jon.snow@starkbank.com",
"type": "email"
}
}
To create a Transfer with a Pix Key, first look up the key to get the recipient's bank account data, then pass the returned parameters to POST /transfer.
The encrypted parameters (accountNumber, branchCode, taxId) can be used directly without decryption.
import starkbank
dict_key = starkbank.dictkey.get("jon.snow@starkbank.com")
transfers = starkbank.transfer.create([
starkbank.Transfer(
amount=1000000,
tax_id=dict_key.tax_id,
name=dict_key.name,
bank_code=dict_key.ispb,
branch_code=dict_key.branch_code,
account_number=dict_key.account_number,
account_type=dict_key.account_type
)
])
for transfer in transfers:
print(transfer)
const starkbank = require('starkbank');
(async() => {
let dictKey = await starkbank.dictKey.get('jon.snow@starkbank.com');
let transfers = await starkbank.transfer.create([
{
amount: 1000000,
taxId: dictKey.taxId,
name: dictKey.name,
bankCode: dictKey.ispb,
branchCode: dictKey.branchCode,
accountNumber: dictKey.accountNumber,
accountType: dictKey.accountType
}
])
for (let transfer of transfers) {
console.log(transfer);
}
})();
$dictKey = StarkBank\DictKey::get("jon.snow@starkbank.com");
$transfers = StarkBank\Transfer::create([
new StarkBank\Transfer([
"amount" => 1000000,
"taxId" => $dictKey->taxId,
"name" => $dictKey->name,
"bankCode" => $dictKey->ispb,
"branchCode" => $dictKey->branchCode,
"accountNumber" => $dictKey->accountNumber,
"accountType" => $dictKey->accountType
])
]);
foreach($transfers as $transfer){
print_r($transfer);
}
import com.starkbank.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
DictKey dictKey = DictKey.get("jon.snow@starkbank.com");
List<Transfer> transfers = new ArrayList<>();
HashMap<String, Object> data = new HashMap<>();
data.put("amount", 1000000);
data.put("taxId", dictKey.taxId);
data.put("name", dictKey.name);
data.put("bankCode", dictKey.ispb);
data.put("branchCode", dictKey.branchCode);
data.put("accountNumber", dictKey.accountNumber);
data.put("accountType", dictKey.accountType);
transfers.add(new Transfer(data));
transfers = Transfer.create(transfers);
for (Transfer transfer : transfers){
System.out.println(transfer);
}
require('starkbank')
dict_key = StarkBank::DictKey.get('jon.snow@starkbank.com')
transfers = StarkBank::Transfer.create(
[
StarkBank::Transfer.new(
amount: 1000000,
tax_id: dict_key.tax_id,
name: dict_key.name,
bank_code: dict_key.ispb,
branch_code: dict_key.branch_code,
account_number: dict_key.account_number,
account_type: dict_key.account_type
)
]
)
transfers.each do |transfer|
puts transfer
end
dict_key = StarkBank.DictKey.get!("jon.snow@starkbank.com")
transfers = StarkBank.Transfer.create!([
%StarkBank.Transfer{
amount: 1000000,
tax_id: dict_key.tax_id,
name: dict_key.name,
bank_code: dict_key.ispb,
branch_code: dict_key.branch_code,
account_number: dict_key.account_number,
account_type: dict_key.account_type
}
])
for transfer <- transfers do
transfer |> IO.inspect
end
using System;
using System.Collections.Generic;
StarkBank.DictKey dictKey = StarkBank.DictKey.Get("jon.snow@starkbank.com");
List<StarkBank.Transfer> transfers = StarkBank.Transfer.Create(
new List<StarkBank.Transfer> {
new StarkBank.Transfer(
amount: 1000000,
taxID: dictKey.TaxId,
name: dictKey.Name,
bankCode: dictKey.Ispb,
branchCode: dictKey.BranchCode,
accountNumber: dictKey.AccountNumber,
accountType: dictKey.AccountType
)
}
);
foreach(StarkBank.Transfer transfer in transfers)
{
Console.WriteLine(transfer);
}
package main
import (
"fmt"
"github.com/starkbank/sdk-go/starkbank/dictkey"
"github.com/starkbank/sdk-go/starkbank/transfer"
)
func main() {
key, err := dictkey.Get("jon.snow@starkbank.com", nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
transfers, err := transfer.Create(
[]transfer.Transfer{
{
Amount: 1000000,
TaxId: key.TaxId,
Name: key.Name,
BankCode: key.Ispb,
BranchCode: key.BranchCode,
AccountNumber: key.AccountNumber,
AccountType: key.AccountType,
},
}, nil)
if err.Errors != nil {
for _, e := range err.Errors {
fmt.Printf("code: %s, message: %s", e.Code, e.Message)
}
}
for _, transfer := range transfers {
fmt.Printf("%+v", transfer)
}
}
(def dict-key (starkbank.dict-key/get "jon.snow@starkbank.com"))
(def transfers
(starkbank.transfer/create
[
{
:amount 1000000
:tax-id (:tax-id dict-key)
:name (:name dict-key)
:bank-code (:ispb dict-key)
:branch-code (:branch-code dict-key)
:account-number (:account-number dict-key)
:account-type (:account-type dict-key)
}
]))
(dorun (map println transfers))
# Step 1: Get the Pix Key
curl --location --request GET '{{baseUrl}}/v2/dict-key/jon.snow@starkbank.com'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
# Step 2: Create the Transfer using the returned data
curl --location --request POST '{{baseUrl}}/v2/transfer'
--header 'Access-Id: {{accessId}}'
--header 'Access-Time: {{accessTime}}'
--header 'Access-Signature: {{accessSignature}}'
--header 'Content-Type: application/json'
--data-raw '{
"transfers": [
{
"amount": 1000000,
"taxId": "***.456.789-**",
"name": "Jon Snow",
"bankCode": "67372284",
"branchCode": "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
"accountNumber": "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
"accountType": "checking"
},
]
}'
Transfer(
account_number=*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
account_type=checking,
amount=1000000,
bank_code=67372284,
branch_code=*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
created=2020-02-06 16:22:24.664134,
description=Jon Snow (***.456.789-**),
external_id=,
fee=0,
id=5412038532661248,
name=Jon Snow,
rules=[],
scheduled=2020-08-14 10:00:00,
status=created,
tags=[],
tax_id=***.456.789-**,
transaction_ids=[],
updated=2020-02-06 16:22:24.664148
)
Transfer {
id: '5412038532661248',
amount: 1000000,
name: 'Jon Snow',
taxId: '***.456.789-**',
bankCode: '67372284',
branchCode: '*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl',
accountNumber: '*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy',
accountType: 'checking',
externalId: '',
scheduled: '2023-08-14T10:00:00+00:00',
description: 'Jon Snow (***.456.789-**)',
tags: [ ],
rules: [ ],
fee: 0,
status: 'created',
created: '2020-02-06T16:22:24.664148+00:00',
updated: '2020-02-06T16:22:24.664148+00:00',
transactionIds: []
}
StarkBank\Transfer Object
(
[id] => 5412038532661248
[amount] => 1000000
[name] => Jon Snow
[taxId] => ***.456.789-**
[bankCode] => 67372284
[branchCode] => *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl
[accountNumber] => *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy
[accountType] => checking
[externalId] =>
[scheduled] => DateTime Object
(
[date] => 2023-08-14 10:00:00.000000
[timezone_type] => 1
[timezone] => +00:00
)
[description] => Jon Snow (***.456.789-**)
[tags] => Array
(
)
[rules] => Array
(
)
[fee] => 0
[status] => created
[transactionIds] => Array
(
)
[created] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
[updated] => DateTime Object
(
[date] => 2020-02-06 16:22:24.664148
[timezone_type] => 1
[timezone] => +00:00
)
)
Transfer({
"amount": 1000000,
"name": "Jon Snow",
"taxId": "***.456.789-**",
"bankCode": "67372284",
"branchCode": "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
"accountNumber": "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
"accountType": "checking",
"externalId": "",
"scheduled": "2023-08-14T10:00:00+00:00",
"description": "Jon Snow (***.456.789-**)",
"tags": [],
"rules": [],
"fee": 0,
"status": "created",
"transactionIds": [],
"created": "2020-02-06T16:22:24.664148+00:00",
"updated": "2020-02-06T16:22:24.664148+00:00",
"id": "5412038532661248"
})
transfer(
id: 5412038532661248,
amount: 1000000,
name: Jon Snow,
tax_id: ***.456.789-**,
bank_code: 67372284,
branch_code: *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
account_number: *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
account_type: checking,
external_id: ,
scheduled: 2023-08-14T10:00:00+00:00,
description: Jon Snow (***.456.789-**),
tags: [],
rules: [],
fee: 0,
status: created,
transaction_ids: [],
created: 2020-02-06T16:22:24+00:00,
updated: 2020-02-06T16:22:24+00:00
)
%StarkBank.Transfer {
account_number: "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
account_type: "checking",
amount: 1000000,
bank_code: "67372284",
branch_code: "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
created: ~U[2020-02-06 16:22:24.664148Z],
external_id: "",
fee: 0,
id: "5412038532661248",
name: "Jon Snow",
status: "created",
scheduled: ~U[2020-08-14 11:00:00Z],
rules: %Transfer.Rule[],
description: "Jon Snow (***.456.789-**)",
tags: [],
tax_id: "***.456.789-**",
transaction_ids: [],
updated: ~U[2020-02-06 16:22:24.664148Z]
}
Transfer(
Amount: 1000000,
Name: Jon Snow,
BranchCode: *ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl,
AccountNumber: *ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy,
TaxID: ***.456.789-**,
AccountType: checking,
ExternalID: ,
Description: Jon Snow (***.456.789-**),
BankCode: 67372284,
Scheduled: 07/02/2020 07:00:00,
Tags: {},
Rules: {},
Status: created,
Fee: 0,
TransactionIds: { },
Created: 06/02/2020 16:22:24,
Updated: 06/02/2020 16:22:24,
ID: 5412038532661248
)
{
Id:5412038532661248
Amount:1000000
Name:Jon Snow
TaxId:***.456.789-**
BankCode:67372284
BranchCode:*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl
AccountNumber:*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy
AccountType:checking
ExternalId:
Scheduled:2023-02-06 10:00:00 +0000 +0000
Description:Jon Snow (***.456.789-**)
Tags:[]
Rules:[]
Fee:0
Status:created
TransactionIds:[]
Created:2020-02-06 16:22:24.664148 +0000 +0000
Updated:2020-02-06 16:22:24.664148 +0000 +0000
}
{:amount 1000000,
:fee 0,
:tags [],
:branch-code "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
:updated "2020-02-06T16:22:24.664148+00:00",
:name "Jon Snow",
:description "Jon Snow (***.456.789-**)",
:tax-id "***.456.789-**",
:created "2020-02-06T16:22:24.664148+00:00",
:status "created",
:id "5412038532661248",
:transaction-ids [],
:account-number "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
:bank-code "67372284",
:account-type: "checking",
:external-id: ""}
{
"message": "Transfer(s) successfully created",
"transfers": [
{
"accountNumber": "*ZW5jcnlwdGVkLWFjY291bnQtbnVtYmVy",
"accountType": "checking",
"amount": 1000000,
"bankCode": "67372284",
"branchCode": "*ZW5jcnlwdGVkLWJyYW5jaC1jb2Rl",
"created": "2020-02-06T16:22:24.387022+00:00",
"description": "Jon Snow (***.456.789-**)",
"externalId": "",
"fee": 0,
"id": "5412038532661248",
"name": "Jon Snow",
"rules": [],
"scheduled": "2023-08-14T10:00:00+00:00",
"status": "created",
"tags": [],
"taxId": "***.456.789-**",
"transactionIds": [],
"updated": "2020-02-06T16:22:24.664148+00:00"
},
]
}