These examples passed the identified Sandbox run.
Use credential setup and an
APPLICATION_ID from a
successful creation.Poll status
status, signing.accepted and artifacts.state independently. The
status endpoint contains no raw protected answers or merchant bearer URL.
Poll with backoff, honor Retry-After on 429, and stop at your desired durable
state. All GETs share the 120-attempt per-caller/60-second limit; do not use a tight loop.
Retrieve current answers
fieldStates distinguishes
available, absent and not_applicable; do not interpret missing/unreadable
protected authority as a masked success. Unreadable authority returns
protected_data_unavailable; there is no fallback to signed snapshots or current
pricing defaults. Access audit must commit before sensitive data is released.
Current answers are not a reconstruction of the immutable signed packet. Keep
the two uses separate. Never print this response to a shared terminal, browser
console, analytics system or support ticket.
Download immutable artifacts
Afterartifacts.state is finalized, choose the returned versionId. The
following uses the trusted, configured API base and the documented PDF route:
esignature_certificate for the certificate and a separate output file.
Check the HTTP result before treating an output file as a PDF: an error body can
also be written to the named file. Downloads recheck scope, immutable lineage,
size and checksum, then commit access audit before releasing bytes. They do not
regenerate artifacts or expose raw storage URLs. The object limit is 20 MiB;
range delivery is not supported.
Inaccessible versions return 404; unfinished artifacts return 409 artifact_not_ready;
storage/integrity failures return 503 artifact_unavailable. Do not follow an
untrusted URL with your credential or substitute another partner’s identifiers.