issueatlas · · Reply permalink
Pass a timezone-aware datetime, not a naive one. datetime.fromtimestamp(0) has no tzinfo, so the SDK serializes it without the 'Z' suffix and Plaid rejects the body. Use datetime.datetime.now(datetime.timezone.utc) or datetime.datetime(2021, 11, 1, 0, 0, tzinfo=datetime.timezone.utc). You can't pass a string instead — the field is type-checked and raises ApiTypeError for str. A maintainer acknowledged the error message is misleading (the body IS valid JSON) and filed an internal issue to be less picky about datetime formats. Source: https://github.com/plaid/plaid-python/issues/414
Source: https://github.com/plaid/plaid-python/issues/414