Overview

Setup

Transfer

Transfer Overview

The Transfer Object

Creating Ted Transfers

Creating Pix Transfers

Creating Transfers with accountType, rules parameters

Creating Transfers with description, externalId, tags parameters

Creating Transfers with scheduled parameter

Listing Transfers

Getting a Transfer

Canceling Transfer

Receiving Transfer Webhook

Pix Key

Pix Key Overview

The Pix Key Object

Getting a Pix Key

Creating Transfer with Pix Key

Transfer

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.

RESOURCE SUMMARY
Create Pix or Ted Transfers
Look up recipient data via Pix keys before creating transfers

Setup

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 Overview

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.

The Transfer Status

Each Transfer has a status that can change over time according to its life cycle:

transfer-status

StatusDescription
CreatedThe Transfer was successfully created in Stark Bank.
ProcessingThe Transfer is being processed by Stark Bank.
SuccessThe Transfer was successfully completed.
FailedThe Transfer was unsuccessful.
CanceledThe Transfer was canceled before processing.

The Transfer Logs

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:

transfer-log

A completed Transfer can be reversed back to its payer. When a reversal occurs, the following flow of logs will happen:

transfer-reversal

Log typeStatusDescription
CreatedCreatedThe Transfer was successfully created in Stark Bank.
SendingProcessingThe Transfer is being sent to the banking network.
SentProcessingThe Transfer was sent to the banking network.
SuccessSuccessThe Transfer was successfully completed and credited.
FailedFailedThe Transfer was unsuccessful.
ResendingProcessingThe Transfer is being retried after a temporary failure.
CancelingProcessingThe Transfer cancellation is being processed.
CanceledCanceledThe Transfer was canceled before processing.
ReversingSuccessThe Transfer reversal is being processed.
ReversedSuccessThe Transfer was reversed back to the payer.
RefundedSuccessThe Transfer was refunded.

The Transfer Object

Attributes

id STRING

Unique id for the transfer.

amount INTEGER

Amount in cents to be transferred. Example: 1000000 (R$10,000.00).

name STRING

Recipient full name.

taxId STRING

Recipient CPF or CNPJ.

bankCode STRING

3-digit bank code (Ted) or 8-digit ISPB code (Pix) of the recipient's bank.

branchCode STRING

Recipient's branch code.

accountNumber STRING

Recipient's account number.

accountType STRING

Recipient's bank account type. Options: "checking", "payment", "savings", "salary". Default: "checking".

externalId STRING

Unique ID to prevent duplicate transfers. Repeated externalIds will cause failures.

scheduled STRING

Scheduled date or datetime for the transfer. Example: "2020-08-14" or "2020-08-14T15:23:26+00:00".

description STRING

Custom description to override the default bank statement description.

tags LIST OF STRINGS

Tags associated with the transfer.

rules LIST OF OBJECTS

List of rule objects with key and value to modify transfer behavior.

fee INTEGER

Fee charged in cents.

status STRING

Current transfer status. Options: "created", "processing", "success", "failed", "canceled".

transactionIds LIST OF STRINGS

Ledger transaction IDs linked to the transfer.

created STRING

Creation datetime. Example: "2020-02-06T16:22:24.664148+00:00".

updated STRING

Last update datetime. Example: "2020-02-06T16:22:24.664148+00:00".

Creating Ted Transfers

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.

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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

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"
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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"
        },
    ]
}
    

Creating Pix Transfers

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.

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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

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"
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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"
        },
    ]
}
    

Creating Transfers with accountType, rules parameters

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.

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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

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
                }
            ]
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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"
        },
    ]
}
    

Creating Transfers with description, externalId, tags parameters

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"]

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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

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"
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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"
        },
    ]
}
    

Creating Transfers with scheduled parameter

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"

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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

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",
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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"
        },
    ]
}
    

Listing Transfers

Get a list of Transfers using filters such as after, before, status and tags to narrow the results.

Python

import starkbank

transfers = starkbank.transfer.query(
    after="2020-04-01",
    before="2020-04-30",
)

for transfer in transfers:
    print(transfer)
    

Javascript

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);
    }
})();
    

PHP

$transfers = StarkBank\Transfer::query([
    "after" => "2020-04-01",
    "before" => "2020-04-30"
]);

foreach($transfers as $transfer){
    print_r($transfer);
}
    

Java

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);
}
    

Ruby

require('starkbank')

transfers = StarkBank::Transfer.query(
    after: '2020-04-01',
    before: '2020-04-30'
)

transfers.each do |transfer|
    puts transfer
end
    

Elixir

transfers = StarkBank.Transfer.query!(
    after: "2020-04-01",
    before: "2020-04-30"
)

for transfer <- transfers do
    transfer |> IO.inspect
end
    

C#

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);
}
    

Go

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)
        }
    }
}
    

Clojure

(def transfers
    (starkbank.transfer/query
    {
        :after "2020-04-01"
        :before "2020-04-30"
    }))

(dorun (map println transfers))
    

Curl

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}}'
    
RESPONSE

Python

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
)
    

Javascript

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' ]
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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
        }
    ]
}
    

Getting a Transfer

Get a single Transfer by its id.

You can use it to check the current status of a Transfer.

Python

import starkbank

transfer = starkbank.transfer.get("5950134772826112")

print(transfer)
    

Javascript

const starkbank = require('starkbank');

(async() => {
    let transfer = await starkbank.transfer.get('5950134772826112');
    console.log(transfer);
})();
    

PHP

$transfer = StarkBank\Transfer::get("5950134772826112");

print_r($transfer);
    

Java

import com.starkbank.*;

Transfer transfer = Transfer.get("5950134772826112");

System.out.println(transfer);
    

Ruby

require('starkbank')

transfer = StarkBank::Transfer.get('5950134772826112')

puts transfer
    

Elixir

transfer = StarkBank.Transfer.get!("5950134772826112")

transfer |> IO.inspect
    

C#

using System;

StarkBank.Transfer transfer = StarkBank.Transfer.Get("5950134772826112");

Console.WriteLine(transfer);
    

Go

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)
}
    

Clojure

(def transfer (starkbank.transfer/get "5950134772826112"))

(println transfer)
    

Curl

curl --location --request GET '{{baseUrl}}/v2/transfer/5950134772826112' 
--header 'Access-Id: {{accessId}}' 
--header 'Access-Time: {{accessTime}}' 
--header 'Access-Signature: {{accessSignature}}'
    
RESPONSE

Python

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
)
    

Javascript

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' ]
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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"}
    

Curl

{
    "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
    }
}
    

Canceling Transfer

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.

Python

import starkbank

transfer = starkbank.transfer.delete("6693962735681536")

print(transfer)
    

Javascript

const starkbank = require('starkbank');

(async() => {
    let transfer = await starkbank.transfer.delete('6693962735681536');
    console.log(transfer);
})();
    

PHP

$transfer = StarkBank\Transfer::delete("6693962735681536");

print_r($transfer);
    

Java

import com.starkbank.*;

Transfer transfer = Transfer.delete("6693962735681536");

System.out.println(transfer);
    

Ruby

require('starkbank')

transfer = StarkBank::Transfer.delete('6693962735681536')

puts transfer
    

Elixir

transfer = StarkBank.Transfer.delete!("6693962735681536")

transfer |> IO.inspect
    

C#

using System;

StarkBank.Transfer transfer = StarkBank.Transfer.Delete("6693962735681536");

Console.WriteLine(transfer);
    

Go

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)
}
    

Clojure

(def transfer (starkbank.transfer/delete "6693962735681536"))

(println transfer)
    

Curl

curl --location --request DELETE '{{baseUrl}}/v2/transfer/6693962735681536' 
--header 'Access-Id: {{accessId}}' 
--header 'Access-Time: {{accessTime}}' 
--header 'Access-Signature: {{accessSignature}}'
    
RESPONSE

Python

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
)
    

Javascript

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' ]
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{
    :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"
}
    

Curl

{
    "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,
    }
}
    

Receiving Transfer Webhook

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.

RESPONSE

Python

{
  "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"
      }
    }
  }
}
        

Javascript

{
  "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"
      }
    }
  }
}
        

PHP

{
  "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"
      }
    }
  }
}
        

Java

{
  "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"
      }
    }
  }
}
        

Ruby

{
  "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"
      }
    }
  }
}
        

Elixir

{
  "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"
      }
    }
  }
}
        

C#

{
  "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"
      }
    }
  }
}
        

Go

{
  "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"
      }
    }
  }
}
        

Clojure

{
  "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"
      }
    }
  }
}
        

Curl

{
  "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 Key Overview

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.

The Pix Key Object

Attributes

id STRING

Unique id for the Pix key (CPF, CNPJ, phone, email or EVP).

accountNumber STRING

Account number.

accountType STRING

Account type. Options: "checking", "savings", "salary", "payment".

bankName STRING

Bank name.

branchCode STRING

Account branch code.

ispb STRING

Bank ISPB code.

name STRING

Account owner full name.

ownerType STRING

Account owner type. Options: "business", "personal".

status STRING

Current key status.

taxId STRING

Account owner CPF or CNPJ.

type STRING

Key type. Options: "cpf", "cnpj", "phone", "email", "evp".

Getting a Pix Key

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).

Python

import starkbank

dictkey = starkbank.dictkey.get("jon.snow@starkbank.com")

print(dictkey)
    

Javascript

const starkbank = require('starkbank');

(async() => {
    let dictKey = await starkbank.dictKey.get('jon.snow@starkbank.com');
    console.log(dictKey);
})();
    

PHP

$dictKey = DictKey::get('jon.snow@starkbank.com');

print_r($dictKey);
    

Java

import com.starkbank.*;

DictKey dictKey = DictKey.get("jon.snow@starkbank.com");

System.out.println(dictKey);
    

Ruby

require('starkbank')

dict_key = StarkBank::DictKey.get('jon.snow@starkbank.com')

puts dict_key
    

Elixir

dict_key = StarkBank.DictKey.get!("jon.snow@starkbank.com")
dict_key |> IO.inspect
    

C#

using System;

StarkBank.DictKey dictKey = StarkBank.DictKey.Get("jon.snow@starkbank.com");

Console.WriteLine(dictKey);
    

Go

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)
}
    

Clojure

(def dict-key (starkbank.dict-key/get "jon.snow@starkbank.com"))

(println dict-key)
    

Curl

curl --location --request GET '{{baseUrl}}/v2/dict-key/jon.snow@starkbank.com' 
--header 'Access-Id: {{accessId}}' 
--header 'Access-Time: {{accessTime}}' 
--header 'Access-Signature: {{accessSignature}}'
    
RESPONSE

Python

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
)
    

Javascript

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'
}
    

PHP

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
)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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"
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{
    :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
}
    

Curl

{
    "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"
    }
}
    

Creating Transfer with Pix Key

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.

Python

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)
    

Javascript

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);
    }
})();
    

PHP

$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);
}
    

Java

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);
}
    

Ruby

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
    

Elixir

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
    

C#

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);
}
    

Go

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)
    }
}
    

Clojure

(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))
    

Curl

# 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"
        },
    ]
}'
    
RESPONSE

Python

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
)
    

Javascript

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: []
}
    

PHP

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
        )

)
    

Java

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"
})
    

Ruby

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
)
    

Elixir

%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]
}
    

C#

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
)
    

Go

{
    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
}
    

Clojure

{: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: ""}
    

Curl

{
    "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"
        },
    ]
}