Send ACAM Customers Data


  • This is only used if your company is enabled to automatically integrate with ACAM.
  • Once exchange orders are created using the Create Order endpoint, the ACAM_WAITING_CUSTOMERS webhook is triggered after the process is completed between us and the bank handling the exchange. The following event information will be needed for the next steps:
    • id: This is the acamId, and it will be used to send customer data.
    • brlAmount: The amount converted to Brazilian currency (BRL).
    • foreignAmount: The amount in the foreign currency.
    • orders: The IDs of all orders related to this ACAM.
  • The total amount of all customers should match either brlAmount or foreignAmount, depending on the currency you choose.
  • If the total amount for all customers does not match either brlAmount or foreignAmount, an error will occur.
  • If your company is not regulated by BACEN, each customer can only exchange up to 10,000.00 USD (or the equivalent amount in BRL) per ACAM. If a customer exceeds this limit, an error will occur.
  • After submitting all customer data and passing the validation above, the information will be sent for further review by our compliance team. At this step, you will receive an ACAM_REVIEWING webhook.
  • If the customer data is valid, you will receive an ACAM_VALID webhook. If not, we will send an ACAM_FAILED webhook.

How to Send Customer Data

To send customer data, you need to call the Send customer data endpoint:

curl --request POST \
     --url{{acamId}}/customers \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
  "customers": [
      "taxId": "12345678909",
      "name": "Customer Test",
      "amount": {
        "value": 1500000,
        "currency": "USD"
      "merchant": {
        "name": "John Store 321",
        "country": "US"


  • {acamId}: This is the id from the ACAM_WAITING_CUSTOMERS webhook in the previous step.
  • customers: This is an array of customers related to the orders in the ACAM_WAITING_CUSTOMERS webhook.
    • taxId: This is the customer's tax ID, which can be either CPF or CNPJ.
    • name: This is the customer's name.
    • amount: This object represents the monetary amount. For more details, refer to the Data Conventions for monetary amounts.
      • value: This is the monetary amount the customer is exchanging.
      • currency: This is the currency the customer is using for the exchange. You can choose either the brlAmount or the foreignAmount attribute from the ACAM_WAITING_CUSTOMERS webhook.
    • merchant: This field is optional and is intended for clients who have an intermediary who is not the final customer of the transaction. They can provide the intermediary's information in this field to be considered when filling out the ACAM. If this field is not filled out, we will use the information of the Merchant responsible for the foreign exchange orders.
      • name: The merchant name.
      • country: The merchant country (BR, US, UK, AR...).

Resulting Status:

  • The endpoint will respond with a status code of 201 if all validations pass. For information on possible errors, refer to the Send customer data endpoint.

Sandbox Environment

  • In the sandbox environment, we simulate the exchange process with the bank, so you will need to wait approximately 30 minutes to receive the ACAM_WAITING_CUSTOMERS webhook.
  • If you wish to perform a failure test, simply enter the value 12345678909 in the taxId field and send it to us.
  • If any taxId other than the one mentioned above is sent, a valid response will be produced.


  • The ACAM_WAITING_CUSTOMERS webhook is triggered to send us the customer data.
  • The ACAM_REVIEWING webhook is triggered when the ACAM review is in progress.
  • The ACAM_VALID webhook is triggered when the ACAM review is successful.
  • The ACAM_FAILED webhook is triggered when the ACAM review fails.