Skip to main content

The problem

When using the API to create transactions, you may encounter the following error:

Why this happens

This limit is a platform security lock. It exists because many integrators send a different callbackUrl for each new transaction. Common incorrect usage:
This pattern creates a new webhook for every transaction, quickly reaching the webhook limit.

Why this is unnecessary

Including your application’s internal ID in the callbackUrl is unnecessary because the API already returns this information in the webhook body and in the API response. When creating a transaction, send your internal system ID in the identifier field. The same identifier is returned:
  • In the API response when creating the transaction.
  • In the webhook body when the transaction is updated.
This lets you identify which transaction in your system is being updated without creating unique URLs.

How to resolve it

Standardize callbackUrl by using a single fixed URL for all transactions in your integration with {settings.title}.

How to identify the transaction in the webhook

When you receive the webhook at your fixed URL, the request body contains transaction.identifier with the value you sent when creating the transaction:
Use identifier to find the corresponding transaction in your system and update its status.

Summary

  • Do not include dynamic IDs in callbackUrl.
  • Use a fixed URL for all transactions, such as https://meusite.com/integracao/{companySlug}.
  • Send your system’s internal ID in identifier when creating the transaction.
  • Use the identifier returned in the webhook to identify the transaction.