Skip to main content

Update only part of a customer's extra_data with the Open API

Ask us to turn on merge mode, so a customer PATCH changes only the extra_data keys you send and keeps the rest.

By default, when you update a customer with a PATCH request in Kolleno's Open API, the extra_data object you send replaces the stored object. Keys you do not send are removed.

If your system holds only some of those keys, we can turn on merge mode for your company. A PATCH then changes only the keys you send and keeps the rest.

This is off unless you ask for it, and we set it up for you.


What merge mode does

  • Keys you send are added or updated.

  • Keys you do not send keep their values.

  • A key sent as null is removed.

  • Only top-level keys are merged. A nested object is replaced as a whole.

  • An empty object {} changes nothing.

Example

Stored extra_data

PATCH body

Result

{"region": "North", "tier": "Gold", "old_ref": "X1"}

{"extra_data": {"tier": "Platinum", "old_ref": null}}

{"region": "North", "tier": "Platinum"}


Check before you ask

Merge mode applies to your whole company in Kolleno: every customer PATCH, from every API key and every integration your team owns.

⚠️ Check each integration that sends extra_data. If one of them sends a smaller object to drop old keys, those keys stay once merge mode is on. Change that integration to send each key it removes as null.

Merge mode does not change:

  • PUT requests. A PUT always replaces the full object.

  • Other objects. It applies to Customers only, not to extra_data on Invoices or Transactions.

  • Other ways data reaches Kolleno. File imports and your accounting integration work as before.


Ask us to turn it on

Email support@kolleno.com and tell us which Kolleno company needs merge mode. If you have more than one company, for example a test company and a live company, list each one.

You do not need to change your requests. The same URL, the same API keys and the same body format work after we turn it on.


What changes once it is on

  • PATCH with extra_data: the keys are merged as described above.

  • PATCH without extra_data: the stored extra_data is not touched.

  • Customer lookup: merge mode works the same when you address the customer by its UUID or with ?source=.

  • Two requests at the same time: if two PATCH requests update the same customer together, the keys from both are kept. If both send the same key, the later request wins.


Troubleshooting

What you see

What it usually means

Keys you did not send are gone

Merge mode is not on for that company,. Check the method, then contact us.

A key you stopped sending is still there

This is correct with merge mode on. Send the key as null to remove it.

Nothing changed after you sent an empty object

This is correct with merge mode on. An empty object has no keys to merge.

Did this answer your question?