The documentation does not specify any limitations besides of having a non-empty value: https://api.spryngpayments.com/v1/#operation/createTransaction
But Stripe, for example, imposes a lot of limitations:
We’re limited to 22 characters for the charge descriptor and aren’t allowed to use the greater than, less than, single quote or double-quote symbols (>, <, ‘, “).