YNAB "Date" Field getting automatically converted to serial date no matter what I input

:bullseye: What is your goal?

Input the date in the format of YYYY-MM-DD in the “Date” field of YNAB “Create a transaction” module.

:thinking: What is the problem & what have you tried?

When I input a date into the “Date” field of YNAB’s “Create a Transaction” module, the bundle always returns a serial date e.g. if I input 2027-07-30 the bundle gets sent as July 30, 2026 12:00 AM. I have tried inputting the date as formatDate(now;YYYY-MM-DD) but the result is the same. Is this something that YNAB changed or that Make.com is forcing the date to be converted to serial date?

Edit:
I have also noticed that if I put in an arbritary date in YYYY-MM-DD format in the “date” field and run the module, when I go to edit I find that 00:00 has been appended to my input. I cannot find a way to disable this.

On another note, if I input {{formatDate(now; "YYYY-MM-DD")}} in the “Memo” field, the input bundle seems to format it correctly (2027-07-30 with no time). I am puzzled why it does this for the “Memo” field but not the “Date” field.

:clipboard: Error messages or input/output bundles

Error:

[400] bad_request
date must be formatted as YYYY-MM-DD (index: 0)

Code: RuntimeError

Origin: YNAB

Input Bundle if I input 2027-07-30 in the “Date” Field:

Input

Bundle 1Collection
Budget ID	f1151afe-5bd7-4e62-a0bf-10d60ba50f2d
TransactionsArray
1Collection
Date	July 30, 2026 12:00 AM
Memo	2026-07-30
Amount	-250
Account ID	56785e5a-ed6e-4887-b66c-b18d93a46608
Payee Name	Octopus Card AAVS
Category ID	95115140-d557-4def-8ee0-dce174120b12

Input Bundle if I put {{formatDate(now; "YYYY-MM-DD")}} in the “Date” field:

Bundle 1Collection
Budget ID	f1151afe-5bd7-4e62-a0bf-10d60ba50f2d
TransactionsArray
1Collection
Date	July 30, 2026 12:00 AM
Memo	2026-07-30
Amount	-250
Account ID	56785e5a-ed6e-4887-b66c-b18d93a46608
Payee Name	Octopus Card AAVS
Category ID	95115140-d557-4def-8ee0-dce174120b12

:link: Create public scenario page

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

Hello @pointofgravity,

Make is automatically changing the formatting of the visible date to ‘July 30, 2026 12:00 AM’, but that is not what is send. If you hover over a formatted date, you will see the UTC timestamp:

That might even differ from the actual date that it send. You can see the actual payload with the Make DevTool

Have you tried the Make DevTool before? It is a Chrome Extension that gives you access to the actual requests and responses that are sent and received by your scenario. Chrome Extension: Make DevTool - Chrome Web Store

Tutorial: Introduction to Make Chrome DevTool (formerly Integromat DevTool)

Cheers,
Henk

Hi @Henk-Operative

I have installed and opene the Make DevTool. I can see that the raw payload is the UTC Timestamp:

However, I cannot seem to find a way to change this raw payload. Is that something I can do with Make DevTool? If not, do you have any suggestions on how to do it?

Thanks,

pointofgravity

Great, so we’ve ruled a few things out. It seems that the app is using a function internally to convert the given YYYY-MM-DD date back to UTC. We see that because the UTC timestamp in the payload is rounded to the hour.

This is working correctly as you can see.

I think this is a bug, you can open a ticket with the Customer Care team. The official Make support has access to internal systems and logs, and can help you with technical issues, bugs, and all other questions regarding Make.

When you receive a response, feel free to post it in the community to contribute to the knowledge base, we’re building here!

Cheers,
Henk

Thank you :folded_hands:

Hello,

I have opened the ticket #2245569 for this issue for anyone wanting to keep track of it. Hopefully it will get resolved soon.

Thanks,

Pointofgravity

If it is imperative that you finish the scenario, you can fall back on the Make an API call moduule in the YNAB app, using: YNAB API - Endpoints (v1)

Cheers,
Henk

Building on Henk’s point that the display is not the payload, the specific mechanism is worth spelling out, because it is likely your actual bug rather than only a display quirk.

A date-typed field in Make holds an instant, not a calendar date. When you enter 2026-07-30 it becomes midnight in your organization’s timezone. Serialized to UTC that is 2026-07-29T16:00:00Z if you are UTC+8, and the Octopus Card reference suggests Hong Kong. So YNAB can receive either the previous day or a full timestamp where it wanted a bare date. Off-by-one transaction dates almost always trace back to exactly this.

Two concrete things:

1. Check your organization timezone under Organization settings, then hover the date in the bundle as Henk described and compare the UTC timestamp against the date you intended. If the UTC date is one day earlier, that is your answer.

2. One detail nobody has flagged yet: the two input bundles in your post are identical. Both show Date as “July 30, 2026 12:00 AM”. If the second was meant to be the formatDate version, that edit did not take effect in the run you captured, so that approach has not actually been tested yet.

If it does turn out to be timezone coercion, the reliable workaround is to stop letting the field hold a date at all. Build the string yourself and send it through an HTTP “Make a request” module to YNAB’s transactions endpoint. More setup, but the value stops being reinterpreted on the way out and you can see precisely what left.

Hi @ClearStack and @Henk-Operative,

I have been able to get around the problem using the Make an API call module. Still, I hope Make resolves the issue with the Create a Transaction module as it makes things much easier.

Thanks,

Pointofgravity

Started having this issue a couple days ago, was working fine for a year and suddenly began having issues. I’ve tried several different variables to make the date format correctly but always get this error or some other.

This looks like a type conversion problem before the value reaches YNAB.

The first thing I would check is whether the date is leaving the previous module as a real date object, a text string, or a spreadsheet style serial value. If Make treats it as a date or number at any point, the YNAB module can still receive a converted value even when the field looked correct earlier in the scenario.

I would test it in three small steps:

  1. Add a Tools or Set variable step immediately before the YNAB module.
  2. Create one final field that forces the date into text with formatDate().
  3. Map only that forced field into YNAB.

For example, if the source value is already a date:

formatDate(yourDateField; “YYYY-MM-DD”)

If the source value is coming from Sheets or another app that may output a serial number, check the output bundle before the YNAB module. If it is already numeric there, fix it upstream before mapping it to YNAB.

The useful debugging test is to put the exact final value into a plain text log field or temporary row right before YNAB. If that log shows a 45800 style value, the fix is upstream. If the log shows YYYY-MM-DD but YNAB still receives a serial date, then it is likely the YNAB module field handling.