Transfer events

You can use webhooks for your system to be notified about changes that occur in bank transfers and transfers between Asaas accounts. The events that Asaas notifies are:

  • TRANSFER_CREATED - Creation of a new transfer.
  • TRANSFER_PENDING - Transfer pending execution.
  • TRANSFER_IN_BANK_PROCESSING - Transfer in bank processing.
  • TRANSFER_BLOCKED - Transfer blocked.
  • TRANSFER_DONE - Transfer completed.
  • TRANSFER_FAILED - Transfer failed.
  • TRANSFER_CANCELLED - Transfer cancelled.

Example of JSON to be received for bank transfers [POST]

The notification consists of a POST containing a JSON, as in this example:

{
    "event": "TRANSFER_CREATED",
    "transfer": {
        "object": "transfer",
        "id": "777eb7c8-b1a2-4356-8fd8-a1b0644b5282",
        "dateCreated": "2019-05-02",
        "status": "PENDING",
        "effectiveDate": null,
        "endToEndIdentifier": null,
        "type": "BANK_ACCOUNT",
        "value": 1000,
        "netValue": 1000,
        "transferFee": 0,
        "scheduleDate": "2019-05-02",
        "authorized": true,
        "failReason": null,
        "transactionReceiptUrl": null,
        "bankAccount": {
            "bank": {
                "ispb": "00000000",
                "code": "001",
                "name": "Banco do Brasil"
            },
            "accountName": "Conta Banco do Brasil",
            "ownerName": "Marcelo Almeida",
            "cpfCnpj": "***.143.689-**",
            "agency": "1263",
            "agencyDigit": "1",
            "account": "26544",
            "accountDigit": "1",
            "pixAddressKey": null
        },
        "operationType": "TED",
        "description": null
    }
}

Example of JSON to be received for bank transfers via Pix

The notification consists of a POST containing a JSON, as in this example:

{
    "event": "TRANSFER_CREATED",
    "transfer": {
        "object": "transfer",
        "id": "777eb7c8-b1a2-4356-8fd8-a1b0644b5282",
        "dateCreated": "2019-05-02",
        "status": "PENDING",
        "effectiveDate": null,
        "endToEndIdentifier": null,
        "type": "BANK_ACCOUNT",
        "value": 1000,
        "netValue": 1000,
        "transferFee": 0,
        "scheduleDate": "2019-05-02",
        "authorized": true,
        "failReason": null,
        "transactionReceiptUrl": null,
        "bankAccount": {
            "bank": {
                "ispb": "00000000",
                "code": "001",
                "name": "Banco do Brasil"
            },
            "accountName": "Conta Banco do Brasil",
            "ownerName": "Marcelo Almeida",
            "cpfCnpj": "***.143.689-**",
            "agency": "1263",
            "agencyDigit": "1",
            "account": "26544",
            "accountDigit": "1",
            "pixAddressKey": null
        },
        "operationType": "PIX",
        "description": "Transfer carried out via manual Pix"
    }
}

Example of JSON to be received for bank transfers via Pix with a key

The notification consists of a POST containing a JSON, as in this example:

{
    "event": "TRANSFER_CREATED",
    "transfer": {
        "object": "transfer",
        "id": "777eb7c8-b1a2-4356-8fd8-a1b0644b5282",
        "dateCreated": "2019-05-02",
        "status": "PENDING",
        "effectiveDate": null,
        "endToEndIdentifier": null,
        "type": "BANK_ACCOUNT",
        "value": 1000,
        "netValue": 1000,
        "transferFee": 0,
        "scheduleDate": "2019-05-02",
        "authorized": true,
        "failReason": null,
        "transactionReceiptUrl": null,
        "bankAccount": {
            "bank": {
                "ispb": "00000000",
                "code": "001",
                "name": "Banco do Brasil"
            },
            "accountName": "Conta Banco do Brasil",
            "ownerName": "Marcelo Almeida",
            "cpfCnpj": "***.143.689-**",
            "agency": "1263",
            "agencyDigit": "1",
            "account": "26544",
            "accountDigit": "1",
            "pixAddressKey": "09413412375",
        },
        "operationType": "PIX",
        "description": "Transfer carried out via Pix with a key"
    }
}

Example of JSON to be received for transfers between Asaas accounts [POST]

The notification consists of a POST containing a JSON, as in this example:

{
    "event": "TRANSFER_CREATED",
    "transfer": {
        "object": "transfer",
        "id": "dc0cd262-5050-4c82-bddc-dc2463f7ff07",
        "dateCreated": "2021-01-01",
        "status": "DONE",
        "effectiveDate": "2021-01-01 13:32:12",
        "endToEndIdentifier": null,
        "type": "ASAAS_ACCOUNT",
        "value": 1000,
        "transferFee": 0,
        "scheduleDate": "2021-11-17",
        "authorized": true,
        "walletId": "1f7184ab-9671-4f43-9ab5-c2349e7bf61",
        "account": {
            "name": "Marcelo Almeida",
            "cpfCnpj": "***.143.689-**"
        },
        "transactionReceiptUrl": "https://www.asaas.com/comprovantes/8962440029817277",
        "operationType": "INTERNAL",
        "description": null
    }
}

🚧

Attention

  • Transfers between Asaas accounts are performed instantly. If event critical validation via APP Token or SMS Token is enabled for scheduling transfers, the transfer will remain pending until the validation is performed.
  • Pix transfers not scheduled are performed instantly. APP Token and SMS Token must be disabled.

🚧

  • With the introduction of new products and functionalities within Asaas, it's possible that new attributes may be included in the Webhook. It's very important that your code is prepared not to generate exceptions if Asaas returns new attributes not handled by your application, as this could interrupt the synchronization queue.
  • We will send an email and notify on our Discord when new fields are included in the Webhook. The notification will be sent to the email defined in the webhook settings.