Skip to content

Conversation

@rh0mb
Copy link

@rh0mb rh0mb commented Jul 22, 2025

This PR fixes an issue where the SDK was incorrectly sending allowed_signature_methods as a Python string instead of a JSON array, causing a 500 Internal Server Error when using mixed signature types like FEA and FESCV.

What’s changed

  • In the Document.create() method, the allowed_signature_methods field is now properly serialized using json.dumps() before being sent in the form data.

Why

The Mifiel API expects allowed_signature_methods to be a JSON array (e.g. ["FEA"]), not a Python string like "['FEA']" or "FEA,FESCV". The previous version of the SDK unintentionally broke this compatibility when posting multipart/form-data requests.

rh0mb added 3 commits July 22, 2025 10:58
This PR fixes an issue where the SDK was incorrectly sending `allowed_signature_methods` as a Python string instead of a JSON array, causing a 500 Internal Server Error when using mixed signature types like `FEA` and `FESCV`.

### What’s changed
- In the `Document.create()` method, the `allowed_signature_methods` field is now properly serialized using `json.dumps()` before being sent in the form data.

### Why
The Mifiel API expects `allowed_signature_methods` to be a JSON array (e.g. `["FEA"]`), not a Python string like `"['FEA']"` or `"FEA,FESCV"`. The previous version of the SDK unintentionally broke this compatibility when posting multipart/form-data requests.
…part/form-data

Previously, allowed_signature_methods was being serialized either as a plain string or using indexed keys (e.g., [0], [1]), which resulted in incorrect array parsing by the Mifiel API backend.

This commit updates the serialization to use the `[]` syntax:
  signatories[0][allowed_signature_methods][]=FEA
  signatories[0][allowed_signature_methods][]=FESCV

This is a widely supported format for arrays in multipart/form-data and ensures compatibility with the backend’s expected structure.

Also removes the use of json.dumps, which was turning arrays into escaped strings instead of sending them as proper arrays.
Replaced internal data structure with a list of tuples to correctly handle
multiple allowed_signature_methods for each signer in multipart/form-data.

This change ensures repeated keys are preserved, allowing the backend
to receive arrays like:

  signatories[0][allowed_signature_methods][]=FEA
  signatories[0][allowed_signature_methods][]=FESCV

instead of silently overwriting values when using a dict.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants