Indirect Pix Participant

An Indirect Participant operates Pix payments under Stark Infra's ISPB, without running its own Direct participation connection to the SPI.

Offer Pix to your customers without the complexity of a direct Bacen integration: connect through Stark Infra as your direct participant and operate with security and simplicity. You get a fast path to launch Pix in your product. Send and receive payments, generate static and dynamic Brcodes, decode incoming QR codes and offer your customers the new Pix Automático (recurring Pix) flows, all without managing settlement accounts or running your own SPI connection.

This guide focuses on the resources an Indirect Participant typically needs. If you intend to operate under your own ISPB and license as a full direct participant, head to the Direct Participant guide instead.

Dispute handling — infractions, chargebacks, fraud markers and disputes — lives in the MED guide, and recurring Pix in the Pix Automático guide.

NOTE: Operating as an Indirect Participant still requires authorization with Bacen. Read Core Concepts before continuing this guide.

RESOURCE SUMMARY
Send and receive Pix payments under our ISPB.
Refund a received Pix back to its sender.
Report transactions that were settled internally on the participant.
Issue reusable QR codes that initiate Pix payments.
Issue single-use QR codes with custom amounts and metadata.
Get information from a QR code to initiate a Pix payment or accept a Pix Subscription.
Register CPF, CNPJ, phone, e-mail or random keys in DICT.
Claim a Pix key from another participant via portability or ownership.
Consult end-user statistics about Pix keys, Pix requests, frauds and infractions registered in Bacen's systems.
Generate daily Pix statements.

Why Stark Infra

We provide integrated modules that cover everything from key synchronization to the full transactional structure. A few reasons institutions choose Stark Infra:

As an indirect participant, your fintech sends and receives Pix like any bank — always with your customer as the account holder, with no graphic or virtual accounts.
The same API works whether you are a direct or indirect participant. If you later become a direct participant at Bacen, there's no need to change your code.
Eliminate downtime with full scalability for millions of Pix transactions, 24/7, while your team focuses on the operation.

Dynamic QR Code, Pix Automático and more

New Bacen product releases can be a nightmare for technical teams. That's why we built simple interfaces so your institution can offer every Pix feature to your customers — dynamic QR codes, Pix Automático (recurring Pix) and more.

Developer First

We love simplicity. Our reliable, secure and scalable banking-infrastructure API lets you integrate in minutes. You get a complete Sandbox environment that simulates production scenarios and enables performance testing, with top-tier support along the way.

Explore the full API reference to see every Pix endpoint.

Setup

1. Create a workspace at Stark Infra and confirm the workspace is configured as an Indirect Participant.

2. Generate ECDSA keys and register the public key. See How to create your ECDSA keys.

3. Create a Webhook resource subscribed to the events you want to consume: pix-request, pix-reversal, pix-internal-transaction-report, pix-key, pix-claim, pix-infraction, pix-chargeback, pix-dispute, pix-pull-subscription, pix-pull-request.

4. Top up your indirect balance with a Pix Request before sending payments out.

Pix Request Overview

A Pix Request represents an inbound or outbound Pix payment in the Brazilian instant payment system.

Here we will show you how to create and manage them.

The Pix Request Status

After creation, you can use asynchronous Webhooks to monitor status changes of a Pix Request.

Outbound Pix Requests (the ones you send) follow this life cycle:

pix-request-outbound-status

Inbound Pix Requests (the ones you receive and authorize) follow this life cycle:

pix-request-inbound-status

StatusDescription
CreatedThe Pix Request was registered at Stark Infra.
ProcessingThe Pix Request is being processed.
SuccessThe Pix Request was completed and settled.
FailedThe Pix Request failed or was denied.

The Pix Request Logs

Every time we change a Pix Request, we create a Log. Logs are useful for understanding the life cycle of each Pix Request, and we fire a Webhook to your registered URL whenever a new Log is created. The possible Pix Request Logs:

pix-request-outbound-log

For inbound Pix Requests:

pix-request-inbound-log

Log typeStatusDescription
SuccessSuccessThe Pix Request was completed successfully.
FailedFailedThe Pix Request failed.
DeniedFailedThe inbound Pix Request authorization was denied.

Receiving a Pix Request

Every time a Pix participant sends you a Pix, an inbound Pix Request is created and we send you a synchronous POST authorization request to your registered pixRequestUrl, which you must analyze and answer with approval or denial. You must respond to this synchronous authorization webhook within 1 second; if you do not respond in time, Stark Infra resolves the authorization using the default behavior. If no pixRequestUrl is registered, the inbound Pix Request is denied by default.

receiving-a-pix-request

The Pix Request Object

Attributes

id STRING

Unique id for the Pix request.

amount INTEGER

Amount in cents to be transferred. Example: 100 (R$1.00).

endToEndId STRING

Unique end-to-end ID assigned by the Pix system.

fee INTEGER

Fee charged in cents for this Pix request.

flow STRING

Direction of the Pix request. Options: "in" (received), "out" (sent).

method STRING

Method through which this Pix was processed. Options: "manual", "dict", "initiator", "dynamicQrcode", "staticQrcode", "payerQrcode", "subscription", "contactless", "staticContactless".

externalId STRING

Unique external ID to prevent duplicates.

initiatorTaxId STRING

Tax ID of the payment initiator.

receiverBankCode STRING

Bank ISPB code of the receiver.

receiverBranchCode STRING

Branch code of the receiver's bank account.

receiverAccountNumber STRING

Account number of the receiver.

receiverAccountType STRING

Account type of the receiver. Options: "checking", "savings", "salary", "payment".

receiverName STRING

Full name of the receiver.

receiverTaxId STRING

CPF or CNPJ of the receiver.

senderBankCode STRING

Bank ISPB code of the sender.

senderBranchCode STRING

Branch code of the sender's bank account.

senderAccountNumber STRING

Account number of the sender.

senderAccountType STRING

Account type of the sender. Options: "checking", "savings", "salary", "payment".

senderName STRING

Full name of the sender.

senderTaxId STRING

CPF or CNPJ of the sender.

status STRING

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

tags LIST OF STRINGS

Tags associated with the Pix request.

description STRING

Description of the Pix request.

reconciliationId STRING

Reconciliation ID for the Pix request.

cashAmount INTEGER

Amount in cents to be withdrawal when paying. Example: 1000 (R$10.00).

cashierType STRING

Cashier's type for Pix Cash-out and Pix Change. Options: "merchant", "participant", "other".

cashierBankCode STRING

Cashier's bank ISPB code for Pix Cash-out and Pix Change.

priority STRING

Pix request processing priority. Options: "high", "low".

reason STRING

Reason why this Pix request was created. Options: "customerRequest", "subscriptionFlaw", "fraud".

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Pix Requests

Send Pix payments to any Pix-enabled bank account in Brazil.

To create a manual Pix Request you need the receiver's account information. If you only have a Pix Key, use Get a Pix Key to retrieve the required information before creating the Pix Request.

Every time a participant sends you a Pix, an inbound Pix Request is created and a synchronous POST authorization request is sent to your registered pixRequestUrl, which you must answer with approval or denial within 1 second (HTTP 200) or it is denied by default. Approve with status "approved"; deny with status "denied" and a reason such as "invalidAccountNumber".

sending-a-pix-request

ENDPOINT
POST /v2/pix-request
REQUEST

Python

import starkinfra

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=1000,
        external_id="my-external-id-1",
        end_to_end_id="E20018183202201011000r01",
        sender_account_number="00000-0",
        sender_branch_code="0001",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="012.345.678-90",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_bank_code="20018183",
        receiver_tax_id="98.765.432/0001-10",
        receiver_branch_code="0001",
        receiver_name="Jon Snow",
        tags=["transfer", "pix"]
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

const requests = await starkinfra.pixRequest.create([
    {
        amount: 1000,
        externalId: "my-external-id-1",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for (const request of requests) {
    console.log(request)
}
  

PHP

 1000,
        "externalId" => "my-external-id-1",
        "receiverBankCode" => "20018183",
        "receiverBranchCode" => "0001",
        "receiverAccountNumber" => "10000-0",
        "receiverAccountType" => "checking",
        "receiverName" => "Jon Snow",
        "receiverTaxId" => "012.345.678-90",
        "tags" => ["transfer", "pix"]
    ])
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List requests = PixRequest.create(
    Arrays.asList(
        new PixRequest.Builder()
            .amount(1000L)
            .externalId("my-external-id-1")
            .receiverBankCode("20018183")
            .receiverBranchCode("0001")
            .receiverAccountNumber("10000-0")
            .receiverAccountType("checking")
            .receiverName("Jon Snow")
            .receiverTaxId("012.345.678-90")
            .tags(Arrays.asList("transfer", "pix"))
            .build()
    )
);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: 1000,
        external_id: "my-external-id-1",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

requests = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 1000,
        external_id: "my-external-id-1",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List requests = PixRequest.Create(
    new List {
        new PixRequest(
            amount: 1000,
            externalId: "my-external-id-1",
            receiverBankCode: "20018183",
            receiverBranchCode: "0001",
            receiverAccountNumber: "10000-0",
            receiverAccountType: "checking",
            receiverName: "Jon Snow",
            receiverTaxId: "012.345.678-90",
            tags: new List { "transfer", "pix" }
        )
    }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                1000,
            ExternalId:            "my-external-id-1",
            ReceiverBankCode:      "20018183",
            ReceiverBranchCode:    "0001",
            ReceiverAccountNumber: "10000-0",
            ReceiverAccountType:   "checking",
            ReceiverName:          "Jon Snow",
            ReceiverTaxId:         "012.345.678-90",
            Tags:                  []string{"transfer", "pix"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

(def requests
    (starkinfra.pix-request/create
        [{:amount 1000
          :external-id "my-external-id-1"
          :receiver-bank-code "20018183"
          :receiver-branch-code "0001"
          :receiver-account-number "10000-0"
          :receiver-account-type "checking"
          :receiver-name "Jon Snow"
          :receiver-tax-id "012.345.678-90"
          :tags ["transfer" "pix"]}]))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 1000,
            "externalId": "my-external-id-1",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverName": "Jon Snow",
            "receiverTaxId": "012.345.678-90",
            "tags": ["transfer", "pix"]
        }
    ]
}'
  
RESPONSE

Python

[
    PixRequest(
        id="5656565656565656",
        amount=1000,
        end_to_end_id="E20018183202201011000r01",
        fee=0,
        flow="out",
        method="manual",
        external_id="my-external-id-1",
        initiator_tax_id="",
        receiver_bank_code="20018183",
        receiver_branch_code="0001",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_name="Jon Snow",
        receiver_tax_id="98.765.432/0001-10",
        sender_bank_code="34052649",
        sender_branch_code="0001",
        sender_account_number="00000-0",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="012.345.678-90",
        status="created",
        tags=["transfer", "pix"],
        description="",
        reconciliation_id="",
        cash_amount=0,
        cashier_type="",
        cashier_bank_code="",
        priority="high",
        reason="customerRequest",
        created="2022-01-01T00:00:00+00:00",
        updated="2022-01-01T00:00:00+00:00"
    )
]
  

Javascript

[
    {
        id: "5656565656565656",
        amount: 1000,
        externalId: "my-external-id-1",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        status: "created",
        flow: "out",
        tags: ["transfer", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

PHP

[
    PixRequest Object (
        [id] => 5656565656565656
        [amount] => 1000
        [externalId] => my-external-id-1
        [receiverBankCode] => 20018183
        [receiverBranchCode] => 0001
        [receiverAccountNumber] => 10000-0
        [receiverAccountType] => checking
        [receiverName] => Jon Snow
        [receiverTaxId] => 012.345.678-90
        [status] => created
        [flow] => out
        [tags] => Array ( [0] => transfer [1] => pix )
        [created] => 2022-01-01T00:00:00+00:00
        [updated] => 2022-01-01T00:00:00+00:00
    )
]
  

Java

[
    PixRequest(
        id=5656565656565656,
        amount=1000,
        externalId=my-external-id-1,
        receiverBankCode=20018183,
        receiverBranchCode=0001,
        receiverAccountNumber=10000-0,
        receiverAccountType=checking,
        receiverName=Jon Snow,
        receiverTaxId=012.345.678-90,
        status=created,
        flow=out,
        tags=[transfer, pix],
        created=2022-01-01T00:00:00+00:00,
        updated=2022-01-01T00:00:00+00:00
    )
]
  

Ruby

[
    starkinfra_pix_request: {
        id: "5656565656565656",
        amount: 1000,
        external_id: "my-external-id-1",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        status: "created",
        flow: "out",
        tags: ["transfer", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Elixir

[
    %StarkInfra.PixRequest{
        id: "5656565656565656",
        amount: 1000,
        external_id: "my-external-id-1",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        status: "created",
        flow: "out",
        tags: ["transfer", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

C#

[
    PixRequest(
        id: "5656565656565656",
        amount: 1000,
        externalId: "my-external-id-1",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        status: "created",
        flow: "out",
        tags: [ "transfer", "pix" ],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    )
]
  

Go

[
    {
        Id: "5656565656565656",
        Amount: 1000,
        ExternalId: "my-external-id-1",
        ReceiverBankCode: "20018183",
        ReceiverBranchCode: "0001",
        ReceiverAccountNumber: "10000-0",
        ReceiverAccountType: "checking",
        ReceiverName: "Jon Snow",
        ReceiverTaxId: "012.345.678-90",
        Status: "created",
        Flow: "out",
        Tags: ["transfer", "pix"],
        Created: "2022-01-01T00:00:00+00:00",
        Updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Clojure

[
    {:id "5656565656565656"
     :amount 1000
     :external-id "my-external-id-1"
     :receiver-bank-code "20018183"
     :receiver-branch-code "0001"
     :receiver-account-number "10000-0"
     :receiver-account-type "checking"
     :receiver-name "Jon Snow"
     :receiver-tax-id "012.345.678-90"
     :status "created"
     :flow "out"
     :tags ["transfer" "pix"]
     :created "2022-01-01T00:00:00+00:00"
     :updated "2022-01-01T00:00:00+00:00"}
]
  

Curl

{
    "requests": [
        {
            "id": "5656565656565656",
            "amount": 1000,
            "externalId": "my-external-id-1",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverName": "Jon Snow",
            "receiverTaxId": "012.345.678-90",
            "status": "created",
            "flow": "out",
            "tags": ["transfer", "pix"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Creating Pix Requests from a Pix Key

Resolve the receiver's Pix Key with Get a Pix Key to fetch their account data from DICT, then create the Pix Request with those fields and the resolved receiverKeyId. The method is inferred as "dict".

Python

import starkinfra


my_bank_code = "34052649"
end_to_end_id = starkinfra.endtoendid.create(my_bank_code)

key = starkinfra.pixkey.get(
    "+5511285025604",
    payer_id="594.739.480-42",
    end_to_end_id=end_to_end_id
)

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=10000,
        description="A Lannister always pays his debts",
        end_to_end_id=end_to_end_id,
        external_id="my_unique_id_170",
        receiver_account_number=key.account_number,
        receiver_account_type=key.account_type,
        receiver_bank_code=key.bank_code,
        receiver_branch_code=key.branch_code,
        receiver_key_id=key.id,
        receiver_name=key.name,
        receiver_tax_id=key.tax_id,
        sender_account_number="00000",
        sender_account_type="checking",
        sender_branch_code="0000",
        sender_name="jaime Lannister",
        sender_tax_id="594.739.480-42",
        tags=['lannister', 'war/123']
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra');


(async() => {
    let myBankCode = '34052649'
    let endToEndId = endToEndId.create(myBankCode)

    let key = await starkinfra.pixKey.get(
        '+5511285025604',
        payerId='594.739.480-42',
        endToEndId=endToEndId
    )

    let requests = await starkinfra.pixRequest.create([
        {
            amount: 10000,
            description: 'A Lannister always pays his debts',
            endToEndId: endToEndId,
            externalId: 'my_unique_id_165',
            receiverAccountNumber: key.accountNumber,
            receiverAccountType: key.accountType,
            receiverBankCode: key.bankCode,
            receiverBranchCode: key.branchCode,
            receiverKeyId: key.id,
            receiverName: key.name,
            receiverTaxId: key.taxId,
            senderAccountNumber: '00000',
            senderAccountType: 'checking',
            senderBranchCode: '0000',
            senderName: 'jaime Lannister',
            senderTaxId: '594.739.480-42',
            tags: ['lannister', 'war/123']
        }
    ])

    for await (let request of requests) {
        console.log(request)
    }
})()
  

PHP

 $endToEndId]
);

$requests = PixRequest::create([
    new PixRequest([
        "amount" => 10000,
        "description" => "A Lannister always pays his debts",
        "endToEndId" => $endToEndId,
        "externalId" => "my_unique_id_538",
        "receiverAccountNumber" => $key->accountNumber,
        "receiverAccountType" => $key->accountType,
        "receiverBankCode" => $key->bankCode,
        "receiverBranchCode" => $key->branchCode,
        "receiverKeyId" => $key->id,
        "receiverName" => $key->name,
        "receiverTaxId" => $key->taxId,
        "senderAccountNumber" => "00000",
        "senderAccountType" => "checking",
        "senderBranchCode" => "0000",
        "senderName" => "jaime Lannister",
        "senderTaxId" => "594.739.480-42",
        "tags" => ["lannister", "war/123"]
    ])
]);

foreach ($requests as $request){
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


String myBankCode = "34052649";
String endToEndId = EndToEndId.create(myBankCode);

HashMap params = new HashMap<>();
params.put("endToEndId", endToEndId);

PixKey key = PixKey.get(
    "+5511285025604",
    "594.739.480-42",
    params
);

List requests = new ArrayList<>();
HashMap data = new HashMap<>();
data.put("amount", 10000);
data.put("externalId", "my_unique_id_740");
data.put("senderAccountNumber", "00000");
data.put("senderBranchCode", "0000");
data.put("senderAccountType", "checking");
data.put("senderName", "jaime Lannister");
data.put("senderTaxId", "594.739.480-42");
data.put("receiverBankCode", key.bankCode);
data.put("receiverAccountNumber", key.accountNumber);
data.put("receiverBranchCode", key.branchCode);
data.put("receiverAccountType", key.accountType);
data.put("receiverKeyId", key.id);
data.put("receiverName", key.name);
data.put("receiverTaxId", key.taxId);
data.put("endToEndId", endToEndId);
data.put("description", "A Lannister always pays his debts");
data.put("tags", new String[] {"lannister", "war/123"});
requests.add(new PixRequest(data));

requests = PixRequest.create(requests);

for (PixRequest request : requests){
    System.out.println(request);
}
  

Ruby

require('starkinfra')


my_bank_code = '34052649'
end_to_end_id = StarkInfra::EndToEndId.create(my_bank_code)

key = StarkInfra::PixKey.get(
    '+5511285025604',
    payer_id: '594.739.480-42',
    end_to_end_id: end_to_end_id
)

requests = StarkInfra::PixRequest.create(
    [
        StarkInfra::PixRequest.new(
            amount: 10000,
            description: 'A Lannister always pays his debts',
            end_to_end_id: end_to_end_id,
            external_id: 'my_unique_id_626',
            receiver_account_number: key.account_number,
            receiver_account_type: key.account_type,
            receiver_bank_code: key.bank_code,
            receiver_branch_code: key.branch_code,
            receiver_key_id: key.id,
            receiver_name: key.name,
            receiver_tax_id: key.tax_id,
            sender_account_number: '00000',
            sender_account_type: 'checking',
            sender_branch_code: '0000',
            sender_name: 'jaime Lannister',
            sender_tax_id: '594.739.480-42',
            tags: %w[lannister war/123]
        )
    ]
)

requests.each do |request|
    puts request
end
  

Elixir

key = StarkInfra.PixKey.get!(
    "+5511285025604",
    "594.739.480-42",
    end_to_end_id: "E34052649202208201432u34sDGd19lz"
)

request = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 10000,
        description: "A Lannister always pays his debts",
        end_to_end_id: "E34052649202208201432u34sDGd19lz",
        external_id: "my_unique_id_081",
        receiver_account_number: key.account_number,
        receiver_account_type: key.account_type,
        receiver_bank_code: key.bank_code,
        receiver_branch_code: key.branch_code,
        receiver_key_id: key.id,
        receiver_name: key.name,
        receiver_tax_id: key.tax_id,
        sender_account_number: "00000",
        sender_account_type: "checking",
        sender_branch_code: "0000",
        sender_name: "jaime Lannister",
        sender_tax_id: "594.739.480-42",
        tags: ["lannister", "war/123"]
    }
]) |> IO.inspect
  

C#

using System;
using System.Collections.Generic;

String myBankCode = "34052649";
String endToEndId = EndToEndId.Create(myBankCode);

StarkInfra.PixKey key = StarkInfra.PixKey.Get(
    "+5511285025604",
    payerId: "594.739.480-42",
    new Dictionary {
        { "endToEndId", endToEndId }
    }
);

List requests = StarkInfra.PixRequest.Create(
    new List {
        new StarkInfra.PixRequest(
            amount: 10000,
            description: "A Lannister always pays his debts",
            endToEndID: endToEndId,
            externalID: "my_unique_id_430",
            receiverAccountNumber: key.AccountNumber,
            receiverAccountType: key.AccountType,
            receiverBankCode: key.BankCode,
            receiverBranchCode: key.BranchCode,
            receiverKeyID: key.ID,
            receiverName: key.Name,
            receiverTaxID: key.TaxID,
            senderAccountNumber: "00000",
            senderAccountType: "checking",
            senderBranchCode: "0000",
            senderName: "jaime Lannister",
            senderTaxID: "594.739.480-42",
            tags: new List { "lannister", "war/123" }
        )
    }
);

foreach (StarkInfra.PixRequest request in requests)
{
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    EndToEndId "github.com/starkinfra/sdk-go/starkinfra/utils/endtoendid"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

myBankCode := "34052649"
endToEndId := EndToEndId.Create(myBankCode)

key, err := PixKey.Get(
    "+5511285025604",
    "594.739.480-42",
    map[string]interface{}{"endToEndId": endToEndId},
    nil)

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                10000,
            Description:           "A Lannister always pays his debts",
            EndToEndId:            endToEndId,
            ExternalId:            "my_unique_id_170",
            ReceiverAccountNumber: key.AccountNumber,
            ReceiverAccountType:   key.AccountType,
            ReceiverBankCode:      key.BankCode,
            ReceiverBranchCode:    key.BranchCode,
            ReceiverKeyId:         key.Id,
            ReceiverName:          key.Name,
            ReceiverTaxId:         key.TaxId,
            SenderAccountNumber:   "00000",
            SenderAccountType:     "checking",
            SenderBranchCode:      "0000",
            SenderName:            "jaime Lannister",
            SenderTaxId:           "594.739.480-42",
            Tags:                  []string{"lannister", "war/123"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 10000,
            "description": "A Lannister always pays his debts",
            "endToEndId": "E34052649202208201432u34sDGd19lz",
            "externalId": "my_unique_id_170",
            "receiverAccountNumber": "0000",
            "receiverAccountType": "savings",
            "receiverBankCode": "35547753",
            "receiverBranchCode": "0000",
            "receiverKeyId": "+5511285025604",
            "receiverName": "Jaime Lannister",
            "receiverTaxId": "012.345.678-90",
            "senderAccountNumber": "00000",
            "senderAccountType": "checking",
            "senderBranchCode": "0000",
            "senderName": "jaime Lannister",
            "senderTaxId": "594.739.480-42",
            "tags": ["lannister", "war/123"]
        }
    ]
}'
  
RESPONSE

Python

PixRequest(
    amount=10000,
    cash_amount=0,
    cashier_bank_code=,
    cashier_type=,
    created=2022-08-05 19:19:47.256075,
    description=A Lannister always pays his debts,
    end_to_end_id=E34052649202245501450u34sDGd19lz,
    external_id=my_unique_id_170,
    fee=0,
    flow=out,
    id=6123232910376960,
    initiator_tax_id=,
    method=dict,
    receiver_account_number=0000,
    receiver_account_type=savings,
    receiver_bank_code=35547753,
    receiver_branch_code=0000,
    receiver_key_id=+5511285025604,
    receiver_name=Jaime Lannister,
    receiver_tax_id=012.345.678-90,
    reconciliation_id=,
    sender_account_number=00000,
    sender_account_type=checking,
    sender_bank_code=34052649,
    sender_branch_code=0000,
    sender_name=jaime Lannister,
    sender_tax_id=594.739.480-42,
    status=created,
    tags=['lannister', 'war/123'],
    updated=2022-08-05 19:19:47.256092
)
  

Javascript

PixRequest {
    id: '4517879126949888',
    amount: 10000,
    externalId: 'my_unique_id_165',
    senderName: 'jaime Lannister',
    senderTaxId: '594.739.480-42',
    senderBranchCode: '0000',
    senderAccountNumber: '00000',
    senderAccountType: 'checking',
    receiverName: 'Jaime Lannister',
    receiverTaxId: '012.345.678-90',
    receiverBankCode: '35547753',
    receiverAccountNumber: '0000',
    receiverBranchCode: '0000',
    receiverAccountType: 'savings',
    endToEndId: 'E34052649202206201452u34sDGd19lz',
    receiverKeyId: '+5511285025604',
    description: 'A Lannister always pays his debts',
    reconciliationId: '',
    initiatorTaxId: '',
    cashAmount: 0,
    cashierBankCode: '',
    cashierType: '',
    tags: [ 'lannister', 'war/123' ],
    method: 'dict',
    fee: 0,
    status: 'created',
    flow: 'out',
    senderBankCode: '34052649',
    created: '2022-08-05T19:32:15.307261+00:00',
    updated: '2022-08-05T19:32:15.307275+00:00'
}
  

PHP

StarkInfra\PixRequest Object
(
    [id] => 4644400944644096
    [amount] => 10000
    [externalId] => my_unique_id_538
    [senderName] => jaime Lannister
    [senderTaxId] => 594.739.480-42
    [senderBranchCode] => 0000
    [senderAccountNumber] => 00000
    [senderAccountType] => checking
    [receiverName] => Jaime Lannister
    [receiverTaxId] => 012.345.678-90
    [receiverBankCode] => 35547753
    [receiverAccountNumber] => 0000
    [receiverBranchCode] => 0000
    [receiverAccountType] => savings
    [endToEndId] => E34052649202207201452u34sDGd19lz
    [receiverKeyId] => +5511285025604
    [description] => A Lannister always pays his debts
    [reconciliationId] =>
    [initiatorTaxId] =>
    [cashAmount] => 0
    [cashierBankCode] =>
    [cashierType] =>
    [tags] => Array
        (
            [0] => lannister
            [1] => war/123
        )

    [method] => dict
    [fee] => 0
    [status] => created
    [flow] => out
    [senderBankCode] => 34052649
    [created] => DateTime Object ( [date] => 2022-08-05 19:36:50.250648 )
    [updated] => DateTime Object ( [date] => 2022-08-05 19:36:50.250662 )
)
  

Java

PixRequest({
    "amount": 10000,
    "externalId": "my_unique_id_740",
    "senderName": "jaime Lannister",
    "senderTaxId": "594.739.480-42",
    "senderBranchCode": "0000",
    "senderAccountNumber": "00000",
    "senderAccountType": "checking",
    "receiverName": "Jaime Lannister",
    "receiverTaxId": "012.345.678-90",
    "receiverBankCode": "35547753",
    "receiverAccountNumber": "0000",
    "receiverBranchCode": "0000",
    "receiverAccountType": "savings",
    "endToEndId": "E34052649202207201420u34sDGd19lz",
    "receiverKeyId": "+5511285025604",
    "description": "A Lannister always pays his debts",
    "reconciliationId": "",
    "initiatorTaxId": "",
    "cashAmount": 0,
    "cashierBankCode": "",
    "cashierType": "",
    "tags": [ "lannister", "war/123" ],
    "method": "dict",
    "fee": 0,
    "status": "created",
    "flow": "out",
    "senderBankCode": "34052649",
    "created": "2022-08-05T19:43:46.436331+00:00",
    "updated": "2022-08-05T19:43:46.436343+00:00",
    "id": "4610304910557184"
})
  

Ruby

pixrequest(
    id: 4874004393361408,
    amount: 10000,
    external_id: my_unique_id_626,
    sender_name: jaime Lannister,
    sender_tax_id: 594.739.480-42,
    sender_branch_code: 0000,
    sender_account_number: 00000,
    sender_account_type: checking,
    receiver_name: Jamie Lannister,
    receiver_tax_id: 012.345.678-90,
    receiver_bank_code: 35547753,
    receiver_account_number: 0000,
    receiver_branch_code: 0000,
    receiver_account_type: savings,
    end_to_end_id: E34052649202565201451u34sDGd19lz,
    receiver_key_id: +5511285025604,
    description: A Lannister always pays his debts,
    reconciliation_id: ,
    initiator_tax_id: ,
    cash_amount: 0,
    cashier_bank_code: ,
    cashier_type: ,
    tags: ["lannister", "war/123"],
    method: dict,
    fee: 0,
    status: created,
    flow: out,
    sender_bank_code: 34052649,
    created: 2022-08-05T19:50:40+00:00,
    updated: 2022-08-05T19:50:40+00:00
)
  

Elixir

%StarkInfra.PixRequest{
    amount: 10000,
    cash_amount: 0,
    cashier_bank_code: "",
    cashier_type: "",
    created: ~U[2022-08-05 19:54:24.677757Z],
    description: "A Lannister always pays his debts",
    end_to_end_id: "E34052649202208201432u34sDGd19lz",
    external_id: "my_unique_id_081",
    fee: 0,
    flow: "out",
    id: "5859166811848704",
    initiator_tax_id: "",
    method: "dict",
    receiver_account_number: "0000",
    receiver_account_type: "savings",
    receiver_bank_code: "35547753",
    receiver_branch_code: "0000",
    receiver_key_id: "+5511285025604",
    receiver_name: "Jamie Lannister",
    receiver_tax_id: "012.345.678-90",
    reconciliation_id: "",
    sender_account_number: "00000",
    sender_account_type: "checking",
    sender_bank_code: "34052649",
    sender_branch_code: "0000",
    sender_name: "jaime Lannister",
    sender_tax_id: "594.739.480-42",
    status: "created",
    tags: ["lannister", "war/123"],
    updated: ~U[2022-08-05 19:54:24.677771Z]
}
  

C#

PixRequest(
    Amount: 10000,
    ExternalID: my_unique_id_430,
    SenderName: jaime Lannister,
    SenderTaxID: 594.739.480-42,
    SenderBranchCode: 0000,
    SenderAccountNumber: 00000,
    SenderAccountType: checking,
    ReceiverName: Jamie Lannister,
    ReceiverTaxId: 012.345.678-90,
    ReceiverBankCode: 35547753,
    ReceiverAccountNumber: 0000,
    ReceiverBranchCode: 0000,
    ReceiverAccountType: savings,
    EndToEndID: E34052649202408201432u34sDGd19lz,
    ReceiverKeyID: +5511285025604,
    Description: A Lannister always pays his debts,
    ReconciliationID: ,
    InitiatorTaxId: ,
    CashAmount: 0,
    CashierBankCode: ,
    CashierType: ,
    Tags: { lannister, war/123 },
    Method: dict,
    Fee: 0,
    Status: created,
    Flow: out,
    SenderBankCode: 34052649,
    Created: 08/05/2022 16:59:05,
    Updated: 08/05/2022 16:59:05,
    ID: 6510413743128576
)
  

Go

Clojure

Curl

Creating Pix Requests from a Brcode

Preview a Brcode with Brcode Preview to obtain the payment and receiver data, then create the Pix Request from it. The method is "staticQrcode" or "dynamicQrcode".

Python

import starkinfra


my_bank_code = "35547753"

previews = starkinfra.brcodepreview.create([
    starkinfra.BrcodePreview(
        id="00020126360014br.gov.bcb.pix0114+5541999999999520400005303986540510.005802BR5910Tony Stark6014Rio de Janeiro62070503***630466B7"
    )
])
preview = previews[0]

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=preview.amount,
        description="A Lannister always pays his debts",
        end_to_end_id=starkinfra.endtoendid.create(my_bank_code),
        external_id="my_unique_id_170",
        receiver_account_number=preview.account_number,
        receiver_account_type=preview.account_type,
        receiver_bank_code=preview.bank_code,
        receiver_branch_code=preview.branch_code,
        receiver_name=preview.name,
        receiver_tax_id=preview.tax_id,
        receiver_key_id=preview.key_id,
        reconciliation_id=preview.reconciliation_id,
        sender_account_number="00000",
        sender_account_type="checking",
        sender_branch_code="0000",
        sender_name="jaime Lannister",
        sender_tax_id="594.739.480-42",
        tags=['lannister', 'war/123']
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra');


(async() => {
    let myBankCode = '35547753'

    let previews = await starkinfra.brcodePreview.create(
        '00020101021226930014br.gov.bcb.pix2571brcode-h.development.starkinfra.com/v2/c1c351eb237342a795fd4178f4af009a5204000053039865802BR5915Jaime Lannister6014Rio de Janeiro62070503***6304575D'
    )
    let preview = previews[0]

    let requests = await starkinfra.pixRequest.create([
        {
            amount: preview.amount,
            cashAmount: preview.cashAmount,
            cashierBankCode: preview.cashierBankCode,
            cashierType: preview.cashierType,
            description: 'A Lannister always pays his debts',
            endToEndId: endToEndId.create(myBankCode),
            externalId: 'my_unique_id_165',
            receiverAccountNumber: preview.accountNumber,
            receiverAccountType: preview.accountType,
            receiverBankCode: preview.bankCode,
            receiverBranchCode: preview.branchCode,
            receiverName: preview.name,
            receiverTaxId: preview.taxId,
            receiverKeyId: preview.keyId,
            reconciliationId: preview.reconciliationId,
            senderAccountNumber: '00000',
            senderAccountType: 'checking',
            senderBranchCode: '0000',
            senderName: 'jaime Lannister',
            senderTaxId: '594.739.480-42',
            tags: ['lannister', 'war/123']
        }
    ])

    for await (let request of requests) {
        console.log(request)
    }
})()
  

PHP

 "00020126360014br.gov.bcb.pix0114+5541999999999520400005303986540510.005802BR5910Tony Stark6014Rio de Janeiro62070503***630466B7"
    ])
]);
$preview = $previews[0];

$requests = PixRequest::create([
    new PixRequest([
        "amount" => $preview->amount,
        "cashAmount" => $preview->cashAmount,
        "cashierBankCode" => $preview->cashierBankCode,
        "cashierType" => $preview->cashierType,
        "description" => "A Lannister always pays his debts",
        "endToEndId" => EndToEndId::create($myBankCode),
        "externalId" => "my_unique_id_538",
        "receiverAccountNumber" => $preview->accountNumber,
        "receiverAccountType" => $preview->accountType,
        "receiverBankCode" => $preview->bankCode,
        "receiverBranchCode" => $preview->branchCode,
        "receiverName" => $preview->name,
        "receiverTaxId" => $preview->taxId,
        "receiverKeyId" => $preview->keyId,
        "reconciliationId" => $preview->reconciliationId,
        "senderAccountNumber" => "00000",
        "senderAccountType" => "checking",
        "senderBranchCode" => "0000",
        "senderName" => "jaime Lannister",
        "senderTaxId" => "594.739.480-42",
        "tags" => ["lannister", "war/123"]
    ])
]);

foreach ($requests as $request){
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


String myBankCode = "35547753";

List previews = new ArrayList<>();
HashMap previewData = new HashMap<>();
previewData.put("id", "00020126360014br.gov.bcb.pix0114+5541999999999520400005303986540510.005802BR5910Tony Stark6014Rio de Janeiro62070503***630466B7");
previews.add(new BrcodePreview(previewData));

previews = (List) BrcodePreview.create(previews);
BrcodePreview preview = previews.get(0);

List requests = new ArrayList<>();
HashMap data = new HashMap<>();
data.put("amount", preview.amount);
data.put("cashAmount", preview.cashAmount);
data.put("cashierBankCode", preview.cashierBankCode);
data.put("cashierType", preview.cashierType);
data.put("externalId", "my_unique_id_740");
data.put("senderAccountNumber", "00000");
data.put("senderBranchCode", "0000");
data.put("senderAccountType", "checking");
data.put("senderName", "jaime Lannister");
data.put("senderTaxId", "594.739.480-42");
data.put("receiverBankCode", preview.bankCode);
data.put("receiverAccountNumber", preview.accountNumber);
data.put("receiverBranchCode", preview.branchCode);
data.put("receiverAccountType", preview.accountType);
data.put("receiverName", preview.name);
data.put("receiverTaxId", preview.taxId);
data.put("receiverKeyId", preview.keyId);
data.put("reconciliationId", preview.reconciliationId);
data.put("endToEndId", EndToEndId.create(myBankCode));
data.put("description", "A Lannister always pays his debts");
data.put("tags", new String[] {"lannister", "war/123"});
requests.add(new PixRequest(data));

requests = PixRequest.create(requests);

for (PixRequest request : requests){
    System.out.println(request);
}
  

Ruby

require('starkinfra')


my_bank_code = '35547753'

previews = StarkInfra::BrcodePreview.create([
    StarkInfra::BrcodePreview.new(
        '00020101021226930014br.gov.bcb.pix2571brcode-h.development.starkinfra.com/v2/c1c351eb237342a795fd4178f4af009a5204000053039865802BR5915Jaime Lannister6014Rio de Janeiro62070503***6304575D',
    )
])
preview = previews.first

requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: preview.amount,
        cash_amount: preview.cash_amount,
        cashier_bank_code: preview.cashier_bank_code,
        cashier_type: preview.cashier_type,
        description: 'A Lannister always pays his debts',
        end_to_end_id: StarkInfra::EndToEndId.create(my_bank_code),
        external_id: 'my_unique_id_626',
        receiver_account_number: preview.account_number,
        receiver_account_type: preview.account_type,
        receiver_bank_code: preview.bank_code,
        receiver_branch_code: preview.branch_code,
        receiver_name: preview.name,
        receiver_tax_id: preview.tax_id,
        receiver_key_id: preview.key_id,
        reconciliation_id: preview.reconciliation_id,
        sender_account_number: '00000',
        sender_account_type: 'checking',
        sender_branch_code: '0000',
        sender_name: 'jaime Lannister',
        sender_tax_id: '594.739.480-42',
        tags: %w[lannister war/123]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

previews = StarkInfra.BrcodePreview.create!([
    %StarkInfra.BrcodePreview{
        "00020101021226930014br.gov.bcb.pix2571brcode-h.development.starkinfra.com/v2/c1c351eb237342a795fd4178f4af009a5204000053039865802BR5915Jaime Lannister6014Rio de Janeiro62070503***6304575D"
    }
])
preview = hd(previews)

request = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: preview.amount,
        cash_amount: preview.cash_amount,
        cashier_bank_code: preview.cashier_bank_code,
        cashier_type: preview.cashier_type,
        description: "A Lannister always pays his debts",
        end_to_end_id: "E35547753202208201432u34sDGd19lz",
        external_id: "my_unique_id_081",
        receiver_account_number: preview.account_number,
        receiver_account_type: preview.account_type,
        receiver_bank_code: preview.bank_code,
        receiver_branch_code: preview.branch_code,
        receiver_name: preview.name,
        receiver_tax_id: preview.tax_id,
        receiver_key_id: preview.key_id,
        reconciliation_id: preview.reconciliation_id,
        sender_account_number: "00000",
        sender_account_type: "checking",
        sender_branch_code: "0000",
        sender_name: "jaime Lannister",
        sender_tax_id: "594.739.480-42",
        tags: ["lannister", "war/123"]
    }
]) |> IO.inspect
  

C#

using System;
using System.Collections.Generic;

String myBankCode = "35547753";

List previews = StarkInfra.BrcodePreview.Create(
    new List {
        new StarkInfra.BrcodePreview(
            id: "00020101021226930014br.gov.bcb.pix2571brcode-h.development.starkinfra.com/v2/c1c351eb237342a795fd4178f4af009a5204000053039865802BR5915Jaime Lannister6014Rio de Janeiro62070503***6304575D"
        )
    }
);
StarkInfra.BrcodePreview preview = previews[0];

List requests = StarkInfra.PixRequest.Create(
    new List {
        new StarkInfra.PixRequest(
            amount: preview.Amount,
            cashAmount: preview.CashAmount,
            cashierBankCode: preview.CashierBankCode,
            cashierType: preview.CashierType,
            description: "A Lannister always pays his debts",
            endToEndID: EndToEndId.Create(myBankCode),
            externalID: "my_unique_id_430",
            receiverAccountNumber: preview.AccountNumber,
            receiverAccountType: preview.AccountType,
            receiverBankCode: preview.BankCode,
            receiverBranchCode: preview.BranchCode,
            receiverName: preview.Name,
            receiverTaxID: preview.TaxID,
            receiverKeyID: preview.KeyID,
            reconciliationID: preview.ReconciliationID,
            senderAccountNumber: "00000",
            senderAccountType: "checking",
            senderBranchCode: "0000",
            senderName: "jaime Lannister",
            senderTaxID: "594.739.480-42",
            tags: new List { "lannister", "war/123" }
        )
    }
);

foreach (StarkInfra.PixRequest request in requests)
{
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    EndToEndId "github.com/starkinfra/sdk-go/starkinfra/utils/endtoendid"
    BrcodePreview "github.com/starkinfra/sdk-go/starkinfra/brcodepreview"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

myBankCode := "35547753"

previews := BrcodePreview.Create(
    []BrcodePreview.BrcodePreview{
        {
            Id: "00020126360014br.gov.bcb.pix0114+5541999999999520400005303986540510.005802BR5910Tony Stark6014Rio de Janeiro62070503***630466B7",
        },
    }, nil)
preview := previews[0]

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                preview.Amount,
            CashAmount:            preview.CashAmount,
            CashierBankCode:       preview.CashierBankCode,
            CashierType:           preview.CashierType,
            Description:           "A Lannister always pays his debts",
            EndToEndId:            EndToEndId.Create(myBankCode),
            ExternalId:            "my_unique_id_170",
            ReceiverAccountNumber: preview.AccountNumber,
            ReceiverAccountType:   preview.AccountType,
            ReceiverBankCode:      preview.BankCode,
            ReceiverBranchCode:    preview.BranchCode,
            ReceiverName:          preview.Name,
            ReceiverTaxId:         preview.TaxId,
            ReceiverKeyId:         preview.KeyId,
            ReconciliationId:      preview.ReconciliationId,
            SenderAccountNumber:   "00000",
            SenderAccountType:     "checking",
            SenderBranchCode:      "0000",
            SenderName:            "jaime Lannister",
            SenderTaxId:           "594.739.480-42",
            Tags:                  []string{"lannister", "war/123"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 1000,
            "description": "A Lannister always pays his debts",
            "endToEndId": "E35547753202208222101Ll2MpIBYy08",
            "externalId": "my_unique_id_170",
            "method": "staticQrcode",
            "receiverAccountNumber": "2446567693893903",
            "receiverAccountType": "checking",
            "receiverBankCode": "03412878",
            "receiverBranchCode": "5742",
            "receiverKeyId": "+5511285025604",
            "receiverName": "Jaime Lannister",
            "receiverTaxId": "012.345.678-90",
            "reconciliationId": "12345678910",
            "senderAccountNumber": "00000",
            "senderAccountType": "checking",
            "senderBranchCode": "0000",
            "senderName": "jaime Lannister",
            "senderTaxId": "594.739.480-42",
            "tags": ["lannister", "war/123"]
        }
    ]
}'
  
RESPONSE

Python

PixRequest(
    amount=1000,
    cash_amount=0,
    cashier_bank_code=,
    cashier_type=,
    created=2022-08-22 21:01:48.917564,
    description=A Lannister always pays his debts,
    end_to_end_id=E35547753202208222101Ll2MpIBYy08,
    external_id=my_unique_id_170,
    fee=0,
    flow=out,
    id=6298665144549376,
    initiator_tax_id=,
    method=staticQrcode,
    receiver_account_number=2446567693893903,
    receiver_account_type=checking,
    receiver_bank_code=03412878,
    receiver_branch_code=5742,
    receiver_key_id=+5511285025604,
    receiver_name=Jaime Lannister,
    receiver_tax_id=012.345.678-90,
    reconciliation_id=12345678910,
    sender_account_number=00000,
    sender_account_type=checking,
    sender_bank_code=35547753,
    sender_branch_code=0000,
    sender_name=jaime Lannister,
    sender_tax_id=594.739.480-42,
    status=created,
    tags=['lannister', 'war/123'],
    updated=2022-08-22 21:01:48.917580
)
  

Javascript

PixRequest {
    id: '4517879126949888',
    amount: 10000,
    externalId: 'my_unique_id_165',
    senderName: 'jaime Lannister',
    senderTaxId: '594.739.480-42',
    senderBranchCode: '0000',
    senderAccountNumber: '00000',
    senderAccountType: 'checking',
    receiverName: 'Jaime Lannister',
    receiverTaxId: '012.345.678-90',
    receiverBankCode: '35547753',
    receiverAccountNumber: '0000',
    receiverBranchCode: '0000',
    receiverAccountType: 'savings',
    endToEndId: 'E35547753202206201452u34sDGd19lz',
    receiverKeyId: '+5511285025604',
    description: 'A Lannister always pays his debts',
    reconciliationId: '12345678910',
    initiatorTaxId: '',
    cashAmount: 0,
    cashierBankCode: '',
    cashierType: '',
    tags: [ 'lannister', 'war/123' ],
    method: 'staticQrcode',
    fee: 0,
    status: 'created',
    flow: 'out',
    senderBankCode: '35547753',
    created: '2022-08-05T19:32:15.307261+00:00',
    updated: '2022-08-05T19:32:15.307275+00:00'
}
  

PHP

StarkInfra\PixRequest Object
(
    [id] => 5959433360244736
    [amount] => 1000
    [externalId] => my_unique_id_538
    [senderName] => jaime Lannister
    [senderTaxId] => 594.739.480-42
    [senderBranchCode] => 0000
    [senderAccountNumber] => 00000
    [senderAccountType] => checking
    [receiverName] => Jaime Lannister
    [receiverTaxId] => 012.345.678-90
    [receiverBankCode] => 35547753
    [receiverAccountNumber] => 0000
    [receiverBranchCode] => 0000
    [receiverAccountType] => savings
    [endToEndId] => E35547753202207201452u34sDGd19lz
    [receiverKeyId] => +5511285025604
    [description] => A Lannister always pays his debts
    [reconciliationId] => 12345678910
    [initiatorTaxId] =>
    [cashAmount] => 0
    [cashierBankCode] =>
    [cashierType] =>
    [tags] => Array
        (
            [0] => lannister
            [1] => war/123
        )

    [method] => staticQrcode
    [fee] => 0
    [status] => created
    [flow] => out
    [senderBankCode] => 35547753
    [created] => DateTime Object ( [date] => 2022-08-22 21:14:48.244187 )
    [updated] => DateTime Object ( [date] => 2022-08-22 21:14:48.244202 )
)
  

Java

PixRequest({
    "amount": 1000,
    "externalId": "my_unique_id_740",
    "senderName": "jaime Lannister",
    "senderTaxId": "594.739.480-42",
    "senderBranchCode": "0000",
    "senderAccountNumber": "00000",
    "senderAccountType": "checking",
    "receiverName": "Jaime Lannister",
    "receiverTaxId": "012.345.678-90",
    "receiverBankCode": "35547753",
    "receiverAccountNumber": "0000",
    "receiverBranchCode": "0000",
    "receiverAccountType": "savings",
    "endToEndId": "E35547753202207201420u34sDGd19lz",
    "receiverKeyId": "+5511285025604",
    "description": "A Lannister always pays his debts",
    "reconciliationId": "12345678910",
    "initiatorTaxId": "",
    "cashAmount": 0,
    "cashierBankCode": "",
    "cashierType": "",
    "tags": [ "lannister", "war/123" ],
    "method": "staticQrcode",
    "fee": 0,
    "status": "created",
    "flow": "out",
    "senderBankCode": "35547753",
    "created": "2022-08-22T21:33:12.873095+00:00",
    "updated": "2022-08-22T21:33:12.873115+00:00",
    "id": "6029802104422400"
})
  

Ruby

pixrequest(
    id: 4874004393361408,
    amount: 10000,
    external_id: my_unique_id_626,
    sender_name: jaime Lannister,
    sender_tax_id: 594.739.480-42,
    sender_branch_code: 0000,
    sender_account_number: 00000,
    sender_account_type: checking,
    receiver_name: Jamie Lannister,
    receiver_tax_id: 012.345.678-90,
    receiver_bank_code: 35547753,
    receiver_account_number: 0000,
    receiver_branch_code: 0000,
    receiver_account_type: savings,
    end_to_end_id: E35547753202565201451u34sDGd19lz,
    receiver_key_id: +5511285025604,
    description: A Lannister always pays his debts,
    reconciliation_id: 12345678910,
    initiator_tax_id: ,
    cash_amount: 0,
    cashier_bank_code: ,
    cashier_type: ,
    tags: ["lannister", "war/123"],
    method: staticQrcode,
    fee: 0,
    status: created,
    flow: out,
    sender_bank_code: 35547753,
    created: 2022-08-05T19:50:40+00:00,
    updated: 2022-08-05T19:50:40+00:00
)
  

Elixir

%StarkInfra.PixRequest{
    amount: 10000,
    cash_amount: 0,
    cashier_bank_code: "",
    cashier_type: "",
    created: ~U[2022-08-05 19:54:24.677757Z],
    description: "A Lannister always pays his debts",
    end_to_end_id: "E35547753202208201432u34sDGd19lz",
    external_id: "my_unique_id_081",
    fee: 0,
    flow: "out",
    id: "5859166811848704",
    initiator_tax_id: "",
    method: "staticQrcode",
    receiver_account_number: "0000",
    receiver_account_type: "savings",
    receiver_bank_code: "35547753",
    receiver_branch_code: "0000",
    receiver_key_id: "+5511285025604",
    receiver_name: "Jamie Lannister",
    receiver_tax_id: "012.345.678-90",
    reconciliation_id: "12345678910",
    sender_account_number: "00000",
    sender_account_type: "checking",
    sender_bank_code: "35547753",
    sender_branch_code: "0000",
    sender_name: "jaime Lannister",
    sender_tax_id: "594.739.480-42",
    status: "created",
    tags: ["lannister", "war/123"],
    updated: ~U[2022-08-05 19:54:24.677771Z]
}
  

C#

PixRequest(
    Amount: 10000,
    ExternalID: my_unique_id_430,
    SenderName: jaime Lannister,
    SenderTaxID: 594.739.480-42,
    SenderBranchCode: 0000,
    SenderAccountNumber: 00000,
    SenderAccountType: checking,
    ReceiverName: Jamie Lannister,
    ReceiverTaxId: 012.345.678-90,
    ReceiverBankCode: 35547753,
    ReceiverAccountNumber: 0000,
    ReceiverBranchCode: 0000,
    ReceiverAccountType: savings,
    EndToEndID: E35547753202408201432u34sDGd19lz,
    ReceiverKeyID: +5511285025604,
    Description: A Lannister always pays his debts,
    ReconciliationID: 12345678910,
    InitiatorTaxId: ,
    CashAmount: 0,
    CashierBankCode: ,
    CashierType: ,
    Tags: { lannister, war/123 },
    Method: staticQrcode,
    Fee: 0,
    Status: created,
    Flow: out,
    SenderBankCode: 35547753,
    Created: 08/05/2022 16:59:05,
    Updated: 08/05/2022 16:59:05,
    ID: 6510413743128576
)
  

Go

Clojure

Curl

Creating Pix Requests for a Pix Pull Request

Settle a scheduled Pix Pull Request (Pix Automático) by creating a Pix Request with method="subscription", passing the pull request's endToEndId and a matching reconciliationId.

The amount, tax IDs and receiver account fields must match the pull request.

Python

import starkinfra

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=1000,
        external_id="my-external-id-1",
        end_to_end_id="E20018183202201011000r01",
        method="subscription",
        reconciliation_id="my-pull-request-reconciliation-id",
        sender_account_number="00000-0",
        sender_branch_code="0001",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="012.345.678-90",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_bank_code="20018183",
        receiver_tax_id="98.765.432/0001-10",
        receiver_branch_code="0001",
        receiver_name="Jon Snow",
        tags=["transfer", "pix"]
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

const requests = await starkinfra.pixRequest.create([
    {
        amount: 1000,
        externalId: "my-external-id-1",
        endToEndId: "E20018183202201011000r01",
        method: "subscription",
        reconciliationId: "my-pull-request-reconciliation-id",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for (const request of requests) {
    console.log(request)
}
  

PHP

 1000,
        "externalId" => "my-external-id-1",
        "endToEndId" => "E20018183202201011000r01",
        "method" => "subscription",
        "reconciliationId" => "my-pull-request-reconciliation-id",
        "receiverBankCode" => "20018183",
        "receiverBranchCode" => "0001",
        "receiverAccountNumber" => "10000-0",
        "receiverAccountType" => "checking",
        "receiverName" => "Jon Snow",
        "receiverTaxId" => "012.345.678-90",
        "tags" => ["transfer", "pix"]
    ])
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List requests = PixRequest.create(
    Arrays.asList(
        new PixRequest.Builder()
            .amount(1000L)
            .externalId("my-external-id-1")
            .endToEndId("E20018183202201011000r01")
            .method("subscription")
            .reconciliationId("my-pull-request-reconciliation-id")
            .receiverBankCode("20018183")
            .receiverBranchCode("0001")
            .receiverAccountNumber("10000-0")
            .receiverAccountType("checking")
            .receiverName("Jon Snow")
            .receiverTaxId("012.345.678-90")
            .tags(Arrays.asList("transfer", "pix"))
            .build()
    )
);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        method: "subscription",
        reconciliation_id: "my-pull-request-reconciliation-id",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

requests = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        method: "subscription",
        reconciliation_id: "my-pull-request-reconciliation-id",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List requests = PixRequest.Create(
    new List {
        new PixRequest(
            amount: 1000,
            externalId: "my-external-id-1",
            endToEndId: "E20018183202201011000r01",
            method: "subscription",
            reconciliationId: "my-pull-request-reconciliation-id",
            receiverBankCode: "20018183",
            receiverBranchCode: "0001",
            receiverAccountNumber: "10000-0",
            receiverAccountType: "checking",
            receiverName: "Jon Snow",
            receiverTaxId: "012.345.678-90",
            tags: new List { "transfer", "pix" }
        )
    }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                1000,
            ExternalId:            "my-external-id-1",
            EndToEndId:            "E20018183202201011000r01",
            Method:                "subscription",
            ReconciliationId:      "my-pull-request-reconciliation-id",
            ReceiverBankCode:      "20018183",
            ReceiverBranchCode:    "0001",
            ReceiverAccountNumber: "10000-0",
            ReceiverAccountType:   "checking",
            ReceiverName:          "Jon Snow",
            ReceiverTaxId:         "012.345.678-90",
            Tags:                  []string{"transfer", "pix"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

(def requests
    (starkinfra.pix-request/create
        [{:amount 1000
          :external-id "my-external-id-1"
          :end-to-end-id "E20018183202201011000r01"
          :method "subscription"
          :reconciliation-id "my-pull-request-reconciliation-id"
          :receiver-bank-code "20018183"
          :receiver-branch-code "0001"
          :receiver-account-number "10000-0"
          :receiver-account-type "checking"
          :receiver-name "Jon Snow"
          :receiver-tax-id "012.345.678-90"
          :tags ["transfer" "pix"]}]))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 1000,
            "externalId": "my-external-id-1",
            "endToEndId": "E20018183202201011000r01",
            "method": "subscription",
            "reconciliationId": "my-pull-request-reconciliation-id",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverName": "Jon Snow",
            "receiverTaxId": "012.345.678-90",
            "tags": ["transfer", "pix"]
        }
    ]
}'
  

Creating Pix Requests for a Pix Chargeback

A Pix Chargeback you receive may carry reversal account data. Close it by creating a Pix Request that returns the funds to that account, mapping the chargeback's reversal fields onto the receiver fields: receiverBankCode from reversalBankCode, receiverBranchCode from reversalBranchCode, receiverAccountNumber from reversalAccountNumber, receiverAccountType from reversalAccountType and receiverTaxId from reversalTaxId.

Set reason="fraud" and senderTaxId to your institution's organization taxId (CNPJ), which is required for this reason.

Python

import starkinfra

# map the received chargeback's reversal_* fields onto the receiver_* fields
requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=1000,
        external_id="my-external-id-1",
        end_to_end_id="E20018183202201011000r01",
        sender_account_number="00000-0",
        sender_branch_code="0001",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="20.018.183/0001-80",
        receiver_bank_code=chargeback.reversal_bank_code,
        receiver_branch_code=chargeback.reversal_branch_code,
        receiver_account_number=chargeback.reversal_account_number,
        receiver_account_type=chargeback.reversal_account_type,
        receiver_tax_id=chargeback.reversal_tax_id,
        reason="fraud",
        tags=["chargeback", "pix"]
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

// map the received chargeback's reversal* fields onto the receiver* fields
const requests = await starkinfra.pixRequest.create([
    {
        amount: 1000,
        externalId: "my-external-id-1",
        endToEndId: "E20018183202201011000r01",
        senderAccountNumber: "00000-0",
        senderBranchCode: "0001",
        senderAccountType: "checking",
        senderName: "Arya Stark",
        senderTaxId: "20.018.183/0001-80",
        receiverBankCode: chargeback.reversalBankCode,
        receiverBranchCode: chargeback.reversalBranchCode,
        receiverAccountNumber: chargeback.reversalAccountNumber,
        receiverAccountType: chargeback.reversalAccountType,
        receiverTaxId: chargeback.reversalTaxId,
        reason: "fraud",
        tags: ["chargeback", "pix"]
    }
])

for (const request of requests) {
    console.log(request)
}
  

PHP

 1000,
        "externalId" => "my-external-id-1",
        "endToEndId" => "E20018183202201011000r01",
        "senderAccountNumber" => "00000-0",
        "senderBranchCode" => "0001",
        "senderAccountType" => "checking",
        "senderName" => "Arya Stark",
        "senderTaxId" => "20.018.183/0001-80",
        "receiverBankCode" => $chargeback->reversalBankCode,
        "receiverBranchCode" => $chargeback->reversalBranchCode,
        "receiverAccountNumber" => $chargeback->reversalAccountNumber,
        "receiverAccountType" => $chargeback->reversalAccountType,
        "receiverTaxId" => $chargeback->reversalTaxId,
        "reason" => "fraud",
        "tags" => ["chargeback", "pix"]
    ])
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

// map the received chargeback's reversal* fields onto the receiver* fields
List requests = PixRequest.create(
    Arrays.asList(
        new PixRequest.Builder()
            .amount(1000L)
            .externalId("my-external-id-1")
            .endToEndId("E20018183202201011000r01")
            .senderAccountNumber("00000-0")
            .senderBranchCode("0001")
            .senderAccountType("checking")
            .senderName("Arya Stark")
            .senderTaxId("20.018.183/0001-80")
            .receiverBankCode(chargeback.reversalBankCode)
            .receiverBranchCode(chargeback.reversalBranchCode)
            .receiverAccountNumber(chargeback.reversalAccountNumber)
            .receiverAccountType(chargeback.reversalAccountType)
            .receiverTaxId(chargeback.reversalTaxId)
            .reason("fraud")
            .tags(Arrays.asList("chargeback", "pix"))
            .build()
    )
);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

# map the received chargeback's reversal_* fields onto the receiver_* fields
requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        sender_account_number: "00000-0",
        sender_branch_code: "0001",
        sender_account_type: "checking",
        sender_name: "Arya Stark",
        sender_tax_id: "20.018.183/0001-80",
        receiver_bank_code: chargeback.reversal_bank_code,
        receiver_branch_code: chargeback.reversal_branch_code,
        receiver_account_number: chargeback.reversal_account_number,
        receiver_account_type: chargeback.reversal_account_type,
        receiver_tax_id: chargeback.reversal_tax_id,
        reason: "fraud",
        tags: ["chargeback", "pix"]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

# map the received chargeback's reversal_* fields onto the receiver_* fields
requests = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        sender_account_number: "00000-0",
        sender_branch_code: "0001",
        sender_account_type: "checking",
        sender_name: "Arya Stark",
        sender_tax_id: "20.018.183/0001-80",
        receiver_bank_code: chargeback.reversal_bank_code,
        receiver_branch_code: chargeback.reversal_branch_code,
        receiver_account_number: chargeback.reversal_account_number,
        receiver_account_type: chargeback.reversal_account_type,
        receiver_tax_id: chargeback.reversal_tax_id,
        reason: "fraud",
        tags: ["chargeback", "pix"]
    }
])

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

// map the received chargeback's reversal* fields onto the receiver* fields
List requests = PixRequest.Create(
    new List {
        new PixRequest(
            amount: 1000,
            externalId: "my-external-id-1",
            endToEndId: "E20018183202201011000r01",
            senderAccountNumber: "00000-0",
            senderBranchCode: "0001",
            senderAccountType: "checking",
            senderName: "Arya Stark",
            senderTaxId: "20.018.183/0001-80",
            receiverBankCode: chargeback.ReversalBankCode,
            receiverBranchCode: chargeback.ReversalBranchCode,
            receiverAccountNumber: chargeback.ReversalAccountNumber,
            receiverAccountType: chargeback.ReversalAccountType,
            receiverTaxId: chargeback.ReversalTaxId,
            reason: "fraud",
            tags: new List { "chargeback", "pix" }
        )
    }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

// map the received chargeback's Reversal* fields onto the Receiver* fields
requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                1000,
            ExternalId:            "my-external-id-1",
            EndToEndId:            "E20018183202201011000r01",
            SenderAccountNumber:   "00000-0",
            SenderBranchCode:      "0001",
            SenderAccountType:     "checking",
            SenderName:            "Arya Stark",
            SenderTaxId:           "20.018.183/0001-80",
            ReceiverBankCode:      chargeback.ReversalBankCode,
            ReceiverBranchCode:    chargeback.ReversalBranchCode,
            ReceiverAccountNumber: chargeback.ReversalAccountNumber,
            ReceiverAccountType:   chargeback.ReversalAccountType,
            ReceiverTaxId:         chargeback.ReversalTaxId,
            Reason:                "fraud",
            Tags:                  []string{"chargeback", "pix"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

;; map the received chargeback's reversal-* fields onto the receiver-* fields
(def requests
    (starkinfra.pix-request/create
        [{:amount 1000
          :external-id "my-external-id-1"
          :end-to-end-id "E20018183202201011000r01"
          :sender-account-number "00000-0"
          :sender-branch-code "0001"
          :sender-account-type "checking"
          :sender-name "Arya Stark"
          :sender-tax-id "20.018.183/0001-80"
          :receiver-bank-code (:reversal-bank-code chargeback)
          :receiver-branch-code (:reversal-branch-code chargeback)
          :receiver-account-number (:reversal-account-number chargeback)
          :receiver-account-type (:reversal-account-type chargeback)
          :receiver-tax-id (:reversal-tax-id chargeback)
          :reason "fraud"
          :tags ["chargeback" "pix"]}]))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 1000,
            "externalId": "my-external-id-1",
            "endToEndId": "E20018183202201011000r01",
            "senderAccountNumber": "00000-0",
            "senderBranchCode": "0001",
            "senderAccountType": "checking",
            "senderName": "Arya Stark",
            "senderTaxId": "20.018.183/0001-80",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverTaxId": "98.765.432/0001-10",
            "reason": "fraud",
            "tags": ["chargeback", "pix"]
        }
    ]
}'
  

Creating Pix Requests with cashAmount, cashierType and cashierBankCode parameters

For Pix Saque and Pix Troco, set cashAmount (less than or equal to amount) to withdraw cash on payment.

This requires cashierType (one of "participant", "merchant", "other") and cashierBankCode (the cashier's 8-digit ISPB).

Python

import starkinfra

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=10000,
        external_id="my-external-id-1",
        end_to_end_id="E20018183202201011000r01",
        cash_amount=1000,
        cashier_type="merchant",
        cashier_bank_code="20018183",
        sender_account_number="00000-0",
        sender_branch_code="0001",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="012.345.678-90",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_bank_code="20018183",
        receiver_tax_id="98.765.432/0001-10",
        receiver_branch_code="0001",
        receiver_name="Jon Snow",
        tags=["transfer", "pix"]
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

const requests = await starkinfra.pixRequest.create([
    {
        amount: 10000,
        externalId: "my-external-id-1",
        endToEndId: "E20018183202201011000r01",
        cashAmount: 1000,
        cashierType: "merchant",
        cashierBankCode: "20018183",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for (const request of requests) {
    console.log(request)
}
  

PHP

 10000,
        "externalId" => "my-external-id-1",
        "endToEndId" => "E20018183202201011000r01",
        "cashAmount" => 1000,
        "cashierType" => "merchant",
        "cashierBankCode" => "20018183",
        "receiverBankCode" => "20018183",
        "receiverBranchCode" => "0001",
        "receiverAccountNumber" => "10000-0",
        "receiverAccountType" => "checking",
        "receiverName" => "Jon Snow",
        "receiverTaxId" => "012.345.678-90",
        "tags" => ["transfer", "pix"]
    ])
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List requests = PixRequest.create(
    Arrays.asList(
        new PixRequest.Builder()
            .amount(10000L)
            .externalId("my-external-id-1")
            .endToEndId("E20018183202201011000r01")
            .cashAmount(1000L)
            .cashierType("merchant")
            .cashierBankCode("20018183")
            .receiverBankCode("20018183")
            .receiverBranchCode("0001")
            .receiverAccountNumber("10000-0")
            .receiverAccountType("checking")
            .receiverName("Jon Snow")
            .receiverTaxId("012.345.678-90")
            .tags(Arrays.asList("transfer", "pix"))
            .build()
    )
);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: 10000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        cash_amount: 1000,
        cashier_type: "merchant",
        cashier_bank_code: "20018183",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

requests = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 10000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        cash_amount: 1000,
        cashier_type: "merchant",
        cashier_bank_code: "20018183",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List requests = PixRequest.Create(
    new List {
        new PixRequest(
            amount: 10000,
            externalId: "my-external-id-1",
            endToEndId: "E20018183202201011000r01",
            cashAmount: 1000,
            cashierType: "merchant",
            cashierBankCode: "20018183",
            receiverBankCode: "20018183",
            receiverBranchCode: "0001",
            receiverAccountNumber: "10000-0",
            receiverAccountType: "checking",
            receiverName: "Jon Snow",
            receiverTaxId: "012.345.678-90",
            tags: new List { "transfer", "pix" }
        )
    }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                10000,
            ExternalId:            "my-external-id-1",
            EndToEndId:            "E20018183202201011000r01",
            CashAmount:            1000,
            CashierType:           "merchant",
            CashierBankCode:       "20018183",
            ReceiverBankCode:      "20018183",
            ReceiverBranchCode:    "0001",
            ReceiverAccountNumber: "10000-0",
            ReceiverAccountType:   "checking",
            ReceiverName:          "Jon Snow",
            ReceiverTaxId:         "012.345.678-90",
            Tags:                  []string{"transfer", "pix"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

(def requests
    (starkinfra.pix-request/create
        [{:amount 10000
          :external-id "my-external-id-1"
          :end-to-end-id "E20018183202201011000r01"
          :cash-amount 1000
          :cashier-type "merchant"
          :cashier-bank-code "20018183"
          :receiver-bank-code "20018183"
          :receiver-branch-code "0001"
          :receiver-account-number "10000-0"
          :receiver-account-type "checking"
          :receiver-name "Jon Snow"
          :receiver-tax-id "012.345.678-90"
          :tags ["transfer" "pix"]}]))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 10000,
            "externalId": "my-external-id-1",
            "endToEndId": "E20018183202201011000r01",
            "cashAmount": 1000,
            "cashierType": "merchant",
            "cashierBankCode": "20018183",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverName": "Jon Snow",
            "receiverTaxId": "012.345.678-90",
            "tags": ["transfer", "pix"]
        }
    ]
}'
  

Creating Pix Requests with initiatorTaxId parameter

Pass initiatorTaxId (the payment initiator's CPF/CNPJ) to register the initiator of the payment.

The endToEndId must be issued under the initiator's ISPB.

Python

import starkinfra

requests = starkinfra.pixrequest.create([
    starkinfra.PixRequest(
        amount=1000,
        external_id="my-external-id-1",
        end_to_end_id="E20018183202201011000r01",
        initiator_tax_id="20.018.183/0001-80",
        sender_account_number="00000-0",
        sender_branch_code="0001",
        sender_account_type="checking",
        sender_name="Arya Stark",
        sender_tax_id="012.345.678-90",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_bank_code="20018183",
        receiver_tax_id="98.765.432/0001-10",
        receiver_branch_code="0001",
        receiver_name="Jon Snow",
        tags=["transfer", "pix"]
    )
])

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

const requests = await starkinfra.pixRequest.create([
    {
        amount: 1000,
        externalId: "my-external-id-1",
        endToEndId: "E20018183202201011000r01",
        initiatorTaxId: "20.018.183/0001-80",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverName: "Jon Snow",
        receiverTaxId: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for (const request of requests) {
    console.log(request)
}
  

PHP

 1000,
        "externalId" => "my-external-id-1",
        "endToEndId" => "E20018183202201011000r01",
        "initiatorTaxId" => "20.018.183/0001-80",
        "receiverBankCode" => "20018183",
        "receiverBranchCode" => "0001",
        "receiverAccountNumber" => "10000-0",
        "receiverAccountType" => "checking",
        "receiverName" => "Jon Snow",
        "receiverTaxId" => "012.345.678-90",
        "tags" => ["transfer", "pix"]
    ])
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List requests = PixRequest.create(
    Arrays.asList(
        new PixRequest.Builder()
            .amount(1000L)
            .externalId("my-external-id-1")
            .endToEndId("E20018183202201011000r01")
            .initiatorTaxId("20.018.183/0001-80")
            .receiverBankCode("20018183")
            .receiverBranchCode("0001")
            .receiverAccountNumber("10000-0")
            .receiverAccountType("checking")
            .receiverName("Jon Snow")
            .receiverTaxId("012.345.678-90")
            .tags(Arrays.asList("transfer", "pix"))
            .build()
    )
);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

requests = StarkInfra::PixRequest.create([
    StarkInfra::PixRequest.new(
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        initiator_tax_id: "20.018.183/0001-80",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    )
])

requests.each do |request|
    puts request
end
  

Elixir

requests = StarkInfra.PixRequest.create!([
    %StarkInfra.PixRequest{
        amount: 1000,
        external_id: "my-external-id-1",
        end_to_end_id: "E20018183202201011000r01",
        initiator_tax_id: "20.018.183/0001-80",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_name: "Jon Snow",
        receiver_tax_id: "012.345.678-90",
        tags: ["transfer", "pix"]
    }
])

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List requests = PixRequest.Create(
    new List {
        new PixRequest(
            amount: 1000,
            externalId: "my-external-id-1",
            endToEndId: "E20018183202201011000r01",
            initiatorTaxId: "20.018.183/0001-80",
            receiverBankCode: "20018183",
            receiverBranchCode: "0001",
            receiverAccountNumber: "10000-0",
            receiverAccountType: "checking",
            receiverName: "Jon Snow",
            receiverTaxId: "012.345.678-90",
            tags: new List { "transfer", "pix" }
        )
    }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

requests, err := PixRequest.Create(
    []PixRequest.PixRequest{
        {
            Amount:                1000,
            ExternalId:            "my-external-id-1",
            EndToEndId:            "E20018183202201011000r01",
            InitiatorTaxId:        "20.018.183/0001-80",
            ReceiverBankCode:      "20018183",
            ReceiverBranchCode:    "0001",
            ReceiverAccountNumber: "10000-0",
            ReceiverAccountType:   "checking",
            ReceiverName:          "Jon Snow",
            ReceiverTaxId:         "012.345.678-90",
            Tags:                  []string{"transfer", "pix"},
        },
    }, nil)

for _, request := range requests {
    fmt.Println(request)
}
  

Clojure

(def requests
    (starkinfra.pix-request/create
        [{:amount 1000
          :external-id "my-external-id-1"
          :end-to-end-id "E20018183202201011000r01"
          :initiator-tax-id "20.018.183/0001-80"
          :receiver-bank-code "20018183"
          :receiver-branch-code "0001"
          :receiver-account-number "10000-0"
          :receiver-account-type "checking"
          :receiver-name "Jon Snow"
          :receiver-tax-id "012.345.678-90"
          :tags ["transfer" "pix"]}]))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-request' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "requests": [
        {
            "amount": 1000,
            "externalId": "my-external-id-1",
            "endToEndId": "E20018183202201011000r01",
            "initiatorTaxId": "20.018.183/0001-80",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverName": "Jon Snow",
            "receiverTaxId": "012.345.678-90",
            "tags": ["transfer", "pix"]
        }
    ]
}'
  

Listing Pix Requests

List and filter all Pix requests. Results are paged.

Every time a participant sends you a Pix, an inbound Pix Request is created and a synchronous POST authorization request is sent to your registered pixRequestUrl, which you must answer with approval or denial within 1 second (HTTP 200) or it is denied by default. Approve with status "approved"; deny with status "denied" and a reason such as "invalidAccountNumber".

ENDPOINT
GET /v2/pix-request
REQUEST

Python

import starkinfra

requests = starkinfra.pixrequest.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    status=["success"],
    tags=["pix"]
)

for request in requests:
    print(request)
  

Javascript

const starkinfra = require('starkinfra')

const requests = await starkinfra.pixRequest.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
})

for await (const request of requests) {
    console.log(request)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "status" => "success",
    "flow" => "out",
    "tags" => ["pix"]
]);

foreach ($requests as $request) {
    print_r($request);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");
params.put("status", "success");
params.put("flow", "out");

Generator requests = PixRequest.query(params);

for (PixRequest request : requests) {
    System.out.println(request);
}
  

Ruby

require('starkinfra')

requests = StarkInfra::PixRequest.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
)

requests.each do |request|
    puts request
end
  

Elixir

requests = StarkInfra.PixRequest.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
)

for request <- requests do
    IO.inspect(request)
end
  

C#

using StarkInfra;

IEnumerable requests = PixRequest.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    status: "success",
    flow: "out",
    tags: new List { "pix" }
);

foreach (PixRequest request in requests) {
    Console.WriteLine(request);
}
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
    "status": "success",
    "flow":   "out",
}

requests := PixRequest.Query(params, nil)

for request := range requests {
    fmt.Println(request)
}
  

Clojure

(def requests
    (starkinfra.pix-request/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :status "success"
        :flow "out"
        :tags ["pix"]
    }))

(doseq [request requests]
    (println request))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-request?limit=10&after=2022-01-01&before=2022-12-31&status=success&flow=out' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixRequest(
    id="5656565656565656",
    amount=1000,
    end_to_end_id="E20018183202201011000r01",
    fee=0,
    flow="out",
    method="manual",
    status="success",
    tags=["pix"],
    priority="high",
    reason="customerRequest",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixRequest Object (
    [id] => 5656565656565656
    [amount] => 1000
    [status] => success
    [flow] => out
    [tags] => Array ( [0] => pix )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixRequest(
    id=5656565656565656,
    amount=1000,
    status=success,
    flow=out,
    tags=[pix],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixRequest{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixRequest(
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: [ "pix" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Amount: 1000,
    Status: "success",
    Flow: "out",
    Tags: ["pix"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :amount 1000
 :status "success"
 :flow "out"
 :tags ["pix"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "requests": [
        {
            "id": "5656565656565656",
            "amount": 1000,
            "status": "success",
            "flow": "out",
            "tags": ["pix"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Pix Request

Get a single Pix request by its id.

ENDPOINT
GET /v2/pix-request/:id
REQUEST

Python

import starkinfra

request = starkinfra.pixrequest.get("5656565656565656")

print(request)
  

Javascript

const starkinfra = require('starkinfra')

const request = await starkinfra.pixRequest.get("5656565656565656")

console.log(request)
  

PHP

Java

import com.starkinfra.*;

PixRequest request = PixRequest.get("5656565656565656");

System.out.println(request);
  

Ruby

require('starkinfra')

request = StarkInfra::PixRequest.get("5656565656565656")

puts request
  

Elixir

request = StarkInfra.PixRequest.get!("5656565656565656")

IO.inspect(request)
  

C#

using StarkInfra;

PixRequest request = PixRequest.Get("5656565656565656");

Console.WriteLine(request);
  

Go

package main

import (
    "fmt"
    PixRequest "github.com/starkinfra/sdk-go/starkinfra/pixrequest"
)

request, err := PixRequest.Get("5656565656565656", nil)

fmt.Println(request)
  

Clojure

(def request
    (starkinfra.pix-request/get "5656565656565656"))

(println request)
  

Curl

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

Python

PixRequest(
    id="5656565656565656",
    amount=1000,
    end_to_end_id="E20018183202201011000r01",
    fee=0,
    flow="out",
    method="manual",
    external_id="my-external-id-1",
    initiator_tax_id="",
    receiver_bank_code="20018183",
    receiver_branch_code="0001",
    receiver_account_number="10000-0",
    receiver_account_type="checking",
    receiver_name="Jon Snow",
    receiver_tax_id="98.765.432/0001-10",
    sender_bank_code="34052649",
    sender_branch_code="0001",
    sender_account_number="00000-0",
    sender_account_type="checking",
    sender_name="Arya Stark",
    sender_tax_id="012.345.678-90",
    status="success",
    tags=["pix"],
    description="",
    reconciliation_id="",
    cash_amount=0,
    cashier_type="",
    cashier_bank_code="",
    priority="high",
    reason="customerRequest",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    amount: 1000,
    externalId: "my-external-id-1",
    receiverBankCode: "20018183",
    receiverBranchCode: "0001",
    receiverAccountNumber: "10000-0",
    receiverAccountType: "checking",
    receiverName: "Jon Snow",
    receiverTaxId: "012.345.678-90",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixRequest Object (
    [id] => 5656565656565656
    [amount] => 1000
    [externalId] => my-external-id-1
    [receiverBankCode] => 20018183
    [receiverBranchCode] => 0001
    [receiverAccountNumber] => 10000-0
    [receiverAccountType] => checking
    [receiverName] => Jon Snow
    [receiverTaxId] => 012.345.678-90
    [status] => success
    [flow] => out
    [tags] => Array ( [0] => pix )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixRequest(
    id=5656565656565656,
    amount=1000,
    externalId=my-external-id-1,
    receiverBankCode=20018183,
    receiverBranchCode=0001,
    receiverAccountNumber=10000-0,
    receiverAccountType=checking,
    receiverName=Jon Snow,
    receiverTaxId=012.345.678-90,
    status=success,
    flow=out,
    tags=[pix],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    amount: 1000,
    external_id: "my-external-id-1",
    receiver_bank_code: "20018183",
    receiver_branch_code: "0001",
    receiver_account_number: "10000-0",
    receiver_account_type: "checking",
    receiver_name: "Jon Snow",
    receiver_tax_id: "012.345.678-90",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixRequest{
    id: "5656565656565656",
    amount: 1000,
    external_id: "my-external-id-1",
    receiver_bank_code: "20018183",
    receiver_branch_code: "0001",
    receiver_account_number: "10000-0",
    receiver_account_type: "checking",
    receiver_name: "Jon Snow",
    receiver_tax_id: "012.345.678-90",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixRequest(
    id: "5656565656565656",
    amount: 1000,
    externalId: "my-external-id-1",
    receiverBankCode: "20018183",
    receiverBranchCode: "0001",
    receiverAccountNumber: "10000-0",
    receiverAccountType: "checking",
    receiverName: "Jon Snow",
    receiverTaxId: "012.345.678-90",
    status: "success",
    flow: "out",
    tags: [ "pix" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Amount: 1000,
    ExternalId: "my-external-id-1",
    ReceiverBankCode: "20018183",
    ReceiverBranchCode: "0001",
    ReceiverAccountNumber: "10000-0",
    ReceiverAccountType: "checking",
    ReceiverName: "Jon Snow",
    ReceiverTaxId: "012.345.678-90",
    Status: "success",
    Flow: "out",
    Tags: ["pix"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :amount 1000
 :external-id "my-external-id-1"
 :receiver-bank-code "20018183"
 :receiver-branch-code "0001"
 :receiver-account-number "10000-0"
 :receiver-account-type "checking"
 :receiver-name "Jon Snow"
 :receiver-tax-id "012.345.678-90"
 :status "success"
 :flow "out"
 :tags ["pix"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "request": {
        "id": "5656565656565656",
        "amount": 1000,
        "externalId": "my-external-id-1",
        "receiverBankCode": "20018183",
        "receiverBranchCode": "0001",
        "receiverAccountNumber": "10000-0",
        "receiverAccountType": "checking",
        "receiverName": "Jon Snow",
        "receiverTaxId": "012.345.678-90",
        "status": "success",
        "flow": "out",
        "tags": ["pix"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Pix Reversal Overview

A Pix Reversal allows you to reverse a previously made Pix transfer, sending the funds back to the original sender.

Here we will show you how to create and manage them.

The Pix Reversal Status

After creation, you can use asynchronous Webhooks to monitor status changes of a Pix Reversal.

Outbound Pix Reversals (the ones you send) follow this life cycle:

pix-reversal-outbound-status

Inbound Pix Reversals (the ones you receive and authorize) follow this life cycle:

pix-reversal-inbound-status

StatusDescription
CreatedThe Pix Reversal creation request was registered at Stark Infra.
ProcessingThe Pix Reversal is being processed.
SuccessThe Pix Reversal was completed.
FailedThe Pix Reversal failed or was denied.

The Pix Reversal Logs

Every time we change a Pix Reversal, we create a Log. Logs are useful for understanding the life cycle of each Pix Reversal, and we fire a Webhook whenever a new Log is created. The possible Pix Reversal Logs:

pix-reversal-outbound-log

For inbound Pix Reversals:

pix-reversal-inbound-log

Log typeStatusDescription
SuccessSuccessThe Pix Reversal was completed.
FailedFailedThe Pix Reversal failed.

Receiving a Pix Reversal

Every time a Pix participant reverses a Pix you have successfully sent, a Pix Reversal is created and an authorization request is sent to your pixReversalUrl, which you must analyze and answer with approval or denial. You must respond to this synchronous authorization webhook within 1 second; if you do not respond in time, Stark Infra resolves the authorization using the default behavior. If no pixReversalUrl is registered, the inbound Pix Reversal is accepted by default.

receiving-a-pix-reversal

The Pix Reversal Object

Attributes

id STRING

Unique id for the Pix reversal.

amount INTEGER

Amount in cents to be reversed.

externalId STRING

Unique external ID to prevent duplicates.

endToEndId STRING

End-to-end ID of the original Pix request to be reversed.

returnId STRING

Central Bank return ID generated for the Pix reversal.

reason STRING

Reason for the reversal. Options: "fraud", "bankError", "cashierError", "customerRequest".

status STRING

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

tags LIST OF STRINGS

Tags associated with the Pix reversal.

fee INTEGER

Fee charged in cents for this reversal.

flow STRING

Direction of the reversal. Options: "in" (received), "out" (sent).

description STRING

Description of the reversal.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Pix Reversals

Reverse a Pix payment by providing the original end-to-end ID.

Pix Reversals can only be created for inbound Pix Requests with status success. Reference the original Pix Request by passing its endToEndId.

When a participant reverses a Pix you successfully sent, an authorization request is sent to your pixReversalUrl (which must differ from your pixRequestUrl); answer within 1 second (HTTP 200) or it is denied by default; if no pixReversalUrl is registered, inbound Pix Reversals are accepted by default.

sending-a-pix-reversal

ENDPOINT
POST /v2/pix-reversal
REQUEST

Python

import starkinfra

reversals = starkinfra.pixreversal.create([
    starkinfra.PixReversal(
        amount=1000,
        external_id="my-reversal-id-1",
        end_to_end_id="E20018183202201060100rq1feOMJqtZ",
        reason="fraud",
        description="reversing a fraudulent transfer",
        tags=["reversal", "pix"]
    )
])

for reversal in reversals:
    print(reversal)
  

Javascript

const starkinfra = require('starkinfra')

const reversals = await starkinfra.pixReversal.create([
    {
        amount: 1000,
        externalId: "my-reversal-id-1",
        endToEndId: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        tags: ["reversal", "pix"]
    }
])

for (const reversal of reversals) {
    console.log(reversal)
}
  

PHP

 1000,
        "externalId" => "my-reversal-id-1",
        "endToEndId" => "E20018183202201060100rq1feOMJqtZ",
        "reason" => "fraud",
        "tags" => ["reversal", "pix"]
    ])
]);

foreach ($reversals as $reversal) {
    print_r($reversal);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List reversals = PixReversal.create(
    Arrays.asList(
        new PixReversal.Builder()
            .amount(1000L)
            .externalId("my-reversal-id-1")
            .endToEndId("E20018183202201060100rq1feOMJqtZ")
            .reason("fraud")
            .tags(Arrays.asList("reversal", "pix"))
            .build()
    )
);

for (PixReversal reversal : reversals) {
    System.out.println(reversal);
}
  

Ruby

require('starkinfra')

reversals = StarkInfra::PixReversal.create([
    StarkInfra::PixReversal.new(
        amount: 1000,
        external_id: "my-reversal-id-1",
        end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        tags: ["reversal", "pix"]
    )
])

reversals.each do |reversal|
    puts reversal
end
  

Elixir

reversals = StarkInfra.PixReversal.create!([
    %StarkInfra.PixReversal{
        amount: 1000,
        external_id: "my-reversal-id-1",
        end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        tags: ["reversal", "pix"]
    }
])

for reversal <- reversals do
    IO.inspect(reversal)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List reversals = PixReversal.Create(
    new List {
        new PixReversal(
            amount: 1000,
            externalId: "my-reversal-id-1",
            endToEndId: "E20018183202201060100rq1feOMJqtZ",
            reason: "fraud",
            tags: new List { "reversal", "pix" }
        )
    }
);

foreach (PixReversal reversal in reversals) {
    Console.WriteLine(reversal);
}
  

Go

package main

import (
    "fmt"
    PixReversal "github.com/starkinfra/sdk-go/starkinfra/pixreversal"
)

reversals, err := PixReversal.Create(
    []PixReversal.PixReversal{
        {
            Amount:      1000,
            ExternalId:  "my-reversal-id-1",
            EndToEndId:  "E20018183202201060100rq1feOMJqtZ",
            Reason:      "fraud",
            Tags:        []string{"reversal", "pix"},
        },
    }, nil)

for _, reversal := range reversals {
    fmt.Println(reversal)
}
  

Clojure

(def reversals
    (starkinfra.pix-reversal/create
        [{:amount 1000
          :external-id "my-reversal-id-1"
          :end-to-end-id "E20018183202201060100rq1feOMJqtZ"
          :reason "fraud"
          :tags ["reversal" "pix"]}]))

(doseq [reversal reversals]
    (println reversal))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-reversal' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reversals": [
        {
            "amount": 1000,
            "externalId": "my-reversal-id-1",
            "endToEndId": "E20018183202201060100rq1feOMJqtZ",
            "reason": "fraud",
            "tags": ["reversal", "pix"]
        }
    ]
}'
  
RESPONSE

Python

[
    PixReversal(
        id="5656565656565656",
        amount=1000,
        external_id="my-reversal-id-1",
        end_to_end_id="E20018183202201060100rq1feOMJqtZ",
        return_id="D20018183202202030109X3OoBHG74wo",
        reason="fraud",
        status="created",
        flow="out",
        fee=0,
        description="reversing a fraudulent transfer",
        tags=["reversal", "pix"],
        created="2022-01-01T00:00:00+00:00",
        updated="2022-01-01T00:00:00+00:00"
    )
]
  

Javascript

[
    {
        id: "5656565656565656",
        amount: 1000,
        externalId: "my-reversal-id-1",
        endToEndId: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        status: "created",
        flow: "out",
        tags: ["reversal", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

PHP

[
    PixReversal Object (
        [id] => 5656565656565656
        [amount] => 1000
        [externalId] => my-reversal-id-1
        [endToEndId] => E20018183202201060100rq1feOMJqtZ
        [reason] => fraud
        [status] => created
        [flow] => out
        [tags] => Array ( [0] => reversal [1] => pix )
        [created] => 2022-01-01T00:00:00+00:00
        [updated] => 2022-01-01T00:00:00+00:00
    )
]
  

Java

[
    PixReversal(
        id=5656565656565656,
        amount=1000,
        externalId=my-reversal-id-1,
        endToEndId=E20018183202201060100rq1feOMJqtZ,
        reason=fraud,
        status=created,
        flow=out,
        tags=[reversal, pix],
        created=2022-01-01T00:00:00+00:00,
        updated=2022-01-01T00:00:00+00:00
    )
]
  

Ruby

[
    starkinfra_pix_reversal: {
        id: "5656565656565656",
        amount: 1000,
        external_id: "my-reversal-id-1",
        end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        status: "created",
        flow: "out",
        tags: ["reversal", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Elixir

[
    %StarkInfra.PixReversal{
        id: "5656565656565656",
        amount: 1000,
        external_id: "my-reversal-id-1",
        end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        status: "created",
        flow: "out",
        tags: ["reversal", "pix"],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

C#

[
    PixReversal(
        id: "5656565656565656",
        amount: 1000,
        externalId: "my-reversal-id-1",
        endToEndId: "E20018183202201060100rq1feOMJqtZ",
        reason: "fraud",
        status: "created",
        flow: "out",
        tags: [ "reversal", "pix" ],
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    )
]
  

Go

[
    {
        Id: "5656565656565656",
        Amount: 1000,
        ExternalId: "my-reversal-id-1",
        EndToEndId: "E20018183202201060100rq1feOMJqtZ",
        Reason: "fraud",
        Status: "created",
        Flow: "out",
        Tags: ["reversal", "pix"],
        Created: "2022-01-01T00:00:00+00:00",
        Updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Clojure

[
    {:id "5656565656565656"
     :amount 1000
     :external-id "my-reversal-id-1"
     :end-to-end-id "E20018183202201060100rq1feOMJqtZ"
     :reason "fraud"
     :status "created"
     :flow "out"
     :tags ["reversal" "pix"]
     :created "2022-01-01T00:00:00+00:00"
     :updated "2022-01-01T00:00:00+00:00"}
]
  

Curl

{
    "reversals": [
        {
            "id": "5656565656565656",
            "amount": 1000,
            "externalId": "my-reversal-id-1",
            "endToEndId": "E20018183202201060100rq1feOMJqtZ",
            "reason": "fraud",
            "status": "created",
            "flow": "out",
            "tags": ["reversal", "pix"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Listing Pix Reversals

List and filter all Pix reversals. Results are paged.

ENDPOINT
GET /v2/pix-reversal
REQUEST

Python

import starkinfra

reversals = starkinfra.pixreversal.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    status=["success"],
    external_ids=["my-reversal-id-1"],
    tags=["pix"]
)

for reversal in reversals:
    print(reversal)
  

Javascript

const starkinfra = require('starkinfra')

const reversals = await starkinfra.pixReversal.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
})

for await (const reversal of reversals) {
    console.log(reversal)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "status" => "success",
    "flow" => "out",
    "tags" => ["pix"]
]);

foreach ($reversals as $reversal) {
    print_r($reversal);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");
params.put("status", "success");
params.put("flow", "out");

Generator reversals = PixReversal.query(params);

for (PixReversal reversal : reversals) {
    System.out.println(reversal);
}
  

Ruby

require('starkinfra')

reversals = StarkInfra::PixReversal.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
)

reversals.each do |reversal|
    puts reversal
end
  

Elixir

reversals = StarkInfra.PixReversal.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    flow: "out",
    tags: ["pix"]
)

for reversal <- reversals do
    IO.inspect(reversal)
end
  

C#

using StarkInfra;

IEnumerable reversals = PixReversal.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    status: "success",
    flow: "out",
    tags: new List { "pix" }
);

foreach (PixReversal reversal in reversals) {
    Console.WriteLine(reversal);
}
  

Go

package main

import (
    "fmt"
    PixReversal "github.com/starkinfra/sdk-go/starkinfra/pixreversal"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
    "status": "success",
    "flow":   "out",
}

reversals := PixReversal.Query(params, nil)

for reversal := range reversals {
    fmt.Println(reversal)
}
  

Clojure

(def reversals
    (starkinfra.pix-reversal/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :status "success"
        :flow "out"
        :tags ["pix"]
    }))

(doseq [reversal reversals]
    (println reversal))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-reversal?limit=10&after=2022-01-01&before=2022-12-31&status=success&flow=out' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixReversal(
    id="5656565656565656",
    amount=1000,
    external_id="my-reversal-id-1",
    end_to_end_id="E20018183202201060100rq1feOMJqtZ",
    return_id="D20018183202202030109X3OoBHG74wo",
    reason="fraud",
    status="success",
    flow="out",
    fee=0,
    description="reversing a fraudulent transfer",
    tags=["pix"],
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixReversal Object (
    [id] => 5656565656565656
    [amount] => 1000
    [status] => success
    [flow] => out
    [tags] => Array ( [0] => pix )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixReversal(
    id=5656565656565656,
    amount=1000,
    status=success,
    flow=out,
    tags=[pix],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixReversal{
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixReversal(
    id: "5656565656565656",
    amount: 1000,
    status: "success",
    flow: "out",
    tags: [ "pix" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Amount: 1000,
    Status: "success",
    Flow: "out",
    Tags: ["pix"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :amount 1000
 :status "success"
 :flow "out"
 :tags ["pix"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "reversals": [
        {
            "id": "5656565656565656",
            "amount": 1000,
            "status": "success",
            "flow": "out",
            "tags": ["pix"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Pix Reversal

Get a single Pix reversal by its id.

ENDPOINT
GET /v2/pix-reversal/:id
REQUEST

Python

import starkinfra

reversal = starkinfra.pixreversal.get("5656565656565656")

print(reversal)
  

Javascript

const starkinfra = require('starkinfra')

const reversal = await starkinfra.pixReversal.get("5656565656565656")

console.log(reversal)
  

PHP

Java

import com.starkinfra.*;

PixReversal reversal = PixReversal.get("5656565656565656");

System.out.println(reversal);
  

Ruby

require('starkinfra')

reversal = StarkInfra::PixReversal.get("5656565656565656")

puts reversal
  

Elixir

reversal = StarkInfra.PixReversal.get!("5656565656565656")

IO.inspect(reversal)
  

C#

using StarkInfra;

PixReversal reversal = PixReversal.Get("5656565656565656");

Console.WriteLine(reversal);
  

Go

package main

import (
    "fmt"
    PixReversal "github.com/starkinfra/sdk-go/starkinfra/pixreversal"
)

reversal, err := PixReversal.Get("5656565656565656", nil)

fmt.Println(reversal)
  

Clojure

(def reversal
    (starkinfra.pix-reversal/get "5656565656565656"))

(println reversal)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-reversal/5656565656565656' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixReversal(
    id="5656565656565656",
    amount=1000,
    external_id="my-reversal-id-1",
    end_to_end_id="E20018183202201060100rq1feOMJqtZ",
    return_id="D20018183202202030109X3OoBHG74wo",
    reason="fraud",
    status="success",
    flow="out",
    fee=0,
    description="reversing a fraudulent transfer",
    tags=["pix"],
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    amount: 1000,
    externalId: "my-reversal-id-1",
    endToEndId: "E20018183202201060100rq1feOMJqtZ",
    reason: "fraud",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixReversal Object (
    [id] => 5656565656565656
    [amount] => 1000
    [externalId] => my-reversal-id-1
    [endToEndId] => E20018183202201060100rq1feOMJqtZ
    [reason] => fraud
    [status] => success
    [flow] => out
    [tags] => Array ( [0] => pix )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixReversal(
    id=5656565656565656,
    amount=1000,
    externalId=my-reversal-id-1,
    endToEndId=E20018183202201060100rq1feOMJqtZ,
    reason=fraud,
    status=success,
    flow=out,
    tags=[pix],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    amount: 1000,
    external_id: "my-reversal-id-1",
    end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
    reason: "fraud",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixReversal{
    id: "5656565656565656",
    amount: 1000,
    external_id: "my-reversal-id-1",
    end_to_end_id: "E20018183202201060100rq1feOMJqtZ",
    reason: "fraud",
    status: "success",
    flow: "out",
    tags: ["pix"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixReversal(
    id: "5656565656565656",
    amount: 1000,
    externalId: "my-reversal-id-1",
    endToEndId: "E20018183202201060100rq1feOMJqtZ",
    reason: "fraud",
    status: "success",
    flow: "out",
    tags: [ "pix" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Amount: 1000,
    ExternalId: "my-reversal-id-1",
    EndToEndId: "E20018183202201060100rq1feOMJqtZ",
    Reason: "fraud",
    Status: "success",
    Flow: "out",
    Tags: ["pix"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :amount 1000
 :external-id "my-reversal-id-1"
 :end-to-end-id "E20018183202201060100rq1feOMJqtZ"
 :reason "fraud"
 :status "success"
 :flow "out"
 :tags ["pix"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "reversal": {
        "id": "5656565656565656",
        "amount": 1000,
        "externalId": "my-reversal-id-1",
        "endToEndId": "E20018183202201060100rq1feOMJqtZ",
        "reason": "fraud",
        "status": "success",
        "flow": "out",
        "tags": ["pix"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Pix Internal Transaction Report Overview

A Pix Internal Transaction Report lets Direct and Indirect participants report transactions that were settled internally on the participant, such as transfers between two Indirect participants of the same Direct participant or between accounts of the same participant.

Here we will show you how to create and manage them.

The Pix Internal Transaction Report Status

After creation, you can use asynchronous Webhooks to monitor status changes. A Pix Internal Transaction Report follows the life cycle below:

pix-internal-transaction-report-status

StatusDescription
CreatedThe Pix internal transaction report was registered at Stark Infra.
ProcessingThe Pix internal transaction report was sent to Bacen and is awaiting a response.
SuccessThe Pix internal transaction report was accepted by Bacen.
FailedThe Pix internal transaction report was rejected by Bacen.

The Pix Internal Transaction Report Logs

Every time we change a Pix Internal Transaction Report, we create a Log. Logs are useful for understanding the life cycle of each report. Whenever a new Log is created, we fire a Webhook to your registered URL. Check the diagram below to understand the possible Pix Internal Transaction Report Logs:

pix-internal-transaction-report-log

Log typeStatusDescription
CreatedCreatedThe Pix internal transaction report was registered and queued to be sent.
SentProcessingThe Pix internal transaction report was sent to Bacen.
SuccessSuccessThe Pix internal transaction report was accepted by Bacen.
FailedFailedThe Pix internal transaction report was rejected by Bacen.

The Pix Internal Transaction Report Object

Attributes

id STRING

Unique id for the Pix internal transaction report.

referenceType STRING

Origin of the report's reference id. Options: "request" (derived from endToEndId), "reversal" (derived from returnId).

amount INTEGER

Transaction amount in cents. Example: 100 (R$1.00).

endToEndId STRING

End-to-end id of the reported Pix transaction.

returnId STRING

Return id of the reported transaction. Present when referenceType is "reversal".

method STRING

Type of the reported transaction. Options: "manual", "dict", "initiator", "dynamicQrcode", "staticQrcode", "payerQrcode", "subscription", "contactless", "staticContactless".

senderBankCode STRING

Bank ISPB code of the sender.

senderBranchCode STRING

Branch code of the sender's bank account.

senderAccountNumber STRING

Account number of the sender.

senderAccountType STRING

Account type of the sender. Options: "checking", "savings", "salary", "payment", "other".

senderTaxId STRING

CPF or CNPJ of the sender.

receiverBankCode STRING

Bank ISPB code of the receiver.

receiverBranchCode STRING

Branch code of the receiver's bank account.

receiverAccountNumber STRING

Account number of the receiver.

receiverAccountType STRING

Account type of the receiver. Options: "checking", "savings", "salary", "payment", "other".

receiverTaxId STRING

CPF or CNPJ of the receiver.

receiverKeyId STRING

Pix key of the receiver, when the transaction used one.

status STRING

Current status of the report. Options: "created", "processing", "success", "failed".

created STRING

Datetime of the original transaction, supplied at creation. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Pix Internal Transaction Reports

Report transactions that were settled internally on the participant, such as transfers between two Indirect participants of the same Direct participant or between accounts of the same participant.

ENDPOINT
POST /v2/pix-internal-transaction-report
REQUEST

Python

import starkinfra

reports = starkinfra.pixinternaltransactionreport.create([
    starkinfra.PixInternalTransactionReport(
        reference_type="request",
        amount=1000,
        end_to_end_id="E20018183202201011000r01",
        method="manual",
        created="2022-01-01T00:00:00+00:00",
        sender_bank_code="34052649",
        sender_branch_code="0001",
        sender_account_number="00000-0",
        sender_account_type="checking",
        sender_tax_id="012.345.678-90",
        receiver_bank_code="20018183",
        receiver_branch_code="0001",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_tax_id="20.018.183/0001-80",
        receiver_key_id="20.018.183/0001-80"
    )
])

for report in reports:
    print(report)
  

Javascript

const starkinfra = require('starkinfra')

const reports = await starkinfra.pixInternalTransactionReport.create([
    {
        referenceType: "request",
        amount: 1000,
        endToEndId: "E20018183202201011000r01",
        method: "manual",
        created: "2022-01-01T00:00:00+00:00",
        senderBankCode: "34052649",
        senderBranchCode: "0001",
        senderAccountNumber: "00000-0",
        senderAccountType: "checking",
        senderTaxId: "012.345.678-90",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverTaxId: "20.018.183/0001-80",
        receiverKeyId: "20.018.183/0001-80"
    }
])

for (const report of reports) {
    console.log(report)
}
  

PHP

 "request",
        "amount" => 1000,
        "endToEndId" => "E20018183202201011000r01",
        "method" => "manual",
        "created" => "2022-01-01T00:00:00+00:00",
        "senderBankCode" => "34052649",
        "senderBranchCode" => "0001",
        "senderAccountNumber" => "00000-0",
        "senderAccountType" => "checking",
        "senderTaxId" => "012.345.678-90",
        "receiverBankCode" => "20018183",
        "receiverBranchCode" => "0001",
        "receiverAccountNumber" => "10000-0",
        "receiverAccountType" => "checking",
        "receiverTaxId" => "20.018.183/0001-80",
        "receiverKeyId" => "20.018.183/0001-80"
    ])
]);

foreach ($reports as $report) {
    print_r($report);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List reports = PixInternalTransactionReport.create(
    Arrays.asList(
        new PixInternalTransactionReport.Builder()
            .referenceType("request")
            .amount(1000L)
            .endToEndId("E20018183202201011000r01")
            .method("manual")
            .created("2022-01-01T00:00:00+00:00")
            .senderBankCode("34052649")
            .senderBranchCode("0001")
            .senderAccountNumber("00000-0")
            .senderAccountType("checking")
            .senderTaxId("012.345.678-90")
            .receiverBankCode("20018183")
            .receiverBranchCode("0001")
            .receiverAccountNumber("10000-0")
            .receiverAccountType("checking")
            .receiverTaxId("20.018.183/0001-80")
            .receiverKeyId("20.018.183/0001-80")
            .build()
    )
);

for (PixInternalTransactionReport report : reports) {
    System.out.println(report);
}
  

Ruby

require('starkinfra')

reports = StarkInfra::PixInternalTransactionReport.create([
    StarkInfra::PixInternalTransactionReport.new(
        reference_type: "request",
        amount: 1000,
        end_to_end_id: "E20018183202201011000r01",
        method: "manual",
        created: "2022-01-01T00:00:00+00:00",
        sender_bank_code: "34052649",
        sender_branch_code: "0001",
        sender_account_number: "00000-0",
        sender_account_type: "checking",
        sender_tax_id: "012.345.678-90",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_tax_id: "20.018.183/0001-80",
        receiver_key_id: "20.018.183/0001-80"
    )
])

reports.each do |report|
    puts report
end
  

Elixir

reports = StarkInfra.PixInternalTransactionReport.create!([
    %StarkInfra.PixInternalTransactionReport{
        reference_type: "request",
        amount: 1000,
        end_to_end_id: "E20018183202201011000r01",
        method: "manual",
        created: "2022-01-01T00:00:00+00:00",
        sender_bank_code: "34052649",
        sender_branch_code: "0001",
        sender_account_number: "00000-0",
        sender_account_type: "checking",
        sender_tax_id: "012.345.678-90",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_tax_id: "20.018.183/0001-80",
        receiver_key_id: "20.018.183/0001-80"
    }
])

for report <- reports do
    IO.inspect(report)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List reports = PixInternalTransactionReport.Create(
    new List {
        new PixInternalTransactionReport(
            referenceType: "request",
            amount: 1000,
            endToEndId: "E20018183202201011000r01",
            method: "manual",
            created: "2022-01-01T00:00:00+00:00",
            senderBankCode: "34052649",
            senderBranchCode: "0001",
            senderAccountNumber: "00000-0",
            senderAccountType: "checking",
            senderTaxId: "012.345.678-90",
            receiverBankCode: "20018183",
            receiverBranchCode: "0001",
            receiverAccountNumber: "10000-0",
            receiverAccountType: "checking",
            receiverTaxId: "20.018.183/0001-80",
            receiverKeyId: "20.018.183/0001-80"
        )
    }
);

foreach (PixInternalTransactionReport report in reports) {
    Console.WriteLine(report);
}
  

Go

package main

import (
    "fmt"
    PixInternalTransactionReport "github.com/starkinfra/sdk-go/starkinfra/pixinternaltransactionreport"
)

reports, err := PixInternalTransactionReport.Create(
    []PixInternalTransactionReport.PixInternalTransactionReport{
        {
            ReferenceType:         "request",
            Amount:                1000,
            EndToEndId:            "E20018183202201011000r01",
            Method:                "manual",
            Created:               "2022-01-01T00:00:00+00:00",
            SenderBankCode:        "34052649",
            SenderBranchCode:      "0001",
            SenderAccountNumber:   "00000-0",
            SenderAccountType:     "checking",
            SenderTaxId:           "012.345.678-90",
            ReceiverBankCode:      "20018183",
            ReceiverBranchCode:    "0001",
            ReceiverAccountNumber: "10000-0",
            ReceiverAccountType:   "checking",
            ReceiverTaxId:         "20.018.183/0001-80",
            ReceiverKeyId:         "20.018.183/0001-80",
        },
    }, nil)

for _, report := range reports {
    fmt.Println(report)
}
  

Clojure

(def reports
    (starkinfra.pix-internal-transaction-report/create
        [{:reference-type "request"
          :amount 1000
          :end-to-end-id "E20018183202201011000r01"
          :method "manual"
          :created "2022-01-01T00:00:00+00:00"
          :sender-bank-code "34052649"
          :sender-branch-code "0001"
          :sender-account-number "00000-0"
          :sender-account-type "checking"
          :sender-tax-id "012.345.678-90"
          :receiver-bank-code "20018183"
          :receiver-branch-code "0001"
          :receiver-account-number "10000-0"
          :receiver-account-type "checking"
          :receiver-tax-id "20.018.183/0001-80"
          :receiver-key-id "20.018.183/0001-80"}]))

(doseq [report reports]
    (println report))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-internal-transaction-report' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reports": [
        {
            "referenceType": "request",
            "amount": 1000,
            "endToEndId": "E20018183202201011000r01",
            "method": "manual",
            "created": "2022-01-01T00:00:00+00:00",
            "senderBankCode": "34052649",
            "senderBranchCode": "0001",
            "senderAccountNumber": "00000-0",
            "senderAccountType": "checking",
            "senderTaxId": "012.345.678-90",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverTaxId": "20.018.183/0001-80",
            "receiverKeyId": "20.018.183/0001-80"
        }
    ]
}'
  
RESPONSE

Python

[
    PixInternalTransactionReport(
        id="5656565656565656",
        reference_type="request",
        amount=1000,
        end_to_end_id="E20018183202201011000r01",
        return_id="",
        method="manual",
        sender_bank_code="34052649",
        sender_branch_code="0001",
        sender_account_number="00000-0",
        sender_account_type="checking",
        sender_tax_id="012.345.678-90",
        receiver_bank_code="20018183",
        receiver_branch_code="0001",
        receiver_account_number="10000-0",
        receiver_account_type="checking",
        receiver_tax_id="20.018.183/0001-80",
        receiver_key_id="20.018.183/0001-80",
        status="created",
        created="2022-01-01T00:00:00+00:00",
        updated="2022-01-01T00:00:00+00:00"
    )
]
  

Javascript

[
    {
        id: "5656565656565656",
        referenceType: "request",
        amount: 1000,
        endToEndId: "E20018183202201011000r01",
        method: "manual",
        senderBankCode: "34052649",
        senderBranchCode: "0001",
        senderAccountNumber: "00000-0",
        senderAccountType: "checking",
        senderTaxId: "012.345.678-90",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverTaxId: "20.018.183/0001-80",
        receiverKeyId: "20.018.183/0001-80",
        status: "created",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

PHP

[
    PixInternalTransactionReport Object (
        [id] => 5656565656565656
        [referenceType] => request
        [amount] => 1000
        [endToEndId] => E20018183202201011000r01
        [method] => manual
        [senderBankCode] => 34052649
        [senderBranchCode] => 0001
        [senderAccountNumber] => 00000-0
        [senderAccountType] => checking
        [senderTaxId] => 012.345.678-90
        [receiverBankCode] => 20018183
        [receiverBranchCode] => 0001
        [receiverAccountNumber] => 10000-0
        [receiverAccountType] => checking
        [receiverTaxId] => 20.018.183/0001-80
        [receiverKeyId] => 20.018.183/0001-80
        [status] => created
        [created] => 2022-01-01T00:00:00+00:00
        [updated] => 2022-01-01T00:00:00+00:00
    )
]
  

Java

[
    PixInternalTransactionReport(
        id=5656565656565656,
        referenceType=request,
        amount=1000,
        endToEndId=E20018183202201011000r01,
        method=manual,
        senderBankCode=34052649,
        senderBranchCode=0001,
        senderAccountNumber=00000-0,
        senderAccountType=checking,
        senderTaxId=012.345.678-90,
        receiverBankCode=20018183,
        receiverBranchCode=0001,
        receiverAccountNumber=10000-0,
        receiverAccountType=checking,
        receiverTaxId=20.018.183/0001-80,
        receiverKeyId=20.018.183/0001-80,
        status=created,
        created=2022-01-01T00:00:00+00:00,
        updated=2022-01-01T00:00:00+00:00
    )
]
  

Ruby

[
    starkinfra_pix_internal_transaction_report: {
        id: "5656565656565656",
        reference_type: "request",
        amount: 1000,
        end_to_end_id: "E20018183202201011000r01",
        method: "manual",
        sender_bank_code: "34052649",
        sender_branch_code: "0001",
        sender_account_number: "00000-0",
        sender_account_type: "checking",
        sender_tax_id: "012.345.678-90",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_tax_id: "20.018.183/0001-80",
        receiver_key_id: "20.018.183/0001-80",
        status: "created",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Elixir

[
    %StarkInfra.PixInternalTransactionReport{
        id: "5656565656565656",
        reference_type: "request",
        amount: 1000,
        end_to_end_id: "E20018183202201011000r01",
        method: "manual",
        sender_bank_code: "34052649",
        sender_branch_code: "0001",
        sender_account_number: "00000-0",
        sender_account_type: "checking",
        sender_tax_id: "012.345.678-90",
        receiver_bank_code: "20018183",
        receiver_branch_code: "0001",
        receiver_account_number: "10000-0",
        receiver_account_type: "checking",
        receiver_tax_id: "20.018.183/0001-80",
        receiver_key_id: "20.018.183/0001-80",
        status: "created",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

C#

[
    PixInternalTransactionReport(
        id: "5656565656565656",
        referenceType: "request",
        amount: 1000,
        endToEndId: "E20018183202201011000r01",
        method: "manual",
        senderBankCode: "34052649",
        senderBranchCode: "0001",
        senderAccountNumber: "00000-0",
        senderAccountType: "checking",
        senderTaxId: "012.345.678-90",
        receiverBankCode: "20018183",
        receiverBranchCode: "0001",
        receiverAccountNumber: "10000-0",
        receiverAccountType: "checking",
        receiverTaxId: "20.018.183/0001-80",
        receiverKeyId: "20.018.183/0001-80",
        status: "created",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    )
]
  

Go

[
    {
        Id: "5656565656565656",
        ReferenceType: "request",
        Amount: 1000,
        EndToEndId: "E20018183202201011000r01",
        Method: "manual",
        SenderBankCode: "34052649",
        SenderBranchCode: "0001",
        SenderAccountNumber: "00000-0",
        SenderAccountType: "checking",
        SenderTaxId: "012.345.678-90",
        ReceiverBankCode: "20018183",
        ReceiverBranchCode: "0001",
        ReceiverAccountNumber: "10000-0",
        ReceiverAccountType: "checking",
        ReceiverTaxId: "20.018.183/0001-80",
        ReceiverKeyId: "20.018.183/0001-80",
        Status: "created",
        Created: "2022-01-01T00:00:00+00:00",
        Updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Clojure

[
    {:id "5656565656565656"
     :reference-type "request"
     :amount 1000
     :end-to-end-id "E20018183202201011000r01"
     :method "manual"
     :sender-bank-code "34052649"
     :sender-branch-code "0001"
     :sender-account-number "00000-0"
     :sender-account-type "checking"
     :sender-tax-id "012.345.678-90"
     :receiver-bank-code "20018183"
     :receiver-branch-code "0001"
     :receiver-account-number "10000-0"
     :receiver-account-type "checking"
     :receiver-tax-id "20.018.183/0001-80"
     :receiver-key-id "20.018.183/0001-80"
     :status "created"
     :created "2022-01-01T00:00:00+00:00"
     :updated "2022-01-01T00:00:00+00:00"}
]
  

Curl

{
    "reports": [
        {
            "id": "5656565656565656",
            "referenceType": "request",
            "amount": 1000,
            "endToEndId": "E20018183202201011000r01",
            "method": "manual",
            "senderBankCode": "34052649",
            "senderBranchCode": "0001",
            "senderAccountNumber": "00000-0",
            "senderAccountType": "checking",
            "senderTaxId": "012.345.678-90",
            "receiverBankCode": "20018183",
            "receiverBranchCode": "0001",
            "receiverAccountNumber": "10000-0",
            "receiverAccountType": "checking",
            "receiverTaxId": "20.018.183/0001-80",
            "receiverKeyId": "20.018.183/0001-80",
            "status": "created",
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Listing Pix Internal Transaction Reports

List and filter all Pix internal transaction reports. Results are paged.

ENDPOINT
GET /v2/pix-internal-transaction-report
REQUEST

Python

import starkinfra

reports = starkinfra.pixinternaltransactionreport.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    status=["success"],
    ids=["5656565656565656"]
)

for report in reports:
    print(report)
  

Javascript

const starkinfra = require('starkinfra')

const reports = await starkinfra.pixInternalTransactionReport.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    ids: ["5656565656565656"]
})

for await (const report of reports) {
    console.log(report)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "status" => "success",
    "ids" => ["5656565656565656"]
]);

foreach ($reports as $report) {
    print_r($report);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");
params.put("status", "success");

Generator reports = PixInternalTransactionReport.query(params);

for (PixInternalTransactionReport report : reports) {
    System.out.println(report);
}
  

Ruby

require('starkinfra')

reports = StarkInfra::PixInternalTransactionReport.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    ids: ["5656565656565656"]
)

reports.each do |report|
    puts report
end
  

Elixir

reports = StarkInfra.PixInternalTransactionReport.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "success",
    ids: ["5656565656565656"]
)

for report <- reports do
    IO.inspect(report)
end
  

C#

using StarkInfra;

IEnumerable reports = PixInternalTransactionReport.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    status: "success",
    ids: new List { "5656565656565656" }
);

foreach (PixInternalTransactionReport report in reports) {
    Console.WriteLine(report);
}
  

Go

package main

import (
    "fmt"
    PixInternalTransactionReport "github.com/starkinfra/sdk-go/starkinfra/pixinternaltransactionreport"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
    "status": "success",
}

reports := PixInternalTransactionReport.Query(params, nil)

for report := range reports {
    fmt.Println(report)
}
  

Clojure

(def reports
    (starkinfra.pix-internal-transaction-report/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :status "success"
        :ids ["5656565656565656"]
    }))

(doseq [report reports]
    (println report))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-internal-transaction-report?limit=10&after=2022-01-01&before=2022-12-31&status=success' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixInternalTransactionReport(
    id="5656565656565656",
    reference_type="request",
    amount=1000,
    end_to_end_id="E20018183202201011000r01",
    method="manual",
    status="success",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    referenceType: "request",
    amount: 1000,
    endToEndId: "E20018183202201011000r01",
    method: "manual",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixInternalTransactionReport Object (
    [id] => 5656565656565656
    [referenceType] => request
    [amount] => 1000
    [endToEndId] => E20018183202201011000r01
    [method] => manual
    [status] => success
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixInternalTransactionReport(
    id=5656565656565656,
    referenceType=request,
    amount=1000,
    endToEndId=E20018183202201011000r01,
    method=manual,
    status=success,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    reference_type: "request",
    amount: 1000,
    end_to_end_id: "E20018183202201011000r01",
    method: "manual",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixInternalTransactionReport{
    id: "5656565656565656",
    reference_type: "request",
    amount: 1000,
    end_to_end_id: "E20018183202201011000r01",
    method: "manual",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixInternalTransactionReport(
    id: "5656565656565656",
    referenceType: "request",
    amount: 1000,
    endToEndId: "E20018183202201011000r01",
    method: "manual",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    ReferenceType: "request",
    Amount: 1000,
    EndToEndId: "E20018183202201011000r01",
    Method: "manual",
    Status: "success",
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :reference-type "request"
 :amount 1000
 :end-to-end-id "E20018183202201011000r01"
 :method "manual"
 :status "success"
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "reports": [
        {
            "id": "5656565656565656",
            "referenceType": "request",
            "amount": 1000,
            "endToEndId": "E20018183202201011000r01",
            "method": "manual",
            "status": "success",
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Pix Internal Transaction Report

Get a single Pix internal transaction report by its id.

ENDPOINT
GET /v2/pix-internal-transaction-report/:id
REQUEST

Python

import starkinfra

report = starkinfra.pixinternaltransactionreport.get("5656565656565656")

print(report)
  

Javascript

const starkinfra = require('starkinfra')

const report = await starkinfra.pixInternalTransactionReport.get("5656565656565656")

console.log(report)
  

PHP

Java

import com.starkinfra.*;

PixInternalTransactionReport report = PixInternalTransactionReport.get("5656565656565656");

System.out.println(report);
  

Ruby

require('starkinfra')

report = StarkInfra::PixInternalTransactionReport.get("5656565656565656")

puts report
  

Elixir

report = StarkInfra.PixInternalTransactionReport.get!("5656565656565656")

IO.inspect(report)
  

C#

using StarkInfra;

PixInternalTransactionReport report = PixInternalTransactionReport.Get("5656565656565656");

Console.WriteLine(report);
  

Go

package main

import (
    "fmt"
    PixInternalTransactionReport "github.com/starkinfra/sdk-go/starkinfra/pixinternaltransactionreport"
)

report, err := PixInternalTransactionReport.Get("5656565656565656", nil)

fmt.Println(report)
  

Clojure

(def report
    (starkinfra.pix-internal-transaction-report/get "5656565656565656"))

(println report)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-internal-transaction-report/5656565656565656' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixInternalTransactionReport(
    id="5656565656565656",
    reference_type="request",
    amount=1000,
    end_to_end_id="E20018183202201011000r01",
    return_id="",
    method="manual",
    sender_bank_code="34052649",
    sender_branch_code="0001",
    sender_account_number="00000-0",
    sender_account_type="checking",
    sender_tax_id="012.345.678-90",
    receiver_bank_code="20018183",
    receiver_branch_code="0001",
    receiver_account_number="10000-0",
    receiver_account_type="checking",
    receiver_tax_id="20.018.183/0001-80",
    receiver_key_id="20.018.183/0001-80",
    status="success",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    referenceType: "request",
    amount: 1000,
    endToEndId: "E20018183202201011000r01",
    method: "manual",
    senderBankCode: "34052649",
    senderBranchCode: "0001",
    senderAccountNumber: "00000-0",
    senderAccountType: "checking",
    senderTaxId: "012.345.678-90",
    receiverBankCode: "20018183",
    receiverBranchCode: "0001",
    receiverAccountNumber: "10000-0",
    receiverAccountType: "checking",
    receiverTaxId: "20.018.183/0001-80",
    receiverKeyId: "20.018.183/0001-80",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixInternalTransactionReport Object (
    [id] => 5656565656565656
    [referenceType] => request
    [amount] => 1000
    [endToEndId] => E20018183202201011000r01
    [method] => manual
    [senderBankCode] => 34052649
    [senderBranchCode] => 0001
    [senderAccountNumber] => 00000-0
    [senderAccountType] => checking
    [senderTaxId] => 012.345.678-90
    [receiverBankCode] => 20018183
    [receiverBranchCode] => 0001
    [receiverAccountNumber] => 10000-0
    [receiverAccountType] => checking
    [receiverTaxId] => 20.018.183/0001-80
    [receiverKeyId] => 20.018.183/0001-80
    [status] => success
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixInternalTransactionReport(
    id=5656565656565656,
    referenceType=request,
    amount=1000,
    endToEndId=E20018183202201011000r01,
    method=manual,
    senderBankCode=34052649,
    senderBranchCode=0001,
    senderAccountNumber=00000-0,
    senderAccountType=checking,
    senderTaxId=012.345.678-90,
    receiverBankCode=20018183,
    receiverBranchCode=0001,
    receiverAccountNumber=10000-0,
    receiverAccountType=checking,
    receiverTaxId=20.018.183/0001-80,
    receiverKeyId=20.018.183/0001-80,
    status=success,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    reference_type: "request",
    amount: 1000,
    end_to_end_id: "E20018183202201011000r01",
    method: "manual",
    sender_bank_code: "34052649",
    sender_branch_code: "0001",
    sender_account_number: "00000-0",
    sender_account_type: "checking",
    sender_tax_id: "012.345.678-90",
    receiver_bank_code: "20018183",
    receiver_branch_code: "0001",
    receiver_account_number: "10000-0",
    receiver_account_type: "checking",
    receiver_tax_id: "20.018.183/0001-80",
    receiver_key_id: "20.018.183/0001-80",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixInternalTransactionReport{
    id: "5656565656565656",
    reference_type: "request",
    amount: 1000,
    end_to_end_id: "E20018183202201011000r01",
    method: "manual",
    sender_bank_code: "34052649",
    sender_branch_code: "0001",
    sender_account_number: "00000-0",
    sender_account_type: "checking",
    sender_tax_id: "012.345.678-90",
    receiver_bank_code: "20018183",
    receiver_branch_code: "0001",
    receiver_account_number: "10000-0",
    receiver_account_type: "checking",
    receiver_tax_id: "20.018.183/0001-80",
    receiver_key_id: "20.018.183/0001-80",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixInternalTransactionReport(
    id: "5656565656565656",
    referenceType: "request",
    amount: 1000,
    endToEndId: "E20018183202201011000r01",
    method: "manual",
    senderBankCode: "34052649",
    senderBranchCode: "0001",
    senderAccountNumber: "00000-0",
    senderAccountType: "checking",
    senderTaxId: "012.345.678-90",
    receiverBankCode: "20018183",
    receiverBranchCode: "0001",
    receiverAccountNumber: "10000-0",
    receiverAccountType: "checking",
    receiverTaxId: "20.018.183/0001-80",
    receiverKeyId: "20.018.183/0001-80",
    status: "success",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    ReferenceType: "request",
    Amount: 1000,
    EndToEndId: "E20018183202201011000r01",
    Method: "manual",
    SenderBankCode: "34052649",
    SenderBranchCode: "0001",
    SenderAccountNumber: "00000-0",
    SenderAccountType: "checking",
    SenderTaxId: "012.345.678-90",
    ReceiverBankCode: "20018183",
    ReceiverBranchCode: "0001",
    ReceiverAccountNumber: "10000-0",
    ReceiverAccountType: "checking",
    ReceiverTaxId: "20.018.183/0001-80",
    ReceiverKeyId: "20.018.183/0001-80",
    Status: "success",
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :reference-type "request"
 :amount 1000
 :end-to-end-id "E20018183202201011000r01"
 :method "manual"
 :sender-bank-code "34052649"
 :sender-branch-code "0001"
 :sender-account-number "00000-0"
 :sender-account-type "checking"
 :sender-tax-id "012.345.678-90"
 :receiver-bank-code "20018183"
 :receiver-branch-code "0001"
 :receiver-account-number "10000-0"
 :receiver-account-type "checking"
 :receiver-tax-id "20.018.183/0001-80"
 :receiver-key-id "20.018.183/0001-80"
 :status "success"
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "report": {
        "id": "5656565656565656",
        "referenceType": "request",
        "amount": 1000,
        "endToEndId": "E20018183202201011000r01",
        "method": "manual",
        "senderBankCode": "34052649",
        "senderBranchCode": "0001",
        "senderAccountNumber": "00000-0",
        "senderAccountType": "checking",
        "senderTaxId": "012.345.678-90",
        "receiverBankCode": "20018183",
        "receiverBranchCode": "0001",
        "receiverAccountNumber": "10000-0",
        "receiverAccountType": "checking",
        "receiverTaxId": "20.018.183/0001-80",
        "receiverKeyId": "20.018.183/0001-80",
        "status": "success",
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Static Brcode Overview

A Static Brcode is a QR Code that can receive multiple Pix payments with a fixed or open amount.

Here we will show you how to create and manage them.

The Static Brcode Object

Attributes

id STRING

Unique id for the static Brcode.

name STRING

Receiver name displayed in the QR code.

keyId STRING

Pix key to which payments will be directed.

city STRING

City of the receiver.

amount INTEGER

Fixed amount in cents. Leave empty for open amount QR codes.

reconciliationId STRING

Reconciliation ID included in the QR code.

cashierBankCode STRING

Bank ISPB code of the cashier for Pix Saque/Troco operations.

type STRING

Type of the static Brcode. Options: "instant", "instantAndOrSubscription".

description STRING

Description of the static Brcode.

tags LIST OF STRINGS

Tags associated with the static Brcode.

uuid STRING

Unique UUID used to identify this QR code.

url STRING

URL for the QR code image.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Static Brcodes

Create static Pix QR codes for receiving payments.

ENDPOINT
POST /v2/static-brcode
REQUEST

Python

import starkinfra

brcodes = starkinfra.staticbrcode.create([
    starkinfra.StaticBrcode(
        name="Jon Snow",
        key_id="+5511989898989",
        city="São Paulo",
        amount=1000,
        cashier_bank_code="20018183",
        type="instant",
        reconciliation_id="my-reconciliation-id",
        description="Payment for services",
        tags=["invoice", "payment"]
    )
])

for brcode in brcodes:
    print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcodes = await starkinfra.staticBrcode.create([
    {
        name: "Jon Snow",
        keyId: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliationId: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"]
    }
])

for (const brcode of brcodes) {
    console.log(brcode)
}
  

PHP

 "Jon Snow",
        "keyId" => "+5511989898989",
        "city" => "São Paulo",
        "amount" => 1000,
        "reconciliationId" => "my-reconciliation-id",
        "description" => "Payment for services",
        "tags" => ["invoice", "payment"]
    ])
]);

foreach ($brcodes as $brcode) {
    print_r($brcode);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List brcodes = StaticBrcode.create(
    Arrays.asList(
        new StaticBrcode.Builder()
            .name("Jon Snow")
            .keyId("+5511989898989")
            .city("São Paulo")
            .amount(1000L)
            .reconciliationId("my-reconciliation-id")
            .description("Payment for services")
            .tags(Arrays.asList("invoice", "payment"))
            .build()
    )
);

for (StaticBrcode brcode : brcodes) {
    System.out.println(brcode);
}
  

Ruby

require('starkinfra')

brcodes = StarkInfra::StaticBrcode.create([
    StarkInfra::StaticBrcode.new(
        name: "Jon Snow",
        key_id: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"]
    )
])

brcodes.each do |brcode|
    puts brcode
end
  

Elixir

brcodes = StarkInfra.StaticBrcode.create!([
    %StarkInfra.StaticBrcode{
        name: "Jon Snow",
        key_id: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"]
    }
])

for brcode <- brcodes do
    IO.inspect(brcode)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List brcodes = StaticBrcode.Create(
    new List {
        new StaticBrcode(
            name: "Jon Snow",
            keyId: "+5511989898989",
            city: "São Paulo",
            amount: 1000,
            reconciliationId: "my-reconciliation-id",
            description: "Payment for services",
            tags: new List { "invoice", "payment" }
        )
    }
);

foreach (StaticBrcode brcode in brcodes) {
    Console.WriteLine(brcode);
}
  

Go

package main

import (
    "fmt"
    StaticBrcode "github.com/starkinfra/sdk-go/starkinfra/staticbrcode"
)

brcodes, err := StaticBrcode.Create(
    []StaticBrcode.StaticBrcode{
        {
            Name:             "Jon Snow",
            KeyId:            "+5511989898989",
            City:             "São Paulo",
            Amount:           1000,
            ReconciliationId: "my-reconciliation-id",
            Description:      "Payment for services",
            Tags:             []string{"invoice", "payment"},
        },
    }, nil)

for _, brcode := range brcodes {
    fmt.Println(brcode)
}
  

Clojure

(def brcodes
    (starkinfra.static-brcode/create
        [{:name "Jon Snow"
          :key-id "+5511989898989"
          :city "São Paulo"
          :amount 1000
          :reconciliation-id "my-reconciliation-id"
          :description "Payment for services"
          :tags ["invoice" "payment"]}]))

(doseq [brcode brcodes]
    (println brcode))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/static-brcode' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "brcodes": [
        {
            "name": "Jon Snow",
            "keyId": "+5511989898989",
            "city": "São Paulo",
            "amount": 1000,
            "reconciliationId": "my-reconciliation-id",
            "description": "Payment for services",
            "tags": ["invoice", "payment"]
        }
    ]
}'
  
RESPONSE

Python

[
    StaticBrcode(
        id="5656565656565656",
        name="Jon Snow",
        key_id="+5511989898989",
        city="São Paulo",
        amount=1000,
        reconciliation_id="my-reconciliation-id",
        cashier_bank_code="20018183",
        type="instant",
        description="Payment for services",
        tags=["invoice", "payment"],
        uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        url="https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        created="2022-01-01T00:00:00+00:00",
        updated="2022-01-01T00:00:00+00:00"
    )
]
  

Javascript

[
    {
        id: "5656565656565656",
        name: "Jon Snow",
        keyId: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliationId: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"],
        uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

PHP

[
    StaticBrcode Object (
        [id] => 5656565656565656
        [name] => Jon Snow
        [keyId] => +5511989898989
        [city] => São Paulo
        [amount] => 1000
        [reconciliationId] => my-reconciliation-id
        [description] => Payment for services
        [tags] => Array ( [0] => invoice [1] => payment )
        [uuid] => a1b2c3d4-e5f6-7890-abcd-ef1234567890
        [url] => https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png
        [created] => 2022-01-01T00:00:00+00:00
        [updated] => 2022-01-01T00:00:00+00:00
    )
]
  

Java

[
    StaticBrcode(
        id=5656565656565656,
        name=Jon Snow,
        keyId=+5511989898989,
        city=São Paulo,
        amount=1000,
        reconciliationId=my-reconciliation-id,
        description=Payment for services,
        tags=[invoice, payment],
        uuid=a1b2c3d4-e5f6-7890-abcd-ef1234567890,
        url=https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png,
        created=2022-01-01T00:00:00+00:00,
        updated=2022-01-01T00:00:00+00:00
    )
]
  

Ruby

[
    {
        id: "5656565656565656",
        name: "Jon Snow",
        key_id: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"],
        uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Elixir

[
    %StarkInfra.StaticBrcode{
        id: "5656565656565656",
        name: "Jon Snow",
        key_id: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        tags: ["invoice", "payment"],
        uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

C#

[
    StaticBrcode(
        id: "5656565656565656",
        name: "Jon Snow",
        keyId: "+5511989898989",
        city: "São Paulo",
        amount: 1000,
        reconciliationId: "my-reconciliation-id",
        description: "Payment for services",
        tags: [ "invoice", "payment" ],
        uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    )
]
  

Go

[
    {
        Id: "5656565656565656",
        Name: "Jon Snow",
        KeyId: "+5511989898989",
        City: "São Paulo",
        Amount: 1000,
        ReconciliationId: "my-reconciliation-id",
        Description: "Payment for services",
        Tags: ["invoice", "payment"],
        Uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        Url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        Created: "2022-01-01T00:00:00+00:00",
        Updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Clojure

[
    {:id "5656565656565656"
     :name "Jon Snow"
     :key-id "+5511989898989"
     :city "São Paulo"
     :amount 1000
     :reconciliation-id "my-reconciliation-id"
     :description "Payment for services"
     :tags ["invoice" "payment"]
     :uuid "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
     :url "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png"
     :created "2022-01-01T00:00:00+00:00"
     :updated "2022-01-01T00:00:00+00:00"}
]
  

Curl

{
    "brcodes": [
        {
            "id": "5656565656565656",
            "name": "Jon Snow",
            "keyId": "+5511989898989",
            "city": "São Paulo",
            "amount": 1000,
            "reconciliationId": "my-reconciliation-id",
            "description": "Payment for services",
            "tags": ["invoice", "payment"],
            "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "url": "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Listing Static Brcodes

List and filter all static Brcodes. Results are paged.

ENDPOINT
GET /v2/static-brcode
REQUEST

Python

import starkinfra

brcodes = starkinfra.staticbrcode.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    uuids=["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
    tags=["invoice"]
)

for brcode in brcodes:
    print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcodes = await starkinfra.staticBrcode.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["invoice"]
})

for await (const brcode of brcodes) {
    console.log(brcode)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "tags" => ["invoice"]
]);

foreach ($brcodes as $brcode) {
    print_r($brcode);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");

Generator brcodes = StaticBrcode.query(params);

for (StaticBrcode brcode : brcodes) {
    System.out.println(brcode);
}
  

Ruby

require('starkinfra')

brcodes = StarkInfra::StaticBrcode.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["invoice"]
)

brcodes.each do |brcode|
    puts brcode
end
  

Elixir

brcodes = StarkInfra.StaticBrcode.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["invoice"]
)

for brcode <- brcodes do
    IO.inspect(brcode)
end
  

C#

using StarkInfra;

IEnumerable brcodes = StaticBrcode.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    tags: new List { "invoice" }
);

foreach (StaticBrcode brcode in brcodes) {
    Console.WriteLine(brcode);
}
  

Go

package main

import (
    "fmt"
    StaticBrcode "github.com/starkinfra/sdk-go/starkinfra/staticbrcode"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
}

brcodes := StaticBrcode.Query(params, nil)

for brcode := range brcodes {
    fmt.Println(brcode)
}
  

Clojure

(def brcodes
    (starkinfra.static-brcode/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :tags ["invoice"]
    }))

(doseq [brcode brcodes]
    (println brcode))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/static-brcode?limit=10&after=2022-01-01&before=2022-12-31' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

StaticBrcode(
    id="5656565656565656",
    name="Jon Snow",
    key_id="+5511989898989",
    city="São Paulo",
    amount=1000,
    reconciliation_id="my-reconciliation-id",
    cashier_bank_code="20018183",
    type="instant",
    description="Payment for services",
    tags=["invoice"],
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url="https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    name: "Jon Snow",
    keyId: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    tags: ["invoice"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

StaticBrcode Object (
    [id] => 5656565656565656
    [name] => Jon Snow
    [keyId] => +5511989898989
    [city] => São Paulo
    [amount] => 1000
    [uuid] => a1b2c3d4-e5f6-7890-abcd-ef1234567890
    [url] => https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png
    [tags] => Array ( [0] => invoice )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

StaticBrcode(
    id=5656565656565656,
    name=Jon Snow,
    keyId=+5511989898989,
    city=São Paulo,
    amount=1000,
    uuid=a1b2c3d4-e5f6-7890-abcd-ef1234567890,
    url=https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png,
    tags=[invoice],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    name: "Jon Snow",
    key_id: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    tags: ["invoice"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.StaticBrcode{
    id: "5656565656565656",
    name: "Jon Snow",
    key_id: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    tags: ["invoice"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

StaticBrcode(
    id: "5656565656565656",
    name: "Jon Snow",
    keyId: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    tags: [ "invoice" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Name: "Jon Snow",
    KeyId: "+5511989898989",
    City: "São Paulo",
    Amount: 1000,
    Uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    Url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    Tags: ["invoice"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :name "Jon Snow"
 :key-id "+5511989898989"
 :city "São Paulo"
 :amount 1000
 :uuid "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 :url "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png"
 :tags ["invoice"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "brcodes": [
        {
            "id": "5656565656565656",
            "name": "Jon Snow",
            "keyId": "+5511989898989",
            "city": "São Paulo",
            "amount": 1000,
            "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "url": "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
            "tags": ["invoice"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Static Brcode

Get a single static Brcode by its UUID.

ENDPOINT
GET /v2/static-brcode/:uuid
REQUEST

Python

import starkinfra

brcode = starkinfra.staticbrcode.get("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcode = await starkinfra.staticBrcode.get("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

console.log(brcode)
  

PHP

Java

import com.starkinfra.*;

StaticBrcode brcode = StaticBrcode.get("a1b2c3d4-e5f6-7890-abcd-ef1234567890");

System.out.println(brcode);
  

Ruby

require('starkinfra')

brcode = StarkInfra::StaticBrcode.get("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

puts brcode
  

Elixir

brcode = StarkInfra.StaticBrcode.get!("a1b2c3d4-e5f6-7890-abcd-ef1234567890")

IO.inspect(brcode)
  

C#

using StarkInfra;

StaticBrcode brcode = StaticBrcode.Get("a1b2c3d4-e5f6-7890-abcd-ef1234567890");

Console.WriteLine(brcode);
  

Go

package main

import (
    "fmt"
    StaticBrcode "github.com/starkinfra/sdk-go/starkinfra/staticbrcode"
)

brcode, err := StaticBrcode.Get("a1b2c3d4-e5f6-7890-abcd-ef1234567890", nil)

fmt.Println(brcode)
  

Clojure

(def brcode
    (starkinfra.static-brcode/get "a1b2c3d4-e5f6-7890-abcd-ef1234567890"))

(println brcode)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/static-brcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

StaticBrcode(
    id="5656565656565656",
    name="Jon Snow",
    key_id="+5511989898989",
    city="São Paulo",
    amount=1000,
    reconciliation_id="my-reconciliation-id",
    cashier_bank_code="20018183",
    type="instant",
    description="Payment for services",
    tags=["invoice", "payment"],
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url="https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    name: "Jon Snow",
    keyId: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    reconciliationId: "my-reconciliation-id",
    description: "Payment for services",
    tags: ["invoice", "payment"],
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

StaticBrcode Object (
    [id] => 5656565656565656
    [name] => Jon Snow
    [keyId] => +5511989898989
    [city] => São Paulo
    [amount] => 1000
    [reconciliationId] => my-reconciliation-id
    [description] => Payment for services
    [tags] => Array ( [0] => invoice [1] => payment )
    [uuid] => a1b2c3d4-e5f6-7890-abcd-ef1234567890
    [url] => https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

StaticBrcode(
    id=5656565656565656,
    name=Jon Snow,
    keyId=+5511989898989,
    city=São Paulo,
    amount=1000,
    reconciliationId=my-reconciliation-id,
    description=Payment for services,
    tags=[invoice, payment],
    uuid=a1b2c3d4-e5f6-7890-abcd-ef1234567890,
    url=https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    name: "Jon Snow",
    key_id: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    reconciliation_id: "my-reconciliation-id",
    description: "Payment for services",
    tags: ["invoice", "payment"],
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.StaticBrcode{
    id: "5656565656565656",
    name: "Jon Snow",
    key_id: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    reconciliation_id: "my-reconciliation-id",
    description: "Payment for services",
    tags: ["invoice", "payment"],
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

StaticBrcode(
    id: "5656565656565656",
    name: "Jon Snow",
    keyId: "+5511989898989",
    city: "São Paulo",
    amount: 1000,
    reconciliationId: "my-reconciliation-id",
    description: "Payment for services",
    tags: [ "invoice", "payment" ],
    uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Name: "Jon Snow",
    KeyId: "+5511989898989",
    City: "São Paulo",
    Amount: 1000,
    ReconciliationId: "my-reconciliation-id",
    Description: "Payment for services",
    Tags: ["invoice", "payment"],
    Uuid: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    Url: "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :name "Jon Snow"
 :key-id "+5511989898989"
 :city "São Paulo"
 :amount 1000
 :reconciliation-id "my-reconciliation-id"
 :description "Payment for services"
 :tags ["invoice" "payment"]
 :uuid "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 :url "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png"
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "brcode": {
        "id": "5656565656565656",
        "name": "Jon Snow",
        "keyId": "+5511989898989",
        "city": "São Paulo",
        "amount": 1000,
        "reconciliationId": "my-reconciliation-id",
        "description": "Payment for services",
        "tags": ["invoice", "payment"],
        "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "url": "https://brcode.starkinfra.com/static-qrcode/a1b2c3d4-e5f6-7890-abcd-ef1234567890.png",
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Dynamic Brcode Overview

A Dynamic Brcode is a QR Code that returns payment details dynamically from your server when scanned.

The "subscription", "subscriptionAndInstant" and "dueAndOrSubscription" types let a Dynamic Brcode initiate a Pix Automático recurring authorization.

Here we will show you how to create and manage them.

Reconcile a Dynamic Brcode

When the Dynamic Brcode gets paid, you receive a Pix Request carrying the reconciliationId you answered in the read request.

Use that reconciliationId to find your corresponding invoice and verify that all data is correct before accepting it.

Once the Pix Request payment is completed and its status turns to success, update your invoice status to paid.

The Dynamic Brcode Object

Attributes

id STRING

Unique id for the dynamic Brcode.

name STRING

Receiver name displayed in the QR code.

city STRING

City of the receiver.

externalId STRING

Your internal ID for this Brcode, used to prevent duplicates.

type STRING

Type of dynamic Brcode. Options: "instant", "due", "subscription", "subscriptionAndInstant", "dueAndOrSubscription".

tags LIST OF STRINGS

Tags associated with the dynamic Brcode.

uuid STRING

Unique UUID used to identify this QR code.

url STRING

URL for the QR code image.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Dynamic Brcodes

Create dynamic Pix QR codes that fetch payment details from your server.

The returned id can be used to generate the QR code image you present to your customer.

ENDPOINT
POST /v2/dynamic-brcode
REQUEST

Python

import starkinfra

brcodes = starkinfra.dynamicbrcode.create([
    starkinfra.DynamicBrcode(
        name="Jon Snow",
        city="São Paulo",
        external_id="my-dynamic-brcode-id-1",
        type="subscription",
        tags=["dynamic", "subscription"]
    )
])

for brcode in brcodes:
    print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcodes = await starkinfra.dynamicBrcode.create([
    {
        name: "Jon Snow",
        city: "São Paulo",
        externalId: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"]
    }
])

for (const brcode of brcodes) {
    console.log(brcode)
}
  

PHP

 "Jon Snow",
        "city" => "São Paulo",
        "externalId" => "my-dynamic-brcode-id-1",
        "type" => "instant",
        "tags" => ["dynamic", "instant"]
    ])
]);

foreach ($brcodes as $brcode) {
    print_r($brcode);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List brcodes = DynamicBrcode.create(
    Arrays.asList(
        new DynamicBrcode.Builder()
            .name("Jon Snow")
            .city("São Paulo")
            .externalId("my-dynamic-brcode-id-1")
            .type("instant")
            .tags(Arrays.asList("dynamic", "instant"))
            .build()
    )
);

for (DynamicBrcode brcode : brcodes) {
    System.out.println(brcode);
}
  

Ruby

require('starkinfra')

brcodes = StarkInfra::DynamicBrcode.create([
    StarkInfra::DynamicBrcode.new(
        name: "Jon Snow",
        city: "São Paulo",
        external_id: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"]
    )
])

brcodes.each do |brcode|
    puts brcode
end
  

Elixir

brcodes = StarkInfra.DynamicBrcode.create!([
    %StarkInfra.DynamicBrcode{
        name: "Jon Snow",
        city: "São Paulo",
        external_id: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"]
    }
])

for brcode <- brcodes do
    IO.inspect(brcode)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List brcodes = DynamicBrcode.Create(
    new List {
        new DynamicBrcode(
            name: "Jon Snow",
            city: "São Paulo",
            externalId: "my-dynamic-brcode-id-1",
            type: "instant",
            tags: new List { "dynamic", "instant" }
        )
    }
);

foreach (DynamicBrcode brcode in brcodes) {
    Console.WriteLine(brcode);
}
  

Go

package main

import (
    "fmt"
    DynamicBrcode "github.com/starkinfra/sdk-go/starkinfra/dynamicbrcode"
)

brcodes, err := DynamicBrcode.Create(
    []DynamicBrcode.DynamicBrcode{
        {
            Name:       "Jon Snow",
            City:       "São Paulo",
            ExternalId: "my-dynamic-brcode-id-1",
            Type:       "instant",
            Tags:       []string{"dynamic", "instant"},
        },
    }, nil)

for _, brcode := range brcodes {
    fmt.Println(brcode)
}
  

Clojure

(def brcodes
    (starkinfra.dynamic-brcode/create
        [{:name "Jon Snow"
          :city "São Paulo"
          :external-id "my-dynamic-brcode-id-1"
          :type "instant"
          :tags ["dynamic" "instant"]}]))

(doseq [brcode brcodes]
    (println brcode))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/dynamic-brcode' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "brcodes": [
        {
            "name": "Jon Snow",
            "city": "São Paulo",
            "externalId": "my-dynamic-brcode-id-1",
            "type": "instant",
            "tags": ["dynamic", "instant"]
        }
    ]
}'
  
RESPONSE

Python

[
    DynamicBrcode(
        id="5656565656565656",
        name="Jon Snow",
        city="São Paulo",
        external_id="my-dynamic-brcode-id-1",
        type="subscription",
        tags=["dynamic", "subscription"],
        uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901",
        url="https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        created="2022-01-01T00:00:00+00:00",
        updated="2022-01-01T00:00:00+00:00"
    )
]
  

Javascript

[
    {
        id: "5656565656565656",
        name: "Jon Snow",
        city: "São Paulo",
        externalId: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"],
        uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

PHP

[
    DynamicBrcode Object (
        [id] => 5656565656565656
        [name] => Jon Snow
        [city] => São Paulo
        [externalId] => my-dynamic-brcode-id-1
        [type] => instant
        [tags] => Array ( [0] => dynamic [1] => instant )
        [uuid] => b2c3d4e5-f6a7-8901-bcde-f12345678901
        [url] => https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png
        [created] => 2022-01-01T00:00:00+00:00
        [updated] => 2022-01-01T00:00:00+00:00
    )
]
  

Java

[
    DynamicBrcode(
        id=5656565656565656,
        name=Jon Snow,
        city=São Paulo,
        externalId=my-dynamic-brcode-id-1,
        type=instant,
        tags=[dynamic, instant],
        uuid=b2c3d4e5-f6a7-8901-bcde-f12345678901,
        url=https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png,
        created=2022-01-01T00:00:00+00:00,
        updated=2022-01-01T00:00:00+00:00
    )
]
  

Ruby

[
    {
        id: "5656565656565656",
        name: "Jon Snow",
        city: "São Paulo",
        external_id: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"],
        uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Elixir

[
    %StarkInfra.DynamicBrcode{
        id: "5656565656565656",
        name: "Jon Snow",
        city: "São Paulo",
        external_id: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: ["dynamic", "instant"],
        uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    }
]
  

C#

[
    DynamicBrcode(
        id: "5656565656565656",
        name: "Jon Snow",
        city: "São Paulo",
        externalId: "my-dynamic-brcode-id-1",
        type: "instant",
        tags: [ "dynamic", "instant" ],
        uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        created: "2022-01-01T00:00:00+00:00",
        updated: "2022-01-01T00:00:00+00:00"
    )
]
  

Go

[
    {
        Id: "5656565656565656",
        Name: "Jon Snow",
        City: "São Paulo",
        ExternalId: "my-dynamic-brcode-id-1",
        Type: "instant",
        Tags: ["dynamic", "instant"],
        Uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        Url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        Created: "2022-01-01T00:00:00+00:00",
        Updated: "2022-01-01T00:00:00+00:00"
    }
]
  

Clojure

[
    {:id "5656565656565656"
     :name "Jon Snow"
     :city "São Paulo"
     :external-id "my-dynamic-brcode-id-1"
     :type "instant"
     :tags ["dynamic" "instant"]
     :uuid "b2c3d4e5-f6a7-8901-bcde-f12345678901"
     :url "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png"
     :created "2022-01-01T00:00:00+00:00"
     :updated "2022-01-01T00:00:00+00:00"}
]
  

Curl

{
    "brcodes": [
        {
            "id": "5656565656565656",
            "name": "Jon Snow",
            "city": "São Paulo",
            "externalId": "my-dynamic-brcode-id-1",
            "type": "instant",
            "tags": ["dynamic", "instant"],
            "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
            "url": "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Listing Dynamic Brcodes

List and filter all dynamic Brcodes. Results are paged.

ENDPOINT
GET /v2/dynamic-brcode
REQUEST

Python

import starkinfra

brcodes = starkinfra.dynamicbrcode.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    tags=["dynamic"]
)

for brcode in brcodes:
    print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcodes = await starkinfra.dynamicBrcode.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["dynamic"]
})

for await (const brcode of brcodes) {
    console.log(brcode)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "tags" => ["dynamic"]
]);

foreach ($brcodes as $brcode) {
    print_r($brcode);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");

Generator brcodes = DynamicBrcode.query(params);

for (DynamicBrcode brcode : brcodes) {
    System.out.println(brcode);
}
  

Ruby

require('starkinfra')

brcodes = StarkInfra::DynamicBrcode.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["dynamic"]
)

brcodes.each do |brcode|
    puts brcode
end
  

Elixir

brcodes = StarkInfra.DynamicBrcode.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    tags: ["dynamic"]
)

for brcode <- brcodes do
    IO.inspect(brcode)
end
  

C#

using StarkInfra;

IEnumerable brcodes = DynamicBrcode.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    tags: new List { "dynamic" }
);

foreach (DynamicBrcode brcode in brcodes) {
    Console.WriteLine(brcode);
}
  

Go

package main

import (
    "fmt"
    DynamicBrcode "github.com/starkinfra/sdk-go/starkinfra/dynamicbrcode"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
}

brcodes := DynamicBrcode.Query(params, nil)

for brcode := range brcodes {
    fmt.Println(brcode)
}
  

Clojure

(def brcodes
    (starkinfra.dynamic-brcode/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :tags ["dynamic"]
    }))

(doseq [brcode brcodes]
    (println brcode))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/dynamic-brcode?limit=10&after=2022-01-01&before=2022-12-31' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

DynamicBrcode(
    id="5656565656565656",
    name="Jon Snow",
    city="São Paulo",
    external_id="my-dynamic-brcode-id-1",
    type="instant",
    tags=["dynamic"],
    uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url="https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    externalId: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

DynamicBrcode Object (
    [id] => 5656565656565656
    [name] => Jon Snow
    [city] => São Paulo
    [externalId] => my-dynamic-brcode-id-1
    [type] => instant
    [tags] => Array ( [0] => dynamic )
    [uuid] => b2c3d4e5-f6a7-8901-bcde-f12345678901
    [url] => https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

DynamicBrcode(
    id=5656565656565656,
    name=Jon Snow,
    city=São Paulo,
    externalId=my-dynamic-brcode-id-1,
    type=instant,
    tags=[dynamic],
    uuid=b2c3d4e5-f6a7-8901-bcde-f12345678901,
    url=https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    external_id: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.DynamicBrcode{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    external_id: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

DynamicBrcode(
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    externalId: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: [ "dynamic" ],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Name: "Jon Snow",
    City: "São Paulo",
    ExternalId: "my-dynamic-brcode-id-1",
    Type: "instant",
    Tags: ["dynamic"],
    Uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    Url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :name "Jon Snow"
 :city "São Paulo"
 :external-id "my-dynamic-brcode-id-1"
 :type "instant"
 :tags ["dynamic"]
 :uuid "b2c3d4e5-f6a7-8901-bcde-f12345678901"
 :url "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png"
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "brcodes": [
        {
            "id": "5656565656565656",
            "name": "Jon Snow",
            "city": "São Paulo",
            "externalId": "my-dynamic-brcode-id-1",
            "type": "instant",
            "tags": ["dynamic"],
            "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
            "url": "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Dynamic Brcode

Get a single dynamic Brcode by its UUID.

ENDPOINT
GET /v2/dynamic-brcode/:uuid
REQUEST

Python

import starkinfra

brcode = starkinfra.dynamicbrcode.get("b2c3d4e5-f6a7-8901-bcde-f12345678901")

print(brcode)
  

Javascript

const starkinfra = require('starkinfra')

const brcode = await starkinfra.dynamicBrcode.get("b2c3d4e5-f6a7-8901-bcde-f12345678901")

console.log(brcode)
  

PHP

Java

import com.starkinfra.*;

DynamicBrcode brcode = DynamicBrcode.get("b2c3d4e5-f6a7-8901-bcde-f12345678901");

System.out.println(brcode);
  

Ruby

require('starkinfra')

brcode = StarkInfra::DynamicBrcode.get("b2c3d4e5-f6a7-8901-bcde-f12345678901")

puts brcode
  

Elixir

brcode = StarkInfra.DynamicBrcode.get!("b2c3d4e5-f6a7-8901-bcde-f12345678901")

IO.inspect(brcode)
  

C#

using StarkInfra;

DynamicBrcode brcode = DynamicBrcode.Get("b2c3d4e5-f6a7-8901-bcde-f12345678901");

Console.WriteLine(brcode);
  

Go

package main

import (
    "fmt"
    DynamicBrcode "github.com/starkinfra/sdk-go/starkinfra/dynamicbrcode"
)

brcode, err := DynamicBrcode.Get("b2c3d4e5-f6a7-8901-bcde-f12345678901", nil)

fmt.Println(brcode)
  

Clojure

(def brcode
    (starkinfra.dynamic-brcode/get "b2c3d4e5-f6a7-8901-bcde-f12345678901"))

(println brcode)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/dynamic-brcode/b2c3d4e5-f6a7-8901-bcde-f12345678901' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

DynamicBrcode(
    id="5656565656565656",
    name="Jon Snow",
    city="São Paulo",
    external_id="my-dynamic-brcode-id-1",
    type="instant",
    tags=["dynamic", "instant"],
    uuid="b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url="https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    externalId: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic", "instant"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

DynamicBrcode Object (
    [id] => 5656565656565656
    [name] => Jon Snow
    [city] => São Paulo
    [externalId] => my-dynamic-brcode-id-1
    [type] => instant
    [tags] => Array ( [0] => dynamic [1] => instant )
    [uuid] => b2c3d4e5-f6a7-8901-bcde-f12345678901
    [url] => https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

DynamicBrcode(
    id=5656565656565656,
    name=Jon Snow,
    city=São Paulo,
    externalId=my-dynamic-brcode-id-1,
    type=instant,
    tags=[dynamic, instant],
    uuid=b2c3d4e5-f6a7-8901-bcde-f12345678901,
    url=https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    external_id: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic", "instant"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.DynamicBrcode{
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    external_id: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: ["dynamic", "instant"],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

DynamicBrcode(
    id: "5656565656565656",
    name: "Jon Snow",
    city: "São Paulo",
    externalId: "my-dynamic-brcode-id-1",
    type: "instant",
    tags: [ "dynamic", "instant" ],
    uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Name: "Jon Snow",
    City: "São Paulo",
    ExternalId: "my-dynamic-brcode-id-1",
    Type: "instant",
    Tags: ["dynamic", "instant"],
    Uuid: "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    Url: "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :name "Jon Snow"
 :city "São Paulo"
 :external-id "my-dynamic-brcode-id-1"
 :type "instant"
 :tags ["dynamic" "instant"]
 :uuid "b2c3d4e5-f6a7-8901-bcde-f12345678901"
 :url "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png"
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "brcode": {
        "id": "5656565656565656",
        "name": "Jon Snow",
        "city": "São Paulo",
        "externalId": "my-dynamic-brcode-id-1",
        "type": "instant",
        "tags": ["dynamic", "instant"],
        "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "url": "https://brcode.starkinfra.com/dynamic-qrcode/b2c3d4e5-f6a7-8901-bcde-f12345678901.png",
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Receiving a Dynamic Brcode Read Request

When a Dynamic Brcode is read, Stark Infra sends you a synchronous GET HTTP request to your registered dynamicBrcodeUrl in order to retrieve the remaining information required to complete the transaction, such as amount, discounts and fines.

The request includes the UUID of the Brcode as a path variable and the Dynamic Brcode type as a query parameter: instant, due or subscription. Subscription reads are covered in the Pix Pull Subscription guide.

receiving-a-dynamic-brcode-read-request

For security reasons, we sign the UUID and send you the Digital Signature. You can use our SDK to validate it before returning your response.

Answer with HTTP 200 and a JSON body whose format depends on the type query parameter.

Answering an instant read

Return the payment data for an immediate Pix.

Python

import starkinfra


invoice = get_invoice(uuid)  # you should implement this method to get the information of the brcode from its uuid

response = starkinfra.dynamicbrcode.response_instant(
    version=invoice.version,
    created=invoice.created,
    key_id=invoice.key_id,
    status=invoice.status,
    reconciliation_id=invoice.reconciliation_id,
    amount=invoice.amount,
    cashier_type=invoice.cashier_type,
    cashier_bank_code=invoice.cashier_bank_code,
    cash_amount=invoice.cash_amount
)

send_response(response)  # you should also implement this method to answer to the read request
  

Javascript

PHP

 $invoice->version,
    "created" => $invoice->created,
    "keyId" => $invoice->keyId,
    "status" => $invoice->status,
    "reconciliationId" => $invoice->reconciliationId,
    "amount" => $invoice->amount,
    "cashierType" => $invoice->cashierType,
    "cashierBankCode" => $invoice->cashierBankCode,
    "cashAmount" => $invoice->cashAmount
]);

sendResponse($response); # you should also implement this method to answer to the read request
  

Java

Ruby

Elixir

C#

Go

Clojure

Curl

RESPONSE

Python

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Javascript

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

PHP

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Java

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Ruby

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Elixir

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

C#

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Go

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Clojure

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Curl

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000
}
  

Answering an instant withdrawal (Saque) read

Include cashAmount, cashierBankCode and cashierType; the amount must equal the cashAmount.

Python

import starkinfra


invoice = get_invoice(uuid)  # you should implement this method to get the information of the brcode from its uuid

response = starkinfra.dynamicbrcode.response_instant(
    version=invoice.version,
    created=invoice.created,
    key_id=invoice.key_id,
    status=invoice.status,
    reconciliation_id=invoice.reconciliation_id,
    amount=invoice.amount,
    cashier_type=invoice.cashier_type,
    cashier_bank_code=invoice.cashier_bank_code,
    cash_amount=invoice.cash_amount
)

send_response(response)  # you should also implement this method to answer to the read request
  

Javascript

PHP

 $invoice->version,
    "created" => $invoice->created,
    "keyId" => $invoice->keyId,
    "status" => $invoice->status,
    "reconciliationId" => $invoice->reconciliationId,
    "amount" => $invoice->amount,
    "cashierType" => $invoice->cashierType,
    "cashierBankCode" => $invoice->cashierBankCode,
    "cashAmount" => $invoice->cashAmount
]);

sendResponse($response); # you should also implement this method to answer to the read request
  

Java

Ruby

Elixir

C#

Go

Clojure

Curl

RESPONSE

Python

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Javascript

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

PHP

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Java

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Ruby

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Elixir

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

C#

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Go

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Clojure

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Curl

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 100000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Answering an instant change (Troco) read

Include cashAmount, cashierBankCode and cashierType; the amount must be larger than the cashAmount.

Python

import starkinfra


invoice = get_invoice(uuid)  # you should implement this method to get the information of the brcode from its uuid

response = starkinfra.dynamicbrcode.response_instant(
    version=invoice.version,
    created=invoice.created,
    key_id=invoice.key_id,
    status=invoice.status,
    reconciliation_id=invoice.reconciliation_id,
    amount=invoice.amount,
    cashier_type=invoice.cashier_type,
    cashier_bank_code=invoice.cashier_bank_code,
    cash_amount=invoice.cash_amount
)

send_response(response)  # you should also implement this method to answer to the read request
  

Javascript

PHP

 $invoice->version,
    "created" => $invoice->created,
    "keyId" => $invoice->keyId,
    "status" => $invoice->status,
    "reconciliationId" => $invoice->reconciliationId,
    "amount" => $invoice->amount,
    "cashierType" => $invoice->cashierType,
    "cashierBankCode" => $invoice->cashierBankCode,
    "cashAmount" => $invoice->cashAmount
]);

sendResponse($response); # you should also implement this method to answer to the read request
  

Java

Ruby

Elixir

C#

Go

Clojure

Curl

RESPONSE

Python

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Javascript

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

PHP

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Java

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Ruby

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Elixir

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

C#

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Go

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Clojure

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Curl

{
    "version": 1,
    "created": "2022-07-29T18:00:21.264833+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "12345678901234567890123456",
    "amount": 100000,
    "cashAmount": 50000,
    "cashierBankCode": "20018183",
    "cashierType": "participant"
}
  

Answering a due read

Return the due-payment data (due date, fine, interest, discounts, etc.).

Python

import starkinfra


invoice = get_invoice(uuid)  # you should implement this method to get the information of the brcode from its uuid

response = starkinfra.dynamicbrcode.response_due(
    version=invoice.version,
    created=invoice.created,
    due=invoice.due,
    key_id=invoice.key_id,
    status=invoice.status,
    reconciliation_id=invoice.reconciliation_id,
    nominal_amount=invoice.nominal_amount,
    sender_name=invoice.sender_name,
    receiver_name=invoice.receiver_name,
    receiver_street_line=invoice.receiver_street_line,
    receiver_city=invoice.receiver_city,
    receiver_state_code=invoice.receiver_state_code,
    receiver_zip_code=invoice.receiver_zip_code,
    expiration=invoice.expiration,
    fee=invoice.fee,
    fine=invoice.fine,
    discounts=invoice.discounts
)

send_response(response)  # you should also implement this method to answer to the read request
  

Javascript

PHP

 $invoice->version,
    "created" => $invoice->created,
    "due" => $invoice->due,
    "keyId" => $invoice->keyId,
    "status" => $invoice->status,
    "reconciliationId" => $invoice->reconciliationId,
    "nominalAmount" => $invoice->amount,
    "senderName" => $invoice->senderName,
    "receiverName" => $invoice->receiverName,
    "receiverStreetLine" => $invoice->receiverStreetLine,
    "receiverCity" => $invoice->receiverCity,
    "receiverStateCode" => $invoice->receiverStateCode,
    "receiverZipCode" => $invoice->receiverZipCode,
    "expiration" => $invoice->expiration,
    "fee" => $invoice->fee,
    "fine" => $invoice->fine,
    "discounts" => $invoice->discounts
]);

sendResponse($response); # you should also implement this method to answer to the read request
  

Java

Ruby

Elixir

C#

Go

Clojure

Curl

RESPONSE

Python

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Javascript

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

PHP

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Java

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Ruby

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Elixir

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

C#

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Go

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Clojure

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Curl

{
    "version": 1,
    "created": "2022-03-10T10:30:00+00:00",
    "due": "2021-03-12T18:23:26+00:00",
    "keyId": "+5511989898989",
    "status": "created",
    "reconciliationId": "b77f52367ab944879f9566ee6eaf1781",
    "nominalAmount": 10000,
    "senderName": "Anthony Edward Stark",
    "receiverName": "Jamie Lannister",
    "receiverStreetLine": "Av. Paulista, 200",
    "receiverCity": "Sao Paulo",
    "receiverStateCode": "SP",
    "receiverZipCode": "01234-567",
    "expiration": 100000,
    "fine": 2.5,
    "interest": 3,
    "discounts": [
        {
            "percentage": 10.0,
            "due": "2021-03-12T18:23:26+00:00"
        }
    ]
}
  

Brcode Preview Overview

A Brcode Preview allows you to fetch the information encoded in a QR code before initiating a Pix payment or accepting a Pix Subscription.

Here we will show you how to retrieve Brcode previews.

The Brcode Preview Object

Attributes

id STRING

QR code content (the EMV string from the QR code).

payerId STRING

CPF or CNPJ of the payer.

endToEndId STRING

Unique end-to-end ID of the Pix transaction associated with this preview.

status STRING

Status of the QR code. Options: "active", "paid", "canceled", "unknown".

name STRING

Receiver name.

taxId STRING

CPF or CNPJ of the receiver.

bankCode STRING

Bank ISPB code of the receiver.

branchCode STRING

Branch code of the receiver's account.

accountNumber STRING

Account number of the receiver.

accountType STRING

Account type of the receiver.

amount INTEGER

Amount in cents to be paid.

nominalAmount INTEGER

Nominal amount in cents before discounts, fines and interest.

amountType STRING

Type of amount. Options: "fixed", "minimum".

reconciliationId STRING

Reconciliation ID from the QR code.

description STRING

Description of the payment.

cashierType STRING

Cashier type for Pix Saque/Troco. Options: "merchant", "other", "participant".

cashierBankCode STRING

Bank ISPB code of the cashier.

cashAmount INTEGER

Cash amount in cents for Pix Saque/Troco.

discountAmount INTEGER

Discount amount in cents.

fineAmount INTEGER

Fine amount in cents for late payment.

interestAmount INTEGER

Interest amount in cents for late payment.

reductionAmount INTEGER

Reduction (abatement) amount in cents.

due STRING

Due date and time for payment of the dynamic QR code. Example: "2020-04-23T23:00:00.000000+00:00".

expired STRING

Date and time after which the dynamic QR code is considered expired. Example: "2020-04-23T23:00:00.000000+00:00".

keyId STRING

Pix key of the receiver.

data LIST OF OBJECTS

List of additional data objects with key and value.

scheduled STRING

Date and time the payment is scheduled for. Example: "2020-04-23T23:00:00.000000+00:00".

jws STRING

JWS (JSON Web Signature) of the dynamic QR code. Returned only when "jws" is passed in the expand query parameter.

subscription.bacenId STRING

Central Bank identifier of the recurring authorization. The subscription fields are returned only when the Brcode initiates a Pix Automático recurring authorization.

subscription.amount INTEGER

Fixed amount in cents pulled on each cycle. 0 when the amount is variable.

subscription.amountMinLimit INTEGER

Minimum amount in cents allowed per pull when the amount is variable.

subscription.interval STRING

Billing interval. Options: "week", "month", "quarter", "semester", "year".

subscription.description STRING

Description presented to the payer.

subscription.referenceCode STRING

Free reference code for the subscription.

subscription.installmentStart STRING

Date when the recurring authorization starts.

subscription.installmentEnd STRING

Date when the recurring authorization ends.

subscription.pullRetryLimit INTEGER

Maximum number of pull retries allowed per cycle.

subscription.receiverName STRING

Name of the receiver (creditor).

subscription.receiverTaxId STRING

CPF or CNPJ of the receiver.

subscription.receiverBankCode STRING

Bank ISPB code of the receiver.

subscription.senderFinalName STRING

Name of the final payer, when applicable.

subscription.senderFinalTaxId STRING

CPF or CNPJ of the final payer, when applicable.

subscription.type STRING

Subscription type. Options: "qrcode", "qrcodeAndPayment", "paymentAndOrQrcode".

subscription.status STRING

Current status. Options: "created", "approved", "denied", "expired", "canceled".

subscription.created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

subscription.updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating Brcode Previews

Fetch and preview the details of one or more Pix QR codes before payment.

ENDPOINT
POST /v2/brcode-preview
REQUEST

Python

import starkinfra

previews = starkinfra.brcodepreview.create([
    starkinfra.BrcodePreview(
        id="00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        payer_id="012.345.678-90",
        end_to_end_id="E20018183202201201450u34sDGd19lz",
        scheduled="2022-01-31"
    )
])

for preview in previews:
    print(preview)
  

Javascript

const starkinfra = require('starkinfra')

const previews = await starkinfra.brcodePreview.create([
    {
        id: "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        payerId: "012.345.678-90"
    }
])

for (const preview of previews) {
    console.log(preview)
}
  

PHP

 "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        "payerId" => "012.345.678-90"
    ])
]);

foreach ($previews as $preview) {
    print_r($preview);
}
  

Java

import com.starkinfra.*;
import java.util.Arrays;

List previews = BrcodePreview.create(
    Arrays.asList(
        new BrcodePreview.Builder()
            .id("00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D")
            .payerId("012.345.678-90")
            .build()
    )
);

for (BrcodePreview preview : previews) {
    System.out.println(preview);
}
  

Ruby

require('starkinfra')

previews = StarkInfra::BrcodePreview.create([
    StarkInfra::BrcodePreview.new(
        id: "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        payer_id: "012.345.678-90"
    )
])

previews.each do |preview|
    puts preview
end
  

Elixir

previews = StarkInfra.BrcodePreview.create!([
    %StarkInfra.BrcodePreview{
        id: "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        payer_id: "012.345.678-90"
    }
])

for preview <- previews do
    IO.inspect(preview)
end
  

C#

using StarkInfra;
using System.Collections.Generic;

List previews = BrcodePreview.Create(
    new List {
        new BrcodePreview(
            id: "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
            payerId: "012.345.678-90"
        )
    }
);

foreach (BrcodePreview preview in previews) {
    Console.WriteLine(preview);
}
  

Go

package main

import (
    "fmt"
    BrcodePreview "github.com/starkinfra/sdk-go/starkinfra/brcodepreview"
)

previews, err := BrcodePreview.Create(
    []BrcodePreview.BrcodePreview{
        {
            Id:      "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
            PayerId: "012.345.678-90",
        },
    }, nil)

for _, preview := range previews {
    fmt.Println(preview)
}
  

Clojure

(def previews
    (starkinfra.brcode-preview/create
        [{:id "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D"
          :payer-id "012.345.678-90"}]))

(doseq [preview previews]
    (println preview))
  

Curl

curl --location --request POST '{{baseUrl}}/v2/brcode-preview' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "previews": [
        {
            "id": "00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
            "payerId": "012.345.678-90"
        }
    ]
}'
  
RESPONSE

Python

[
    BrcodePreview(
        id="00020126580014br.gov.bcb.pix0136a629532e-7693-4846-852d-1bbff817b5a8520400005303986540510.005802BR5905Stark6009Sao Paulo62070503***63041D3D",
        payer_id="012.345.678-90",
        end_to_end_id="E20018183202201201450u34sDGd19lz",
        status="active",
        name="Jon Snow",
        tax_id="012.345.678-90",
        bank_code="20018183",
        branch_code="0001",
        account_number="10000-0",
        account_type="checking",
        amount=1000,
        nominal_amount=1000,
        amount_type="fixed",
        reconciliation_id="my-reconciliation-id",
        description="Payment for services",
        cashier_type="merchant",
        cashier_bank_code="20018183",
        cash_amount=0,
        discount_amount=0,
        fine_amount=0,
        interest_amount=0,
        reduction_amount=0,
        due="2022-01-31T00:00:00+00:00",
        expired="2022-02-01T00:00:00+00:00",
        key_id="+5511989898989",
        data=[
            {"key": "additional-info", "value": "order #12345"}
        ],
        scheduled="2022-01-31T00:00:00+00:00",
        jws="eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...",
        subscription=Subscription(
            bacen_id="RR20220101200181830000000000001",
            amount=1000,
            amount_min_limit=0,
            interval="month",
            description="Subscription for services",
            reference_code="contract-12345",
            installment_start="2022-01-01T00:00:00+00:00",
            installment_end="2023-01-01T00:00:00+00:00",
            pull_retry_limit=3,
            receiver_name="Stark Bank S.A.",
            receiver_tax_id="20.018.183/0001-80",
            receiver_bank_code="20018183",
            sender_final_name="Jon Snow",
            sender_final_tax_id="012.345.678-90",
            type="qrcodeAndPayment",
            status="approved",
            created="2022-01-01T00:00:00+00:00",
            updated="2022-01-01T00:00:00+00:00"
        )
    )
]
  

Javascript

[
    {
        status: "active",
        name: "Jon Snow",
        taxId: "012.345.678-90",
        bankCode: "20018183",
        branchCode: "0001",
        accountNumber: "10000-0",
        accountType: "checking",
        allowChange: false,
        amount: 1000,
        amountType: "fixed",
        reconciliationId: "my-reconciliation-id",
        description: "Payment for services",
        keyId: "+5511989898989",
        subscription: {
            bacenId: "RR20220101200181830000000000001",
            amount: 1000,
            amountMinLimit: 0,
            interval: "month",
            description: "Subscription for services",
            referenceCode: "contract-12345",
            installmentStart: "2022-01-01T00:00:00+00:00",
            installmentEnd: "2023-01-01T00:00:00+00:00",
            pullRetryLimit: 3,
            receiverName: "Stark Bank S.A.",
            receiverTaxId: "20.018.183/0001-80",
            receiverBankCode: "20018183",
            senderFinalName: "Jon Snow",
            senderFinalTaxId: "012.345.678-90",
            type: "qrcodeAndPayment",
            status: "approved",
            created: "2022-01-01T00:00:00+00:00",
            updated: "2022-01-01T00:00:00+00:00"
        }
    }
]
  

PHP

[
    BrcodePreview Object (
        [status] => active
        [name] => Jon Snow
        [taxId] => 012.345.678-90
        [bankCode] => 20018183
        [branchCode] => 0001
        [accountNumber] => 10000-0
        [accountType] => checking
        [allowChange] =>
        [amount] => 1000
        [amountType] => fixed
        [reconciliationId] => my-reconciliation-id
        [description] => Payment for services
        [keyId] => +5511989898989
        [subscription] => Subscription Object (
            [bacenId] => RR20220101200181830000000000001
            [amount] => 1000
            [amountMinLimit] => 0
            [interval] => month
            [description] => Subscription for services
            [referenceCode] => contract-12345
            [installmentStart] => 2022-01-01T00:00:00+00:00
            [installmentEnd] => 2023-01-01T00:00:00+00:00
            [pullRetryLimit] => 3
            [receiverName] => Stark Bank S.A.
            [receiverTaxId] => 20.018.183/0001-80
            [receiverBankCode] => 20018183
            [senderFinalName] => Jon Snow
            [senderFinalTaxId] => 012.345.678-90
            [type] => qrcodeAndPayment
            [status] => approved
            [created] => 2022-01-01T00:00:00+00:00
            [updated] => 2022-01-01T00:00:00+00:00
        )
    )
]
  

Java

[
    BrcodePreview(
        status=active,
        name=Jon Snow,
        taxId=012.345.678-90,
        bankCode=20018183,
        branchCode=0001,
        accountNumber=10000-0,
        accountType=checking,
        allowChange=false,
        amount=1000,
        amountType=fixed,
        reconciliationId=my-reconciliation-id,
        description=Payment for services,
        keyId=+5511989898989,
        subscription=Subscription(
            bacenId=RR20220101200181830000000000001,
            amount=1000,
            amountMinLimit=0,
            interval=month,
            description=Subscription for services,
            referenceCode=contract-12345,
            installmentStart=2022-01-01T00:00:00+00:00,
            installmentEnd=2023-01-01T00:00:00+00:00,
            pullRetryLimit=3,
            receiverName=Stark Bank S.A.,
            receiverTaxId=20.018.183/0001-80,
            receiverBankCode=20018183,
            senderFinalName=Jon Snow,
            senderFinalTaxId=012.345.678-90,
            type=qrcodeAndPayment,
            status=approved,
            created=2022-01-01T00:00:00+00:00,
            updated=2022-01-01T00:00:00+00:00
        )
    )
]
  

Ruby

[
    {
        status: "active",
        name: "Jon Snow",
        tax_id: "012.345.678-90",
        bank_code: "20018183",
        branch_code: "0001",
        account_number: "10000-0",
        account_type: "checking",
        allow_change: false,
        amount: 1000,
        amount_type: "fixed",
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        key_id: "+5511989898989",
        subscription: {
            bacen_id: "RR20220101200181830000000000001",
            amount: 1000,
            amount_min_limit: 0,
            interval: "month",
            description: "Subscription for services",
            reference_code: "contract-12345",
            installment_start: "2022-01-01T00:00:00+00:00",
            installment_end: "2023-01-01T00:00:00+00:00",
            pull_retry_limit: 3,
            receiver_name: "Stark Bank S.A.",
            receiver_tax_id: "20.018.183/0001-80",
            receiver_bank_code: "20018183",
            sender_final_name: "Jon Snow",
            sender_final_tax_id: "012.345.678-90",
            type: "qrcodeAndPayment",
            status: "approved",
            created: "2022-01-01T00:00:00+00:00",
            updated: "2022-01-01T00:00:00+00:00"
        }
    }
]
  

Elixir

[
    %StarkInfra.BrcodePreview{
        status: "active",
        name: "Jon Snow",
        tax_id: "012.345.678-90",
        bank_code: "20018183",
        branch_code: "0001",
        account_number: "10000-0",
        account_type: "checking",
        allow_change: false,
        amount: 1000,
        amount_type: "fixed",
        reconciliation_id: "my-reconciliation-id",
        description: "Payment for services",
        key_id: "+5511989898989",
        subscription: %StarkInfra.Subscription{
            bacen_id: "RR20220101200181830000000000001",
            amount: 1000,
            amount_min_limit: 0,
            interval: "month",
            description: "Subscription for services",
            reference_code: "contract-12345",
            installment_start: "2022-01-01T00:00:00+00:00",
            installment_end: "2023-01-01T00:00:00+00:00",
            pull_retry_limit: 3,
            receiver_name: "Stark Bank S.A.",
            receiver_tax_id: "20.018.183/0001-80",
            receiver_bank_code: "20018183",
            sender_final_name: "Jon Snow",
            sender_final_tax_id: "012.345.678-90",
            type: "qrcodeAndPayment",
            status: "approved",
            created: "2022-01-01T00:00:00+00:00",
            updated: "2022-01-01T00:00:00+00:00"
        }
    }
]
  

C#

[
    BrcodePreview(
        status: "active",
        name: "Jon Snow",
        taxId: "012.345.678-90",
        bankCode: "20018183",
        branchCode: "0001",
        accountNumber: "10000-0",
        accountType: "checking",
        allowChange: false,
        amount: 1000,
        amountType: "fixed",
        reconciliationId: "my-reconciliation-id",
        description: "Payment for services",
        keyId: "+5511989898989",
        subscription: new Subscription(
            bacenId: "RR20220101200181830000000000001",
            amount: 1000,
            amountMinLimit: 0,
            interval: "month",
            description: "Subscription for services",
            referenceCode: "contract-12345",
            installmentStart: "2022-01-01T00:00:00+00:00",
            installmentEnd: "2023-01-01T00:00:00+00:00",
            pullRetryLimit: 3,
            receiverName: "Stark Bank S.A.",
            receiverTaxId: "20.018.183/0001-80",
            receiverBankCode: "20018183",
            senderFinalName: "Jon Snow",
            senderFinalTaxId: "012.345.678-90",
            type: "qrcodeAndPayment",
            status: "approved",
            created: "2022-01-01T00:00:00+00:00",
            updated: "2022-01-01T00:00:00+00:00"
        )
    )
]
  

Go

[
    {
        Status: "active",
        Name: "Jon Snow",
        TaxId: "012.345.678-90",
        BankCode: "20018183",
        BranchCode: "0001",
        AccountNumber: "10000-0",
        AccountType: "checking",
        AllowChange: false,
        Amount: 1000,
        AmountType: "fixed",
        ReconciliationId: "my-reconciliation-id",
        Description: "Payment for services",
        KeyId: "+5511989898989",
        Subscription: Subscription{
            BacenId: "RR20220101200181830000000000001",
            Amount: 1000,
            AmountMinLimit: 0,
            Interval: "month",
            Description: "Subscription for services",
            ReferenceCode: "contract-12345",
            InstallmentStart: "2022-01-01T00:00:00+00:00",
            InstallmentEnd: "2023-01-01T00:00:00+00:00",
            PullRetryLimit: 3,
            ReceiverName: "Stark Bank S.A.",
            ReceiverTaxId: "20.018.183/0001-80",
            ReceiverBankCode: "20018183",
            SenderFinalName: "Jon Snow",
            SenderFinalTaxId: "012.345.678-90",
            Type: "qrcodeAndPayment",
            Status: "approved",
            Created: "2022-01-01T00:00:00+00:00",
            Updated: "2022-01-01T00:00:00+00:00"
        }
    }
]
  

Clojure

[
    {:status "active"
     :name "Jon Snow"
     :tax-id "012.345.678-90"
     :bank-code "20018183"
     :branch-code "0001"
     :account-number "10000-0"
     :account-type "checking"
     :allow-change false
     :amount 1000
     :amount-type "fixed"
     :reconciliation-id "my-reconciliation-id"
     :description "Payment for services"
     :key-id "+5511989898989"
     :subscription {:bacen-id "RR20220101200181830000000000001"
                    :amount 1000
                    :amount-min-limit 0
                    :interval "month"
                    :description "Subscription for services"
                    :reference-code "contract-12345"
                    :installment-start "2022-01-01T00:00:00+00:00"
                    :installment-end "2023-01-01T00:00:00+00:00"
                    :pull-retry-limit 3
                    :receiver-name "Stark Bank S.A."
                    :receiver-tax-id "20.018.183/0001-80"
                    :receiver-bank-code "20018183"
                    :sender-final-name "Jon Snow"
                    :sender-final-tax-id "012.345.678-90"
                    :type "qrcodeAndPayment"
                    :status "approved"
                    :created "2022-01-01T00:00:00+00:00"
                    :updated "2022-01-01T00:00:00+00:00"}}
]
  

Curl

{
    "previews": [
        {
            "status": "active",
            "name": "Jon Snow",
            "taxId": "012.345.678-90",
            "bankCode": "20018183",
            "branchCode": "0001",
            "accountNumber": "10000-0",
            "accountType": "checking",
            "allowChange": false,
            "amount": 1000,
            "amountType": "fixed",
            "reconciliationId": "my-reconciliation-id",
            "description": "Payment for services",
            "keyId": "+5511989898989",
            "subscription": {
                "bacenId": "RR20220101200181830000000000001",
                "amount": 1000,
                "amountMinLimit": 0,
                "interval": "month",
                "description": "Subscription for services",
                "referenceCode": "contract-12345",
                "installmentStart": "2022-01-01T00:00:00+00:00",
                "installmentEnd": "2023-01-01T00:00:00+00:00",
                "pullRetryLimit": 3,
                "receiverName": "Stark Bank S.A.",
                "receiverTaxId": "20.018.183/0001-80",
                "receiverBankCode": "20018183",
                "senderFinalName": "Jon Snow",
                "senderFinalTaxId": "012.345.678-90",
                "type": "qrcodeAndPayment",
                "status": "approved",
                "created": "2022-01-01T00:00:00+00:00",
                "updated": "2022-01-01T00:00:00+00:00"
            }
        }
    ]
}
  

Pix Key Overview

A Pix Key is an alias that can be used to identify a bank account in the Brazilian Pix system (DICT).

Here we will show you how to create and manage them.

The Pix Key Status

After creation, you can use asynchronous Webhooks to monitor status changes. A Pix Key follows the life cycle below:

pix-key-status

StatusDescription
CreatedThe Pix Key creation request was registered at Stark Infra.
RegisteredThe Pix Key was successfully registered in DICT and is ready to use.
CanceledThe Pix Key was removed from DICT.
FailedThe Pix Key registration failed.

The Pix Key Logs

Every time we change a Pix Key, we create a Log. Logs are useful for understanding the life cycle of each Pix Key. Whenever a new Log is created, we fire a Webhook to your registered URL. Check the diagram below to understand the possible Pix Key Logs:

pix-key-log

Log typeStatusDescription
CreatedCreatedThe Pix Key creation request was registered at Stark Infra.
RegisteredRegisteredThe Pix Key was successfully registered in DICT.
CanceledCanceledThe Pix Key was removed from DICT.
FailedFailedThe Pix Key registration failed.

The Pix Key Object

Attributes

id STRING

Unique id for the Pix key (the key value itself, e.g., CPF, email, phone, EVP).

type STRING

Type of the Pix key. Options: "cpf", "cnpj", "phone", "email", "evp".

accountCreated STRING

Creation date of the linked bank account.

accountType STRING

Type of the linked bank account. Options: "checking", "savings", "salary", "payment", "other".

bankCode STRING

Bank ISPB code of the linked account.

branchCode STRING

Branch code of the linked bank account.

accountNumber STRING

Account number of the linked bank account.

holderName STRING

Name of the account holder.

holderTaxId STRING

CPF or CNPJ of the account holder.

status STRING

Current status. Options: "created", "registered", "canceled", "failed".

owned STRING

Datetime when the key was registered in DICT.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating a Pix Key

Register a new Pix key in DICT for your workspace.

ENDPOINT
POST /v2/pix-key
REQUEST

Python

import starkinfra

key = starkinfra.pixkey.create(
    starkinfra.PixKey(
        account_created="2022-01-01",
        account_number="10000-0",
        account_type="checking",
        branch_code="0001",
        name="Jon Snow",
        tax_id="012.345.678-90",
        id="jon.snow@starkinfra.com",
        tags=["pix", "key"]
    )
)

print(key)
  

Javascript

const starkinfra = require('starkinfra')

const key = await starkinfra.pixKey.create({
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    tags: ["pix", "key"]
})

console.log(key)
  

PHP

 "2022-01-01",
        "accountNumber" => "10000-0",
        "accountType" => "checking",
        "branchCode" => "0001",
        "holderName" => "Jon Snow",
        "holderTaxId" => "012.345.678-90",
        "tags" => ["pix", "key"]
    ])
);

print_r($key);
  

Java

import com.starkinfra.*;
import java.util.Arrays;

PixKey key = PixKey.create(
    new PixKey.Builder()
        .accountCreated("2022-01-01")
        .accountNumber("10000-0")
        .accountType("checking")
        .branchCode("0001")
        .holderName("Jon Snow")
        .holderTaxId("012.345.678-90")
        .tags(Arrays.asList("pix", "key"))
        .build()
);

System.out.println(key);
  

Ruby

require('starkinfra')

key = StarkInfra::PixKey.create(
    StarkInfra::PixKey.new(
        account_created: "2022-01-01",
        account_number: "10000-0",
        account_type: "checking",
        branch_code: "0001",
        holder_name: "Jon Snow",
        holder_tax_id: "012.345.678-90",
        tags: ["pix", "key"]
    )
)

puts key
  

Elixir

key = StarkInfra.PixKey.create!(
    %StarkInfra.PixKey{
        account_created: "2022-01-01",
        account_number: "10000-0",
        account_type: "checking",
        branch_code: "0001",
        holder_name: "Jon Snow",
        holder_tax_id: "012.345.678-90",
        tags: ["pix", "key"]
    }
)

IO.inspect(key)
  

C#

using StarkInfra;
using System.Collections.Generic;

PixKey key = PixKey.Create(
    new PixKey(
        accountCreated: "2022-01-01",
        accountNumber: "10000-0",
        accountType: "checking",
        branchCode: "0001",
        holderName: "Jon Snow",
        holderTaxId: "012.345.678-90",
        tags: new List { "pix", "key" }
    )
);

Console.WriteLine(key);
  

Go

package main

import (
    "fmt"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
)

key, err := PixKey.Create(
    PixKey.PixKey{
        AccountCreated: "2022-01-01",
        AccountNumber:  "10000-0",
        AccountType:    "checking",
        BranchCode:     "0001",
        HolderName:     "Jon Snow",
        HolderTaxId:    "012.345.678-90",
        Tags:           []string{"pix", "key"},
    }, nil)

fmt.Println(key)
  

Clojure

(def key
    (starkinfra.pix-key/create
        {:account-created "2022-01-01"
         :account-number "10000-0"
         :account-type "checking"
         :branch-code "0001"
         :holder-name "Jon Snow"
         :holder-tax-id "012.345.678-90"
         :tags ["pix" "key"]}))

(println key)
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-key' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "key": {
        "accountCreated": "2022-01-01",
        "accountNumber": "10000-0",
        "accountType": "checking",
        "branchCode": "0001",
        "holderName": "Jon Snow",
        "holderTaxId": "012.345.678-90",
        "tags": ["pix", "key"]
    }
}'
  
RESPONSE

Python

PixKey(
    id="jon.snow@starkinfra.com",
    type="email",
    account_created="2022-01-01",
    account_type="checking",
    bank_code="20018183",
    branch_code="0001",
    account_number="10000-0",
    name="Jon Snow",
    tax_id="012.345.678-90",
    status="created",
    owned="2022-01-01T00:00:00+00:00",
    tags=["pix", "key"],
    created="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    status: "created",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixKey Object (
    [id] => jon.snow@starkinfra.com
    [type] => email
    [accountCreated] => 2022-01-01
    [accountNumber] => 10000-0
    [accountType] => checking
    [branchCode] => 0001
    [holderName] => Jon Snow
    [holderTaxId] => 012.345.678-90
    [status] => created
    [tags] => Array ( [0] => pix [1] => key )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixKey(
    id=jon.snow@starkinfra.com,
    type=email,
    accountCreated=2022-01-01,
    accountNumber=10000-0,
    accountType=checking,
    branchCode=0001,
    holderName=Jon Snow,
    holderTaxId=012.345.678-90,
    status=created,
    tags=[pix, key],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_created: "2022-01-01",
    account_number: "10000-0",
    account_type: "checking",
    branch_code: "0001",
    holder_name: "Jon Snow",
    holder_tax_id: "012.345.678-90",
    status: "created",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixKey{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_created: "2022-01-01",
    account_number: "10000-0",
    account_type: "checking",
    branch_code: "0001",
    holder_name: "Jon Snow",
    holder_tax_id: "012.345.678-90",
    status: "created",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixKey(
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    status: "created",
    tags: [ "pix", "key" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "jon.snow@starkinfra.com",
    Type: "email",
    AccountCreated: "2022-01-01",
    AccountNumber: "10000-0",
    AccountType: "checking",
    BranchCode: "0001",
    HolderName: "Jon Snow",
    HolderTaxId: "012.345.678-90",
    Status: "created",
    Tags: ["pix", "key"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "jon.snow@starkinfra.com"
 :type "email"
 :account-created "2022-01-01"
 :account-number "10000-0"
 :account-type "checking"
 :branch-code "0001"
 :holder-name "Jon Snow"
 :holder-tax-id "012.345.678-90"
 :status "created"
 :tags ["pix" "key"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "key": {
        "id": "jon.snow@starkinfra.com",
        "type": "email",
        "accountCreated": "2022-01-01",
        "accountNumber": "10000-0",
        "accountType": "checking",
        "branchCode": "0001",
        "holderName": "Jon Snow",
        "holderTaxId": "012.345.678-90",
        "status": "created",
        "tags": ["pix", "key"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Listing Pix Keys

List and filter all Pix keys registered in your workspace.

ENDPOINT
GET /v2/pix-key
REQUEST

Python

import starkinfra

keys = starkinfra.pixkey.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    status="registered",
    tags=["pix", "key"],
    ids=["jon.snow@starkinfra.com"],
    type="email",
    tax_id="012.345.678-90"
)

for key in keys:
    print(key)
  

Javascript

const starkinfra = require('starkinfra')

const keys = await starkinfra.pixKey.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "registered",
    type: "email"
})

for await (const key of keys) {
    console.log(key)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "status" => "registered",
    "type" => "email"
]);

foreach ($keys as $key) {
    print_r($key);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");
params.put("status", "registered");
params.put("type", "email");

Generator keys = PixKey.query(params);

for (PixKey key : keys) {
    System.out.println(key);
}
  

Ruby

require('starkinfra')

keys = StarkInfra::PixKey.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "registered",
    type: "email"
)

keys.each do |key|
    puts key
end
  

Elixir

keys = StarkInfra.PixKey.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "registered",
    type: "email"
)

for key <- keys do
    IO.inspect(key)
end
  

C#

using StarkInfra;

IEnumerable keys = PixKey.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    status: "registered",
    type: "email"
);

foreach (PixKey key in keys) {
    Console.WriteLine(key);
}
  

Go

package main

import (
    "fmt"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
    "status": "registered",
    "type":   "email",
}

keys := PixKey.Query(params, nil)

for key := range keys {
    fmt.Println(key)
}
  

Clojure

(def keys
    (starkinfra.pix-key/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :status "registered"
        :type "email"
    }))

(doseq [key keys]
    (println key))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-key?limit=10&after=2022-01-01&before=2022-12-31&status=registered&type=email' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixKey(
    id="jon.snow@starkinfra.com",
    type="email",
    account_created="2022-01-01",
    account_type="checking",
    bank_code="20018183",
    branch_code="0001",
    account_number="10000-0",
    name="Jon Snow",
    tax_id="012.345.678-90",
    status="registered",
    owned="2022-01-01T00:00:00+00:00",
    tags=["pix", "key"],
    created="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixKey Object (
    [id] => jon.snow@starkinfra.com
    [type] => email
    [status] => registered
    [tags] => Array ( [0] => pix [1] => key )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixKey(
    id=jon.snow@starkinfra.com,
    type=email,
    status=registered,
    tags=[pix, key],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixKey{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixKey(
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "registered",
    tags: [ "pix", "key" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "jon.snow@starkinfra.com",
    Type: "email",
    Status: "registered",
    Tags: ["pix", "key"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "jon.snow@starkinfra.com"
 :type "email"
 :status "registered"
 :tags ["pix" "key"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "cursor": null,
    "keys": [
        {
            "id": "jon.snow@starkinfra.com",
            "type": "email",
            "status": "registered",
            "tags": ["pix", "key"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:00:00+00:00"
        }
    ]
}
  

Getting a Pix Key

Get a single Pix key by its id.

ENDPOINT
GET /v2/pix-key/:id
REQUEST

Python

import starkinfra

key = starkinfra.pixkey.get(
    "jon.snow@starkinfra.com",
    payer_id="012.345.678-90",
    end_to_end_id="E00002649202201172211u34srod19le",
    expand=["statistics", "owner_statistics"]
)

print(key)
  

Javascript

const starkinfra = require('starkinfra')

const key = await starkinfra.pixKey.get("jon.snow@starkinfra.com")

console.log(key)
  

PHP

Java

import com.starkinfra.*;

PixKey key = PixKey.get("jon.snow@starkinfra.com");

System.out.println(key);
  

Ruby

require('starkinfra')

key = StarkInfra::PixKey.get("jon.snow@starkinfra.com")

puts key
  

Elixir

key = StarkInfra.PixKey.get!("jon.snow@starkinfra.com")

IO.inspect(key)
  

C#

using StarkInfra;

PixKey key = PixKey.Get("jon.snow@starkinfra.com");

Console.WriteLine(key);
  

Go

package main

import (
    "fmt"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
)

key, err := PixKey.Get("jon.snow@starkinfra.com", nil)

fmt.Println(key)
  

Clojure

(def key
    (starkinfra.pix-key/get "jon.snow@starkinfra.com"))

(println key)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-key/jon.snow%40starkinfra.com' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixKey(
    id="jon.snow@starkinfra.com",
    type="email",
    account_created="2022-01-01",
    account_type="checking",
    bank_code="20018183",
    branch_code="0001",
    account_number="10000-0",
    name="Jon Snow",
    tax_id="012.345.678-90",
    status="registered",
    owned="2022-01-01T00:00:00+00:00",
    tags=["pix", "key"],
    statistics=[Statistic(after="2022-01-01", type="reconciliations", value=1)],
    owner_statistics=[Statistic(after="2022-01-01", type="settlements", value=3)],
    created="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixKey Object (
    [id] => jon.snow@starkinfra.com
    [type] => email
    [accountCreated] => 2022-01-01
    [accountNumber] => 10000-0
    [accountType] => checking
    [branchCode] => 0001
    [holderName] => Jon Snow
    [holderTaxId] => 012.345.678-90
    [status] => registered
    [tags] => Array ( [0] => pix [1] => key )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixKey(
    id=jon.snow@starkinfra.com,
    type=email,
    accountCreated=2022-01-01,
    accountNumber=10000-0,
    accountType=checking,
    branchCode=0001,
    holderName=Jon Snow,
    holderTaxId=012.345.678-90,
    status=registered,
    tags=[pix, key],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_created: "2022-01-01",
    account_number: "10000-0",
    account_type: "checking",
    branch_code: "0001",
    holder_name: "Jon Snow",
    holder_tax_id: "012.345.678-90",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixKey{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_created: "2022-01-01",
    account_number: "10000-0",
    account_type: "checking",
    branch_code: "0001",
    holder_name: "Jon Snow",
    holder_tax_id: "012.345.678-90",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixKey(
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    status: "registered",
    tags: [ "pix", "key" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "jon.snow@starkinfra.com",
    Type: "email",
    AccountCreated: "2022-01-01",
    AccountNumber: "10000-0",
    AccountType: "checking",
    BranchCode: "0001",
    HolderName: "Jon Snow",
    HolderTaxId: "012.345.678-90",
    Status: "registered",
    Tags: ["pix", "key"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "jon.snow@starkinfra.com"
 :type "email"
 :account-created "2022-01-01"
 :account-number "10000-0"
 :account-type "checking"
 :branch-code "0001"
 :holder-name "Jon Snow"
 :holder-tax-id "012.345.678-90"
 :status "registered"
 :tags ["pix" "key"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "key": {
        "id": "jon.snow@starkinfra.com",
        "type": "email",
        "accountCreated": "2022-01-01",
        "accountNumber": "10000-0",
        "accountType": "checking",
        "branchCode": "0001",
        "holderName": "Jon Snow",
        "holderTaxId": "012.345.678-90",
        "status": "registered",
        "tags": ["pix", "key"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Updating a Pix Key

Update the account information linked to a Pix key.

ENDPOINT
PATCH /v2/pix-key/:id
REQUEST

Python

import starkinfra

key = starkinfra.pixkey.update(
    "jon.snow@starkinfra.com",
    reason="branchTransfer",
    account_created="2022-01-01",
    account_number="20000-1",
    account_type="savings",
    branch_code="0002",
    name="Jon Snow"
)

print(key)
  

Javascript

const starkinfra = require('starkinfra')

const key = await starkinfra.pixKey.update(
    "jon.snow@starkinfra.com",
    {
        reason: "userRequested",
        accountNumber: "20000-1",
        accountType: "savings"
    }
)

console.log(key)
  

PHP

 "userRequested",
    "accountNumber" => "20000-1",
    "accountType" => "savings"
]);

print_r($key);
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap data = new HashMap<>();
data.put("reason", "userRequested");
data.put("accountNumber", "20000-1");
data.put("accountType", "savings");

PixKey key = PixKey.update("jon.snow@starkinfra.com", data);

System.out.println(key);
  

Ruby

require('starkinfra')

key = StarkInfra::PixKey.update(
    "jon.snow@starkinfra.com",
    reason: "userRequested",
    account_number: "20000-1",
    account_type: "savings"
)

puts key
  

Elixir

key = StarkInfra.PixKey.update!(
    "jon.snow@starkinfra.com",
    reason: "userRequested",
    account_number: "20000-1",
    account_type: "savings"
)

IO.inspect(key)
  

C#

using StarkInfra;
using System.Collections.Generic;

Dictionary data = new Dictionary {
    { "reason", "userRequested" },
    { "accountNumber", "20000-1" },
    { "accountType", "savings" }
};

PixKey key = PixKey.Update("jon.snow@starkinfra.com", data);

Console.WriteLine(key);
  

Go

package main

import (
    "fmt"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
)

var data = map[string]interface{}{
    "reason":        "userRequested",
    "accountNumber": "20000-1",
    "accountType":   "savings",
}

key, err := PixKey.Update("jon.snow@starkinfra.com", data, nil)

fmt.Println(key)
  

Clojure

(def key
    (starkinfra.pix-key/update
        "jon.snow@starkinfra.com"
        {:reason "userRequested"
         :account-number "20000-1"
         :account-type "savings"}))

(println key)
  

Curl

curl --location --request PATCH '{{baseUrl}}/v2/pix-key/jon.snow%40starkinfra.com' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "reason": "userRequested",
    "accountNumber": "20000-1",
    "accountType": "savings"
}'
  
RESPONSE

Python

PixKey(
    id="jon.snow@starkinfra.com",
    type="email",
    account_created="2022-01-01",
    account_type="savings",
    bank_code="20018183",
    branch_code="0002",
    account_number="20000-1",
    name="Jon Snow",
    tax_id="012.345.678-90",
    status="registered",
    owned="2022-01-01T00:00:00+00:00",
    tags=["pix", "key"],
    created="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountNumber: "20000-1",
    accountType: "savings",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-06-01T00:00:00+00:00"
}
  

PHP

PixKey Object (
    [id] => jon.snow@starkinfra.com
    [type] => email
    [accountNumber] => 20000-1
    [accountType] => savings
    [status] => registered
    [tags] => Array ( [0] => pix [1] => key )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-06-01T00:00:00+00:00
)
  

Java

PixKey(
    id=jon.snow@starkinfra.com,
    type=email,
    accountNumber=20000-1,
    accountType=savings,
    status=registered,
    tags=[pix, key],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-06-01T00:00:00+00:00
)
  

Ruby

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_number: "20000-1",
    account_type: "savings",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-06-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixKey{
    id: "jon.snow@starkinfra.com",
    type: "email",
    account_number: "20000-1",
    account_type: "savings",
    status: "registered",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-06-01T00:00:00+00:00"
}
  

C#

PixKey(
    id: "jon.snow@starkinfra.com",
    type: "email",
    accountNumber: "20000-1",
    accountType: "savings",
    status: "registered",
    tags: [ "pix", "key" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-06-01T00:00:00+00:00"
)
  

Go

{
    Id: "jon.snow@starkinfra.com",
    Type: "email",
    AccountNumber: "20000-1",
    AccountType: "savings",
    Status: "registered",
    Tags: ["pix", "key"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-06-01T00:00:00+00:00"
}
  

Clojure

{:id "jon.snow@starkinfra.com"
 :type "email"
 :account-number "20000-1"
 :account-type "savings"
 :status "registered"
 :tags ["pix" "key"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-06-01T00:00:00+00:00"}
  

Curl

{
    "key": {
        "id": "jon.snow@starkinfra.com",
        "type": "email",
        "accountNumber": "20000-1",
        "accountType": "savings",
        "status": "registered",
        "tags": ["pix", "key"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-06-01T00:00:00+00:00"
    }
}
  

Canceling a Pix Key

Cancel a Pix key and remove it from DICT.

ENDPOINT
DELETE /v2/pix-key/:id
REQUEST

Python

import starkinfra

key = starkinfra.pixkey.cancel("jon.snow@starkinfra.com")

print(key)
  

Javascript

const starkinfra = require('starkinfra')

const key = await starkinfra.pixKey.cancel("jon.snow@starkinfra.com")

console.log(key)
  

PHP

Java

import com.starkinfra.*;

PixKey key = PixKey.cancel("jon.snow@starkinfra.com");

System.out.println(key);
  

Ruby

require('starkinfra')

key = StarkInfra::PixKey.cancel("jon.snow@starkinfra.com")

puts key
  

Elixir

key = StarkInfra.PixKey.cancel!("jon.snow@starkinfra.com")

IO.inspect(key)
  

C#

using StarkInfra;

PixKey key = PixKey.Cancel("jon.snow@starkinfra.com");

Console.WriteLine(key);
  

Go

package main

import (
    "fmt"
    PixKey "github.com/starkinfra/sdk-go/starkinfra/pixkey"
)

key, err := PixKey.Cancel("jon.snow@starkinfra.com", nil)

fmt.Println(key)
  

Clojure

(def key
    (starkinfra.pix-key/cancel "jon.snow@starkinfra.com"))

(println key)
  

Curl

curl --location --request DELETE '{{baseUrl}}/v2/pix-key/jon.snow%40starkinfra.com' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixKey(
    id="jon.snow@starkinfra.com",
    type="email",
    account_created="2022-01-01",
    account_type="checking",
    bank_code="20018183",
    branch_code="0001",
    account_number="10000-0",
    name="Jon Snow",
    tax_id="012.345.678-90",
    status="canceled",
    owned="2022-01-01T00:00:00+00:00",
    tags=["pix", "key"],
    created="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "canceled",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-12-01T00:00:00+00:00"
}
  

PHP

PixKey Object (
    [id] => jon.snow@starkinfra.com
    [type] => email
    [status] => canceled
    [tags] => Array ( [0] => pix [1] => key )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-12-01T00:00:00+00:00
)
  

Java

PixKey(
    id=jon.snow@starkinfra.com,
    type=email,
    status=canceled,
    tags=[pix, key],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-12-01T00:00:00+00:00
)
  

Ruby

{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "canceled",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-12-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixKey{
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "canceled",
    tags: ["pix", "key"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-12-01T00:00:00+00:00"
}
  

C#

PixKey(
    id: "jon.snow@starkinfra.com",
    type: "email",
    status: "canceled",
    tags: [ "pix", "key" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-12-01T00:00:00+00:00"
)
  

Go

{
    Id: "jon.snow@starkinfra.com",
    Type: "email",
    Status: "canceled",
    Tags: ["pix", "key"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-12-01T00:00:00+00:00"
}
  

Clojure

{:id "jon.snow@starkinfra.com"
 :type "email"
 :status "canceled"
 :tags ["pix" "key"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-12-01T00:00:00+00:00"}
  

Curl

{
    "key": {
        "id": "jon.snow@starkinfra.com",
        "type": "email",
        "status": "canceled",
        "tags": ["pix", "key"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-12-01T00:00:00+00:00"
    }
}
  

Pix Claim Overview

A Pix Claim is used to port or own a Pix key from another institution to your workspace.

Here we will show you how to create and manage them.

The Pix Claim Status

After creation, you can use asynchronous Webhooks to monitor status changes of a Pix Claim. A confirmed status indicates the donor participant confirmed the claim and the Pix Key was deleted; when the status changes to success, the exchange is complete and a new Pix Key is linked to your user's account.

Pix Claims you open (outbound) follow this life cycle:

pix-claim-outbound-status

To monitor received Pix Claims, register a webhook with a pix-claim subscription and filter by the flow attribute. Inbound Pix Claims follow this life cycle:

pix-claim-inbound-status

StatusDescription
CreatedThe Pix Claim was successfully created at Stark Infra.
FailedThe Pix Claim could not be completed.
DeliveredThe Pix Claim was delivered to the donor participant and is awaiting an answer.
ConfirmedThe donor participant confirmed the claim and the Pix Key was deleted.
SuccessThe exchange is complete and the Pix Key is now linked to your user's account.
CanceledThe Pix Claim was canceled or rejected.

The Pix Claim Logs

Every time we change a Pix Claim, we create a Log. Logs are useful for understanding the life cycle of each Pix Claim, and we fire a Webhook whenever a new Log is created. The possible Pix Claim Logs:

pix-claim-outbound-log

For inbound Pix Claims:

pix-claim-inbound-log

Log typeStatusDescription
CreatedCreatedThe Pix Claim was successfully created at Stark Infra.
DeliveredDeliveredThe Pix Claim was delivered to the donor participant and is awaiting an answer.
ConfirmedConfirmedThe donor participant confirmed the claim and the Pix Key was deleted.
SuccessSuccessThe exchange is complete and the Pix Key is now linked to your user's account.
CanceledCanceledThe Pix Claim was canceled or rejected.
FailedFailedThe Pix Claim could not be completed.

Receiving a Pix Claim

When another participant claims a Pix Key registered under your bank code, an inbound Pix Claim is created for you to analyze and answer within the resolution period.

receiving-a-pix-claim

The Pix Claim Object

Attributes

id STRING

Unique id for the Pix claim.

type STRING

Type of the claim. Options: "ownership", "portability".

keyType STRING

Type of the Pix key being claimed. Options: "cpf", "cnpj", "phone", "email", "evp".

keyId STRING

Value of the Pix key being claimed.

status STRING

Current status. Options: "created", "failed", "delivered", "confirmed", "success", "canceled".

flow STRING

Direction of the Pix claim. Options: "out" (you are claiming a key from another institution), "in" (another institution is claiming a key from you).

name STRING

Name of the account holder.

taxId STRING

CPF or CNPJ of the account holder.

bacenId STRING

Central Bank ID for this Pix claim.

tags LIST OF STRINGS

Tags associated with the Pix claim.

claimerBankCode STRING

Bank ISPB code of the institution claiming the Pix key.

claimedBankCode STRING

Bank ISPB code of the institution that currently owns the Pix key.

branchCode STRING

Branch code of the linked bank account.

accountNumber STRING

Account number of the linked bank account.

accountType STRING

Type of the linked bank account. Options: "checking", "savings", "salary", "payment", "other".

accountCreated STRING

Creation date of the linked bank account.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating a Pix Claim

Initiate a Pix key portability or ownership claim.

An ownership claim changes the holder of a Pix Key (only phone keyType). A portability claim changes the linked account without changing the holder (phone, email or taxId keyTypes).

claiming-a-pix-key

ENDPOINT
POST /v2/pix-claim
REQUEST

Python

import starkinfra

claim = starkinfra.pixclaim.create(
    starkinfra.PixClaim(
        account_created="2022-01-01",
        account_number="10000-0",
        account_type="checking",
        branch_code="0001",
        name="Jon Snow",
        tax_id="012.345.678-90",
        key_id="jon.snow@starkinfra.com",
        tags=["claim", "portability"]
    )
)

print(claim)
  

Javascript

const starkinfra = require('starkinfra')

const claim = await starkinfra.pixClaim.create({
    accountCreated: "2022-01-01",
    accountNumber: "10000-0",
    accountType: "checking",
    branchCode: "0001",
    holderName: "Jon Snow",
    holderTaxId: "012.345.678-90",
    keyId: "jon.snow@starkinfra.com",
    tags: ["claim", "portability"]
})

console.log(claim)
  

PHP

 "2022-01-01",
        "accountNumber" => "10000-0",
        "accountType" => "checking",
        "branchCode" => "0001",
        "holderName" => "Jon Snow",
        "holderTaxId" => "012.345.678-90",
        "keyId" => "jon.snow@starkinfra.com",
        "tags" => ["claim", "portability"]
    ])
);

print_r($claim);
  

Java

import com.starkinfra.*;
import java.util.Arrays;

PixClaim claim = PixClaim.create(
    new PixClaim.Builder()
        .accountCreated("2022-01-01")
        .accountNumber("10000-0")
        .accountType("checking")
        .branchCode("0001")
        .holderName("Jon Snow")
        .holderTaxId("012.345.678-90")
        .keyId("jon.snow@starkinfra.com")
        .tags(Arrays.asList("claim", "portability"))
        .build()
);

System.out.println(claim);
  

Ruby

require('starkinfra')

claim = StarkInfra::PixClaim.create(
    StarkInfra::PixClaim.new(
        account_created: "2022-01-01",
        account_number: "10000-0",
        account_type: "checking",
        branch_code: "0001",
        holder_name: "Jon Snow",
        holder_tax_id: "012.345.678-90",
        key_id: "jon.snow@starkinfra.com",
        tags: ["claim", "portability"]
    )
)

puts claim
  

Elixir

claim = StarkInfra.PixClaim.create!(
    %StarkInfra.PixClaim{
        account_created: "2022-01-01",
        account_number: "10000-0",
        account_type: "checking",
        branch_code: "0001",
        holder_name: "Jon Snow",
        holder_tax_id: "012.345.678-90",
        key_id: "jon.snow@starkinfra.com",
        tags: ["claim", "portability"]
    }
)

IO.inspect(claim)
  

C#

using StarkInfra;
using System.Collections.Generic;

PixClaim claim = PixClaim.Create(
    new PixClaim(
        accountCreated: "2022-01-01",
        accountNumber: "10000-0",
        accountType: "checking",
        branchCode: "0001",
        holderName: "Jon Snow",
        holderTaxId: "012.345.678-90",
        keyId: "jon.snow@starkinfra.com",
        tags: new List { "claim", "portability" }
    )
);

Console.WriteLine(claim);
  

Go

package main

import (
    "fmt"
    PixClaim "github.com/starkinfra/sdk-go/starkinfra/pixclaim"
)

claim, err := PixClaim.Create(
    PixClaim.PixClaim{
        AccountCreated: "2022-01-01",
        AccountNumber:  "10000-0",
        AccountType:    "checking",
        BranchCode:     "0001",
        HolderName:     "Jon Snow",
        HolderTaxId:    "012.345.678-90",
        KeyId:          "jon.snow@starkinfra.com",
        Tags:           []string{"claim", "portability"},
    }, nil)

fmt.Println(claim)
  

Clojure

(def claim
    (starkinfra.pix-claim/create
        {:account-created "2022-01-01"
         :account-number "10000-0"
         :account-type "checking"
         :branch-code "0001"
         :holder-name "Jon Snow"
         :holder-tax-id "012.345.678-90"
         :key-id "jon.snow@starkinfra.com"
         :tags ["claim" "portability"]}))

(println claim)
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-claim' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "claim": {
        "accountCreated": "2022-01-01",
        "accountNumber": "10000-0",
        "accountType": "checking",
        "branchCode": "0001",
        "holderName": "Jon Snow",
        "holderTaxId": "012.345.678-90",
        "keyId": "jon.snow@starkinfra.com",
        "tags": ["claim", "portability"]
    }
}'
  
RESPONSE

Python

PixClaim(
    id="5656565656565656",
    type="portability",
    key_type="email",
    key_id="jon.snow@starkinfra.com",
    status="created",
    flow="out",
    name="Jon Snow",
    tax_id="012.345.678-90",
    bacen_id="ccf9bd9c-e99d-999e-bab9-b999ca999f99",
    tags=["claim", "portability"],
    claimer_bank_code="20018183",
    claimed_bank_code="60701190",
    branch_code="0001",
    account_number="10000-0",
    account_type="checking",
    account_created="2022-01-01T00:00:00+00:00",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    keyType: "email",
    status: "created",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixClaim Object (
    [id] => 5656565656565656
    [type] => portability
    [keyId] => jon.snow@starkinfra.com
    [keyType] => email
    [status] => created
    [tags] => Array ( [0] => claim [1] => portability )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixClaim(
    id=5656565656565656,
    type=portability,
    keyId=jon.snow@starkinfra.com,
    keyType=email,
    status=created,
    tags=[claim, portability],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    key_type: "email",
    status: "created",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixClaim{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    key_type: "email",
    status: "created",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixClaim(
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    keyType: "email",
    status: "created",
    tags: [ "claim", "portability" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Type: "portability",
    KeyId: "jon.snow@starkinfra.com",
    KeyType: "email",
    Status: "created",
    Tags: ["claim", "portability"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :type "portability"
 :key-id "jon.snow@starkinfra.com"
 :key-type "email"
 :status "created"
 :tags ["claim" "portability"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "claim": {
        "id": "5656565656565656",
        "type": "portability",
        "keyId": "jon.snow@starkinfra.com",
        "keyType": "email",
        "status": "created",
        "tags": ["claim", "portability"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Listing Pix Claims

List and filter all Pix claims. Results are paged.

ENDPOINT
GET /v2/pix-claim
REQUEST

Python

import starkinfra

claims = starkinfra.pixclaim.query(
    limit=10,
    after="2022-01-01",
    before="2022-12-31",
    status=["delivered"],
    type="portability",
    flow="out"
)

for claim in claims:
    print(claim)
  

Javascript

const starkinfra = require('starkinfra')

const claims = await starkinfra.pixClaim.query({
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "delivered",
    type: "portability"
})

for await (const claim of claims) {
    console.log(claim)
}
  

PHP

 10,
    "after" => "2022-01-01",
    "before" => "2022-12-31",
    "status" => "delivered",
    "type" => "portability"
]);

foreach ($claims as $claim) {
    print_r($claim);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);
params.put("after", "2022-01-01");
params.put("before", "2022-12-31");
params.put("status", "delivered");
params.put("type", "portability");

Generator claims = PixClaim.query(params);

for (PixClaim claim : claims) {
    System.out.println(claim);
}
  

Ruby

require('starkinfra')

claims = StarkInfra::PixClaim.query(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "delivered",
    type: "portability"
)

claims.each do |claim|
    puts claim
end
  

Elixir

claims = StarkInfra.PixClaim.query!(
    limit: 10,
    after: "2022-01-01",
    before: "2022-12-31",
    status: "delivered",
    type: "portability"
)

for claim <- claims do
    IO.inspect(claim)
end
  

C#

using StarkInfra;

IEnumerable claims = PixClaim.Query(
    limit: 10,
    after: new DateTime(2022, 1, 1),
    before: new DateTime(2022, 12, 31),
    status: "delivered",
    type: "portability"
);

foreach (PixClaim claim in claims) {
    Console.WriteLine(claim);
}
  

Go

package main

import (
    "fmt"
    PixClaim "github.com/starkinfra/sdk-go/starkinfra/pixclaim"
)

var params = map[string]interface{}{
    "limit":  10,
    "after":  "2022-01-01",
    "before": "2022-12-31",
    "status": "delivered",
    "type":   "portability",
}

claims := PixClaim.Query(params, nil)

for claim := range claims {
    fmt.Println(claim)
}
  

Clojure

(def claims
    (starkinfra.pix-claim/query {
        :limit 10
        :after "2022-01-01"
        :before "2022-12-31"
        :status "delivered"
        :type "portability"
    }))

(doseq [claim claims]
    (println claim))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-claim?limit=10&after=2022-01-01&before=2022-12-31&status=delivered&type=portability' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixClaim(
    id="5656565656565656",
    type="portability",
    key_type="email",
    key_id="jon.snow@starkinfra.com",
    status="delivered",
    flow="out",
    name="Jon Snow",
    tax_id="012.345.678-90",
    bacen_id="ccf9bd9c-e99d-999e-bab9-b999ca999f99",
    tags=["claim", "portability"],
    claimer_bank_code="20018183",
    claimed_bank_code="60701190",
    branch_code="0001",
    account_number="10000-0",
    account_type="checking",
    account_created="2022-01-01T00:00:00+00:00",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:01:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

PHP

PixClaim Object (
    [id] => 5656565656565656
    [type] => portability
    [keyId] => jon.snow@starkinfra.com
    [status] => delivered
    [tags] => Array ( [0] => claim [1] => portability )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:01:00+00:00
)
  

Java

PixClaim(
    id=5656565656565656,
    type=portability,
    keyId=jon.snow@starkinfra.com,
    status=delivered,
    tags=[claim, portability],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:01:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

Elixir

%StarkInfra.PixClaim{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

C#

PixClaim(
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    status: "delivered",
    tags: [ "claim", "portability" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Type: "portability",
    KeyId: "jon.snow@starkinfra.com",
    Status: "delivered",
    Tags: ["claim", "portability"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:01:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :type "portability"
 :key-id "jon.snow@starkinfra.com"
 :status "delivered"
 :tags ["claim" "portability"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:01:00+00:00"}
  

Curl

{
    "cursor": null,
    "claims": [
        {
            "id": "5656565656565656",
            "type": "portability",
            "keyId": "jon.snow@starkinfra.com",
            "status": "delivered",
            "tags": ["claim", "portability"],
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:01:00+00:00"
        }
    ]
}
  

Getting a Pix Claim

Get a single Pix claim by its id.

ENDPOINT
GET /v2/pix-claim/:id
REQUEST

Python

import starkinfra

claim = starkinfra.pixclaim.get("5656565656565656")

print(claim)
  

Javascript

const starkinfra = require('starkinfra')

const claim = await starkinfra.pixClaim.get("5656565656565656")

console.log(claim)
  

PHP

Java

import com.starkinfra.*;

PixClaim claim = PixClaim.get("5656565656565656");

System.out.println(claim);
  

Ruby

require('starkinfra')

claim = StarkInfra::PixClaim.get("5656565656565656")

puts claim
  

Elixir

claim = StarkInfra.PixClaim.get!("5656565656565656")

IO.inspect(claim)
  

C#

using StarkInfra;

PixClaim claim = PixClaim.Get("5656565656565656");

Console.WriteLine(claim);
  

Go

package main

import (
    "fmt"
    PixClaim "github.com/starkinfra/sdk-go/starkinfra/pixclaim"
)

claim, err := PixClaim.Get("5656565656565656", nil)

fmt.Println(claim)
  

Clojure

(def claim
    (starkinfra.pix-claim/get "5656565656565656"))

(println claim)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-claim/5656565656565656' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixClaim(
    id="5656565656565656",
    type="portability",
    key_type="email",
    key_id="jon.snow@starkinfra.com",
    status="delivered",
    flow="out",
    name="Jon Snow",
    tax_id="012.345.678-90",
    bacen_id="ccf9bd9c-e99d-999e-bab9-b999ca999f99",
    tags=["claim", "portability"],
    claimer_bank_code="20018183",
    claimed_bank_code="60701190",
    branch_code="0001",
    account_number="10000-0",
    account_type="checking",
    account_created="2022-01-01T00:00:00+00:00",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:01:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    keyType: "email",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

PHP

PixClaim Object (
    [id] => 5656565656565656
    [type] => portability
    [keyId] => jon.snow@starkinfra.com
    [keyType] => email
    [status] => delivered
    [tags] => Array ( [0] => claim [1] => portability )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:01:00+00:00
)
  

Java

PixClaim(
    id=5656565656565656,
    type=portability,
    keyId=jon.snow@starkinfra.com,
    keyType=email,
    status=delivered,
    tags=[claim, portability],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:01:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    key_type: "email",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

Elixir

%StarkInfra.PixClaim{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    key_type: "email",
    status: "delivered",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
}
  

C#

PixClaim(
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    keyType: "email",
    status: "delivered",
    tags: [ "claim", "portability" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:01:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Type: "portability",
    KeyId: "jon.snow@starkinfra.com",
    KeyType: "email",
    Status: "delivered",
    Tags: ["claim", "portability"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:01:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :type "portability"
 :key-id "jon.snow@starkinfra.com"
 :key-type "email"
 :status "delivered"
 :tags ["claim" "portability"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:01:00+00:00"}
  

Curl

{
    "claim": {
        "id": "5656565656565656",
        "type": "portability",
        "keyId": "jon.snow@starkinfra.com",
        "keyType": "email",
        "status": "delivered",
        "tags": ["claim", "portability"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:01:00+00:00"
    }
}
  

Updating a Pix Claim

Confirm or cancel an incoming Pix claim.

You must answer an inbound Pix Claim within 7 days of its status changing to delivered. If unanswered, a portability claim is rejected by default and an ownership claim is accepted by default, both with reason defaultBehavior.

You can only confirm Pix Claims with delivered status; confirming deletes the referenced Pix Key from Stark Infra and the Central Bank.

You can only cancel Pix Claims with delivered or confirmed status.

ENDPOINT
PATCH /v2/pix-claim/:id
REQUEST

Python

import starkinfra

claim = starkinfra.pixclaim.update(
    "5656565656565656",
    status="confirmed",
    reason="userRequested"
)

print(claim)
  

Javascript

const starkinfra = require('starkinfra')

const claim = await starkinfra.pixClaim.update(
    "5656565656565656",
    { status: "confirmed" }
)

console.log(claim)
  

PHP

 "confirmed"]);

print_r($claim);
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap data = new HashMap<>();
data.put("status", "confirmed");

PixClaim claim = PixClaim.update("5656565656565656", data);

System.out.println(claim);
  

Ruby

require('starkinfra')

claim = StarkInfra::PixClaim.update(
    "5656565656565656",
    status: "confirmed"
)

puts claim
  

Elixir

claim = StarkInfra.PixClaim.update!(
    "5656565656565656",
    status: "confirmed"
)

IO.inspect(claim)
  

C#

using StarkInfra;
using System.Collections.Generic;

Dictionary data = new Dictionary {
    { "status", "confirmed" }
};

PixClaim claim = PixClaim.Update("5656565656565656", data);

Console.WriteLine(claim);
  

Go

package main

import (
    "fmt"
    PixClaim "github.com/starkinfra/sdk-go/starkinfra/pixclaim"
)

var data = map[string]interface{}{
    "status": "confirmed",
}

claim, err := PixClaim.Update("5656565656565656", data, nil)

fmt.Println(claim)
  

Clojure

(def claim
    (starkinfra.pix-claim/update
        "5656565656565656"
        {:status "confirmed"}))

(println claim)
  

Curl

curl --location --request PATCH '{{baseUrl}}/v2/pix-claim/5656565656565656' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "status": "confirmed"
}'
  
RESPONSE

Python

PixClaim(
    id="5656565656565656",
    type="portability",
    key_type="email",
    key_id="jon.snow@starkinfra.com",
    status="confirmed",
    flow="out",
    name="Jon Snow",
    tax_id="012.345.678-90",
    bacen_id="ccf9bd9c-e99d-999e-bab9-b999ca999f99",
    tags=["claim", "portability"],
    claimer_bank_code="20018183",
    claimed_bank_code="60701190",
    branch_code="0001",
    account_number="10000-0",
    account_type="checking",
    account_created="2022-01-01T00:00:00+00:00",
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:02:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    status: "confirmed",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:02:00+00:00"
}
  

PHP

PixClaim Object (
    [id] => 5656565656565656
    [type] => portability
    [keyId] => jon.snow@starkinfra.com
    [status] => confirmed
    [tags] => Array ( [0] => claim [1] => portability )
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:02:00+00:00
)
  

Java

PixClaim(
    id=5656565656565656,
    type=portability,
    keyId=jon.snow@starkinfra.com,
    status=confirmed,
    tags=[claim, portability],
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:02:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    status: "confirmed",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:02:00+00:00"
}
  

Elixir

%StarkInfra.PixClaim{
    id: "5656565656565656",
    type: "portability",
    key_id: "jon.snow@starkinfra.com",
    status: "confirmed",
    tags: ["claim", "portability"],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:02:00+00:00"
}
  

C#

PixClaim(
    id: "5656565656565656",
    type: "portability",
    keyId: "jon.snow@starkinfra.com",
    status: "confirmed",
    tags: [ "claim", "portability" ],
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:02:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Type: "portability",
    KeyId: "jon.snow@starkinfra.com",
    Status: "confirmed",
    Tags: ["claim", "portability"],
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:02:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :type "portability"
 :key-id "jon.snow@starkinfra.com"
 :status "confirmed"
 :tags ["claim" "portability"]
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:02:00+00:00"}
  

Curl

{
    "claim": {
        "id": "5656565656565656",
        "type": "portability",
        "keyId": "jon.snow@starkinfra.com",
        "status": "confirmed",
        "tags": ["claim", "portability"],
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:02:00+00:00"
    }
}
  

Pix User Overview

The Pix User resource lets you consult, through DICT, an end user's statistics on Pix keys, Pix requests, frauds and infractions registered across Bacen's systems (e.g. SPI for Pix requests).

Here we will show you how to retrieve user data.

The Pix User Object

Attributes

id STRING

Tax ID (CPF or CNPJ) used to query the user.

statistics.value INTEGER

Number of occurrences counted for this statistic.

statistics.type STRING

Type of the statistic; the valid values depend on the source. Options: "registered", "unique" (pix-key); "settled" (pix-request); "identity", "mule", "scam", "other", "unknown", "amount", "unique" (pix-fraud); "open", "denied", "unique" (pix-infraction).

statistics.source STRING

Source of the statistic. Options: "pix-key", "pix-fraud", "pix-request", "pix-infraction".

statistics.after STRING

Datetime from which the statistic was computed. Example: "2020-04-23T23:00:00.000000+00:00".

statistics.updated STRING

Last update datetime of the statistic. Example: "2020-04-23T23:00:00.000000+00:00".

Getting a Pix User

Retrieve a user's aggregated Pix statistics — Pix keys, Pix requests, frauds and infractions — for a specific user by their tax ID.

ENDPOINT
GET /v2/pix-user/:taxId
REQUEST

Python

import starkinfra

user = starkinfra.pixuser.get("012.345.678-90")

print(user)
  

Javascript

const starkinfra = require('starkinfra')

const user = await starkinfra.pixUser.get("012.345.678-90")

console.log(user)
  

PHP

Java

import com.starkinfra.*;

PixUser user = PixUser.get("012.345.678-90");

System.out.println(user);
  

Ruby

require('starkinfra')

user = StarkInfra::PixUser.get("012.345.678-90")

puts user
  

Elixir

user = StarkInfra.PixUser.get!("012.345.678-90")

IO.inspect(user)
  

C#

using StarkInfra;

PixUser user = PixUser.Get("012.345.678-90");

Console.WriteLine(user);
  

Go

package main

import (
    "fmt"
    PixUser "github.com/starkinfra/sdk-go/starkinfra/pixuser"
)

user, err := PixUser.Get("012.345.678-90", nil)

fmt.Println(user)
  

Clojure

(def user
    (starkinfra.pix-user/get "012.345.678-90"))

(println user)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-user/012.345.678-90' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixUser(
    id="012.345.678-90",
    statistics=[
        PixUser.Statistics(
            value=3,
            type="open",
            source="pix-infraction",
            after="2020-04-23T23:00:00.000000+00:00",
            updated="2020-04-23T23:00:00.000000+00:00"
        )
    ]
)
  

Javascript

{
    id: "012.345.678-90",
    statistics: [
        {
            value: 3,
            type: "open",
            source: "pix-infraction",
            after: "2020-04-23T23:00:00.000000+00:00",
            updated: "2020-04-23T23:00:00.000000+00:00"
        }
    ]
}
  

PHP

PixUser Object (
    [id] => 012.345.678-90
    [statistics] => Array (
        [0] => StarkInfra\PixUser\Statistics Object (
            [value] => 3
            [type] => open
            [source] => pix-infraction
            [after] => 2020-04-23T23:00:00.000000+00:00
            [updated] => 2020-04-23T23:00:00.000000+00:00
        )
    )
)
  

Java

PixUser(
    id=012.345.678-90,
    statistics=[
        PixUser.Statistics(
            value=3,
            type=open,
            source=pix-infraction,
            after=2020-04-23T23:00:00.000000+00:00,
            updated=2020-04-23T23:00:00.000000+00:00
        )
    ]
)
  

Ruby

{
    id: "012.345.678-90",
    statistics: [
        {
            value: 3,
            type: "open",
            source: "pix-infraction",
            after: "2020-04-23T23:00:00.000000+00:00",
            updated: "2020-04-23T23:00:00.000000+00:00"
        }
    ]
}
  

Elixir

%StarkInfra.PixUser{
    id: "012.345.678-90",
    statistics: [
        %StarkInfra.PixUser.Statistics{
            value: 3,
            type: "open",
            source: "pix-infraction",
            after: "2020-04-23T23:00:00.000000+00:00",
            updated: "2020-04-23T23:00:00.000000+00:00"
        }
    ]
}
  

C#

PixUser(
    id: "012.345.678-90",
    statistics: [
        PixUser.Statistics(
            value: 3,
            type: "open",
            source: "pix-infraction",
            after: "2020-04-23T23:00:00.000000+00:00",
            updated: "2020-04-23T23:00:00.000000+00:00"
        )
    ]
)
  

Go

{
    Id: "012.345.678-90",
    Statistics: [
        {
            Value: 3,
            Type: "open",
            Source: "pix-infraction",
            After: "2020-04-23T23:00:00.000000+00:00",
            Updated: "2020-04-23T23:00:00.000000+00:00"
        }
    ]
}
  

Clojure

{:id "012.345.678-90"
 :statistics [{:value 3
               :type "open"
               :source "pix-infraction"
               :after "2020-04-23T23:00:00.000000+00:00"
               :updated "2020-04-23T23:00:00.000000+00:00"}]}
  

Curl

{
    "id": "012.345.678-90",
    "statistics": [
        {
            "value": 3,
            "type": "open",
            "source": "pix-infraction",
            "after": "2020-04-23T23:00:00.000000+00:00",
            "updated": "2020-04-23T23:00:00.000000+00:00"
        }
    ]
}
  

Pix Statement Overview

A Pix Statement allows you to request a detailed report of all Pix transactions in your account for a given period.

Here we will show you how to create and manage them.

The Pix Statement Object

Attributes

id STRING

Unique id for the Pix statement.

after STRING

Start date of the statement period.

before STRING

End date of the statement period.

type STRING

Type of the statement. Options: "interchange", "interchangeTotal", "transaction".

status STRING

Current status. Options: "created", "looking", "success", "failed".

chunkCount INTEGER

Number of chunks the statement file is split into. Each chunk can be downloaded individually.

transactionCount INTEGER

Number of transactions in the statement.

created STRING

Creation datetime. Example: "2020-04-23T23:00:00.000000+00:00".

updated STRING

Last update datetime. Example: "2020-04-23T23:00:00.000000+00:00".

Creating a Pix Statement

Request a Pix statement for a specific period and type.

ENDPOINT
POST /v2/pix-statement
REQUEST

Python

import starkinfra

statement = starkinfra.pixstatement.create(
    starkinfra.PixStatement(
        after="2022-01-01",
        before="2022-01-31",
        type="transaction"
    )
)

print(statement)
  

Javascript

const starkinfra = require('starkinfra')

const statement = await starkinfra.pixStatement.create({
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction"
})

console.log(statement)
  

PHP

 "2022-01-01",
        "before" => "2022-01-31",
        "type" => "transaction"
    ])
);

print_r($statement);
  

Java

import com.starkinfra.*;

PixStatement statement = PixStatement.create(
    new PixStatement.Builder()
        .after("2022-01-01")
        .before("2022-01-31")
        .type("transaction")
        .build()
);

System.out.println(statement);
  

Ruby

require('starkinfra')

statement = StarkInfra::PixStatement.create(
    StarkInfra::PixStatement.new(
        after: "2022-01-01",
        before: "2022-01-31",
        type: "transaction"
    )
)

puts statement
  

Elixir

statement = StarkInfra.PixStatement.create!(
    %StarkInfra.PixStatement{
        after: "2022-01-01",
        before: "2022-01-31",
        type: "transaction"
    }
)

IO.inspect(statement)
  

C#

using StarkInfra;

PixStatement statement = PixStatement.Create(
    new PixStatement(
        after: new DateTime(2022, 1, 1),
        before: new DateTime(2022, 1, 31),
        type: "transaction"
    )
);

Console.WriteLine(statement);
  

Go

package main

import (
    "fmt"
    PixStatement "github.com/starkinfra/sdk-go/starkinfra/pixstatement"
)

statement, err := PixStatement.Create(
    PixStatement.PixStatement{
        After:  "2022-01-01",
        Before: "2022-01-31",
        Type:   "transaction",
    }, nil)

fmt.Println(statement)
  

Clojure

(def statement
    (starkinfra.pix-statement/create
        {:after "2022-01-01"
         :before "2022-01-31"
         :type "transaction"}))

(println statement)
  

Curl

curl --location --request POST '{{baseUrl}}/v2/pix-statement' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "statement": {
        "after": "2022-01-01",
        "before": "2022-01-31",
        "type": "transaction"
    }
}'
  
RESPONSE

Python

PixStatement(
    id="5656565656565656",
    after="2022-01-01",
    before="2022-01-31",
    type="transaction",
    status="created",
    chunk_count=0,
    transaction_count=0,
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:00:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "created",
    transactionCount: 0,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

PHP

PixStatement Object (
    [id] => 5656565656565656
    [after] => 2022-01-01
    [before] => 2022-01-31
    [type] => transaction
    [status] => created
    [transactionCount] => 0
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:00:00+00:00
)
  

Java

PixStatement(
    id=5656565656565656,
    after=2022-01-01,
    before=2022-01-31,
    type=transaction,
    status=created,
    transactionCount=0,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:00:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "created",
    transaction_count: 0,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

Elixir

%StarkInfra.PixStatement{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "created",
    transaction_count: 0,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
}
  

C#

PixStatement(
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "created",
    transactionCount: 0,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:00:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    After: "2022-01-01",
    Before: "2022-01-31",
    Type: "transaction",
    Status: "created",
    TransactionCount: 0,
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:00:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :after "2022-01-01"
 :before "2022-01-31"
 :type "transaction"
 :status "created"
 :transaction-count 0
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:00:00+00:00"}
  

Curl

{
    "statement": {
        "id": "5656565656565656",
        "after": "2022-01-01",
        "before": "2022-01-31",
        "type": "transaction",
        "status": "created",
        "transactionCount": 0,
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:00:00+00:00"
    }
}
  

Listing Pix Statements

List and filter all Pix statements. Results are paged.

ENDPOINT
GET /v2/pix-statement
REQUEST

Python

import starkinfra

statements = starkinfra.pixstatement.query(limit=10)

for statement in statements:
    print(statement)
  

Javascript

const starkinfra = require('starkinfra')

const statements = await starkinfra.pixStatement.query({ limit: 10 })

for await (const statement of statements) {
    console.log(statement)
}
  

PHP

 10]);

foreach ($statements as $statement) {
    print_r($statement);
}
  

Java

import com.starkinfra.*;
import java.util.HashMap;

HashMap params = new HashMap<>();
params.put("limit", 10);

Generator statements = PixStatement.query(params);

for (PixStatement statement : statements) {
    System.out.println(statement);
}
  

Ruby

require('starkinfra')

statements = StarkInfra::PixStatement.query(limit: 10)

statements.each do |statement|
    puts statement
end
  

Elixir

statements = StarkInfra.PixStatement.query!(limit: 10)

for statement <- statements do
    IO.inspect(statement)
end
  

C#

using StarkInfra;

IEnumerable statements = PixStatement.Query(limit: 10);

foreach (PixStatement statement in statements) {
    Console.WriteLine(statement);
}
  

Go

package main

import (
    "fmt"
    PixStatement "github.com/starkinfra/sdk-go/starkinfra/pixstatement"
)

var params = map[string]interface{}{
    "limit": 10,
}

statements := PixStatement.Query(params, nil)

for statement := range statements {
    fmt.Println(statement)
}
  

Clojure

(def statements
    (starkinfra.pix-statement/query {:limit 10}))

(doseq [statement statements]
    (println statement))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-statement?limit=10' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python



PixStatement(
    id="5656565656565656",
    after="2022-01-01",
    before="2022-01-31",
    type="transaction",
    status="success",
    chunk_count=2,
    transaction_count=150,
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:05:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    type: "transaction",
    status: "success",
    transactionCount: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

PHP

PixStatement Object (
    [id] => 5656565656565656
    [type] => transaction
    [status] => success
    [transactionCount] => 150
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:05:00+00:00
)
  

Java

PixStatement(
    id=5656565656565656,
    type=transaction,
    status=success,
    transactionCount=150,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:05:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    type: "transaction",
    status: "success",
    transaction_count: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

Elixir

%StarkInfra.PixStatement{
    id: "5656565656565656",
    type: "transaction",
    status: "success",
    transaction_count: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

C#

PixStatement(
    id: "5656565656565656",
    type: "transaction",
    status: "success",
    transactionCount: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    Type: "transaction",
    Status: "success",
    TransactionCount: 150,
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:05:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :type "transaction"
 :status "success"
 :transaction-count 150
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:05:00+00:00"}
  

Curl

{
    "cursor": null,
    "statements": [
        {
            "id": "5656565656565656",
            "type": "transaction",
            "status": "success",
            "transactionCount": 150,
            "created": "2022-01-01T00:00:00+00:00",
            "updated": "2022-01-01T00:05:00+00:00"
        }
    ]
}
  

Getting a Pix Statement

Get a single Pix statement by its id.

ENDPOINT
GET /v2/pix-statement/:id
REQUEST

Python

import starkinfra

statement = starkinfra.pixstatement.get("5656565656565656")

print(statement)
  

Javascript

const starkinfra = require('starkinfra')

const statement = await starkinfra.pixStatement.get("5656565656565656")

console.log(statement)
  

PHP

Java

import com.starkinfra.*;

PixStatement statement = PixStatement.get("5656565656565656");

System.out.println(statement);
  

Ruby

require('starkinfra')

statement = StarkInfra::PixStatement.get("5656565656565656")

puts statement
  

Elixir

statement = StarkInfra.PixStatement.get!("5656565656565656")

IO.inspect(statement)
  

C#

using StarkInfra;

PixStatement statement = PixStatement.Get("5656565656565656");

Console.WriteLine(statement);
  

Go

package main

import (
    "fmt"
    PixStatement "github.com/starkinfra/sdk-go/starkinfra/pixstatement"
)

statement, err := PixStatement.Get("5656565656565656", nil)

fmt.Println(statement)
  

Clojure

(def statement
    (starkinfra.pix-statement/get "5656565656565656"))

(println statement)
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-statement/5656565656565656' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}'
  
RESPONSE

Python

PixStatement(
    id="5656565656565656",
    after="2022-01-01",
    before="2022-01-31",
    type="transaction",
    status="success",
    chunk_count=2,
    transaction_count=150,
    created="2022-01-01T00:00:00+00:00",
    updated="2022-01-01T00:05:00+00:00"
)
  

Javascript

{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "success",
    transactionCount: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

PHP

PixStatement Object (
    [id] => 5656565656565656
    [after] => 2022-01-01
    [before] => 2022-01-31
    [type] => transaction
    [status] => success
    [transactionCount] => 150
    [created] => 2022-01-01T00:00:00+00:00
    [updated] => 2022-01-01T00:05:00+00:00
)
  

Java

PixStatement(
    id=5656565656565656,
    after=2022-01-01,
    before=2022-01-31,
    type=transaction,
    status=success,
    transactionCount=150,
    created=2022-01-01T00:00:00+00:00,
    updated=2022-01-01T00:05:00+00:00
)
  

Ruby

{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "success",
    transaction_count: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

Elixir

%StarkInfra.PixStatement{
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "success",
    transaction_count: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
}
  

C#

PixStatement(
    id: "5656565656565656",
    after: "2022-01-01",
    before: "2022-01-31",
    type: "transaction",
    status: "success",
    transactionCount: 150,
    created: "2022-01-01T00:00:00+00:00",
    updated: "2022-01-01T00:05:00+00:00"
)
  

Go

{
    Id: "5656565656565656",
    After: "2022-01-01",
    Before: "2022-01-31",
    Type: "transaction",
    Status: "success",
    TransactionCount: 150,
    Created: "2022-01-01T00:00:00+00:00",
    Updated: "2022-01-01T00:05:00+00:00"
}
  

Clojure

{:id "5656565656565656"
 :after "2022-01-01"
 :before "2022-01-31"
 :type "transaction"
 :status "success"
 :transaction-count 150
 :created "2022-01-01T00:00:00+00:00"
 :updated "2022-01-01T00:05:00+00:00"}
  

Curl

{
    "statement": {
        "id": "5656565656565656",
        "after": "2022-01-01",
        "before": "2022-01-31",
        "type": "transaction",
        "status": "success",
        "transactionCount": 150,
        "created": "2022-01-01T00:00:00+00:00",
        "updated": "2022-01-01T00:05:00+00:00"
    }
}
  

Getting a Pix Statement CSV

Get the CSV file for a completed Pix statement. The file is returned compressed in the gzip format.

ENDPOINT
GET /v2/pix-statement/:id/csv
REQUEST

Python

import starkinfra

csv = starkinfra.pixstatement.csv("5656565656565656")

with open("statement.zip", "wb") as f:
    f.write(csv)
  

Javascript

const starkinfra = require('starkinfra')
const fs = require('fs')

const pdf = await starkinfra.pixStatement.pdf("5656565656565656")

fs.writeFileSync("statement.zip", pdf)
  

PHP

Java

import com.starkinfra.*;
import java.io.FileOutputStream;

byte[] pdf = PixStatement.pdf("5656565656565656");

FileOutputStream fos = new FileOutputStream("statement.zip");
fos.write(pdf);
fos.close();
  

Ruby

require('starkinfra')

pdf = StarkInfra::PixStatement.pdf("5656565656565656")

File.open("statement.zip", "wb") { |f| f.write(pdf) }
  

Elixir

pdf = StarkInfra.PixStatement.pdf!("5656565656565656")

File.write!("statement.zip", pdf)
  

C#

using StarkInfra;
using System.IO;

byte[] pdf = PixStatement.Pdf("5656565656565656");

File.WriteAllBytes("statement.zip", pdf);
  

Go

package main

import (
    "os"
    PixStatement "github.com/starkinfra/sdk-go/starkinfra/pixstatement"
)

pdf, err := PixStatement.Pdf("5656565656565656", nil)

os.WriteFile("statement.zip", pdf, 0644)
  

Clojure

(def pdf
    (starkinfra.pix-statement/pdf "5656565656565656"))

(clojure.java.io/copy pdf (java.io.File. "statement.zip"))
  

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-statement/5656565656565656/csv' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--output statement.csv.gz
  
RESPONSE

Python


  

Javascript


  

PHP


  

Java


  

Ruby


  

Elixir


  

C#


  

Go

<[]byte: statement zip file content>
  

Clojure


  

Curl


  

Getting a Pix Statement Chunk

Get a single chunk of a completed Pix statement. Large statements are split into numbered parts, letting you download one chunk at a time. The chunk is returned compressed in the gzip format.

ENDPOINT
GET /v2/pix-statement/:id/chunk/:number
REQUEST

Python

Javascript

PHP

Java

Ruby

Elixir

C#

Go

Clojure

Curl

curl --location --request GET '{{baseUrl}}/v2/pix-statement/5656565656565656/chunk/1' \
--header 'Access-Id: {{accessId}}' \
--header 'Access-Time: {{accessTime}}' \
--header 'Access-Signature: {{accessSignature}}' \
--output statement-chunk-1.csv.gz
  
RESPONSE

Python

Javascript

PHP

Java

Ruby

Elixir

C#

Go

Clojure

Curl