API Connector Action always sends initialization values instead of workflow values

Subject: API Connector Action Parameters Not Replacing Initialized Values (Mercado Pago PIX Integration)

Hello Bubble Support Team,

I am developing a SaaS platform in Bubble and integrating Mercado Pago PIX payments through the API Connector.

I have encountered a very unusual behavior that I have been unable to resolve after extensive testing.

Environment

Main Problem

The API Action always sends the values used during initialization instead of the dynamic values passed from the workflow.

Example

API Body:

{
  "transaction_amount": <valor>,
  "description": "Teste",
  "payment_method_id": "pix",
  "payer": {
    "email": "<email>"
  }
}

Body Parameters:

  • valor

  • email

The API initializes successfully.

Initialization values:

  • valor = 21

  • email = my email address

After initialization, I use a workflow action and pass:

  • valor = 999

  • email = Current User’s email

However, Mercado Pago always receives:

  • transaction_amount = 21

instead of:

  • transaction_amount = 999

Evidence

Workflow configuration clearly shows:

  • (body) valor = 999

  • (body) email = Current User’s email

The API Action executes successfully and creates the PIX payment.

Mercado Pago response:

{
  "transaction_amount": 21
}

The value always matches the initialization value.

Additional Tests Performed

  1. Created completely new API calls.

  2. Deleted previous API versions.

  3. Reinitialized multiple times.

  4. Changed X-Idempotency-Key values.

  5. Created simplified API versions with only transaction_amount and email.

  6. Confirmed the Action is configured as “Use as Action”.

  7. Confirmed dynamic parameters appear correctly in the workflow.

  8. Confirmed Bubble database fields change correctly.

  9. Confirmed Mercado Pago payment IDs are generated correctly.

  10. Confirmed the issue occurs even when hardcoding values such as 999 directly in the workflow.

Expected Behavior

When the workflow sends:

  • valor = 999

the API should send:

{
  "transaction_amount": 999
}

Actual Behavior

The API continues sending:

{
  "transaction_amount": 21
}

which was the initialization value.

Question

Is there any known issue, cache behavior, API Connector setting, parameter configuration, or workflow behavior that could cause an API Action to continue using initialization values instead of runtime workflow values?

Any guidance would be greatly appreciated.

Thank you very much for your support.

Best regards,

Edmilson Florencio da Costa
SARAED Empreendimentos Digitais

I am 65 years old and learning Bubble. I have spent many days testing this issue and would greatly appreciate any guidance from experienced Bubble developers or Bubble support.

Thank you very much.

Hey Edmilson, greetings from Brazil!

I think your setup is correct, but when you pass the value in the workflow, it’s probably empty, so API uses the default value ‘21’. In the API, check to ‘Allow blank’.

Then try to create a normal call and check what happens

You should always clean the value in API connector once initialized. Like @th18 said, Allow blank will avoid this. However, Blank in JSON is not the same as null. So you may, instead add a kind of terniary operators in your request (not in API connector)

In API connector you will have

{"key":<value>}

And in your action (or data request)

Dynamic data value’s is empty:formatted as text

In yes: null

in No: dynamic data:formatted as json-safe.

Hi I think you should take a look on your privacy rules setup. The dynamic value you are passing through the workflow is going empty and most probably its because of privacy rules.