The generate() function always includes PaymentDueDate in the generated data even if it is called without any date for it. According to the XSD spec at https://bsqr.co/schema/ the PaymentDueDate element is optional. But there seem to be no way to have generate() generate data without any date for PaymentDueDate. It always puts a date into the code. When not provided by the caller it uses the current date:
$ python3
Python 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pay_by_square import generate
>>>
>>> # call without any date
>>> generate(amount=123, iban='SK7700000000000000000000')
'000480008M281NMNP30CU6FFUCP8579BUP8A3L1LQ1QMMQPUBGMUKU2KOQ37I3HH4LNS5QSBVGUK54VVVVATI000'
>>>
>>> exit()
$
$ # decode result with https://github.com/xseman/bysquare to verify
$ docker run -it --rm --mount type=bind,src=/tmp/pay_by_square/xseman/bysquare,dst=/mnt/bysquare \
> node /mnt/bysquare/node_modules/bysquare/dist/cli.js --decode \
> 000480008M281NMNP30CU6FFUCP8579BUP8A3L1LQ1QMMQPUBGMUKU2KOQ37I3HH4LNS5QSBVGUK54VVVVATI000
{
"payments": [
{
"bankAccounts": [
{
"iban": "SK7700000000000000000000"
}
],
"type": 1,
"currencyCode": "EUR",
"amount": 123,
"paymentDueDate": "20240123"
}
]
}
The
generate()function always includesPaymentDueDatein the generated data even if it is called without any date for it. According to the XSD spec at https://bsqr.co/schema/ thePaymentDueDateelement is optional. But there seem to be no way to havegenerate()generate data without any date forPaymentDueDate. It always puts a date into the code. When not provided by the caller it uses the current date: