Transfer to accounts at another institution (Pix / TED)

Transfer to another institution via Pix or TED

Transfer the available balance in your Asaas account to an external bank account or directly to a Pix key.

Use POST /v3/transfers in both flows. The destination data determines how the transfer will be made.

Before you start

Confirm that:

  • the account has available balance for the transfer;
  • the destination bank details or Pix key are correct;
  • your integration is using the API Key for the corresponding environment.

The requested amount cannot exceed the available balance.

🛑

Important

This flow does not constitute payment initiation via Open Finance (ITP).

Although, in terms of experience, the operation involves sending funds to another institution, from a regulatory and operational standpoint:

  • there is no Open Finance consent;
  • there is no access to or movement of an external account;
  • there is no movement of balance held at another financial institution;
  • Asaas does not act as a payment initiation service provider (ITP).

In other words, this is exclusively a transfer made from the customer's own balance within Asaas.

Choose the destination

%%{init: {"flowchart": {"nodeSpacing": 28,"rankSpacing": 32,"diagramPadding": 8,"padding": 10}}}%%
flowchart TD
    A["Check the available balance"] --> B{"What is the destination?"}

    B --> BConta(("Bank account"))
    B --> BPix(("Pix key"))

    BConta --> C["Provide bankAccount"]
    BPix --> D["Provide pixAddressKey"]

    C --> E["Create the transfer"]
    D --> E

    E --> F["Store the ID"]
    F --> G["Receive Webhooks"]
    G --> H["Reconcile the result"]

    classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px,font-size:17px
    classDef decisao fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:3px,font-size:17px
    classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px,font-size:17px
    classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px,font-size:17px

    classDef respostaSim fill:#22C55E,stroke:#15803D,color:#FFFFFF,stroke-width:3px,font-size:16px
    classDef respostaOpcao fill:#8B5CF6,stroke:#6D28D9,color:#FFFFFF,stroke-width:3px,font-size:16px

    class A inicio
    class B decisao
    class C,D,E,F,G validacao
    class H sucesso

    class BConta respostaSim
    class BPix respostaOpcao

    linkStyle default stroke:#94A3B8,stroke-width:2px
    linkStyle 1 stroke:#22C55E,stroke-width:4px
    linkStyle 2 stroke:#8B5CF6,stroke-width:4px

1. Transfer to a bank account

Provide bankAccount with the destination account details.

POST /v3/transfers
{
  "value": 1000.00,
  "bankAccount": {
    "bank": {
      "code": "237"
    },
    "ownerName": "Marcelo Almeida",
    "cpfCnpj": "52233424611",
    "agency": "1263",
    "account": "9999991",
    "accountDigit": "1",
    "bankAccountType": "CONTA_CORRENTE"
  }
}
📘

Notice

If operationType is not provided and the bank account belongs to a bank or payment institution that participates in Pix, the transfer will be made via Pix.

Otherwise, it will be made via TED.

If you need to explicitly define the method, use operationType with PIX or TED.

Processing varies according to the method:

MethodBehavior
PixCan be instant or occur on the scheduled date
TEDDepends on bank processing and may occur on the same day or the next business day

See the Transfer to another institution account or Pix key endpoint.

2. Transfer to a Pix key

Provide pixAddressKey and pixAddressKeyType.

POST /v3/transfers
{
  "value": 1000.00,
  "pixAddressKey": "09493012301",
  "pixAddressKeyType": "CPF",
  "scheduleDate": null,
  "description": "Barbecue paid via Pix with key"
}

The available key types are CPF, CNPJ, EMAIL, PHONE and EVP.

When providing the key:

  • phone numbers must contain 11 digits, including the area code (DDD);
  • CPF and CNPJ must be sent without punctuation.

3. Define when the Pix will be executed

A Pix transfer can be:

NeedField
Execute without schedulingDo not provide scheduleDate
Schedule for another dateProvide scheduleDate
Create a recurrenceProvide recurring

recurring is available only for Pix transfers.

📘

Learn more

Learn more about recurring Pix in the specific documentation.

See the Recurring Pix guide.

The Recurring Pix in this flow is a periodic transfer. It does not generate a QR Code for payment.

4. Track the transfer via Webhook

After creating the transfer, store the returned ID and use Webhooks to track the processing.

For the result of the operation, handle mainly:

EventHow to handle it
TRANSFER_DONEConfirm the transfer as completed
TRANSFER_FAILEDRecord the failure and check failReason, when available
TRANSFER_CANCELLEDUpdate the operation as canceled

Other events may indicate intermediate steps, such as bank processing or blocking.

See Transfer events.

⚠️

Attention

This endpoint must not be used for payment initiation flows via Open Finance.

For Open Finance integrations, you must use a specific flow with:

  • user consent;
  • Open Finance integration;
  • the involvement of a payment initiation service provider (ITP).

Next steps


Did this page help you?