Developers

The e-signature API for developers.

An API-first product with predictable REST resources — envelopes, documents, recipients, and fields — plus webhooks and a drop-in signing iframe. Every completed envelope returns a PAdES-sealed PDF and a Certificate of Completion, so you never build compliance plumbing yourself.

Quickstart

Create an API key, then send your first envelope with a single request. The base URL is https://api.vxsign.com.

# Create and send an envelope
curl -X POST https://api.vxsign.com/v1/envelopes \
  -H "Authorization: Bearer $VXSIGN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "document_url": "https://files.acme.com/msa.pdf",
    "signers": [{ "email": "[email protected]", "name": "Sam Rivera" }],
    "routing": "sequential"
  }'

Authentication

Requests are authenticated with a bearer API key. Keep keys server-side; never ship them to a browser or mobile client.

Authorization: Bearer vxs_live_xxxxxxxxxxxxxxxx

API reference

A conceptual overview of the core resources. See the full reference for parameters and response shapes.

Method & pathDescription
POST /v1/envelopesCreate and send an envelope (documents, signers, routing, fields).
GET /v1/envelopes/{id}Retrieve an envelope’s status and signers.
POST /v1/envelopes/{id}/recipientsAdd a recipient (draft only).
POST /v1/envelopes/{id}/fieldsPlace a field for a recipient (draft only).
POST /v1/envelopes/{id}/sendSend a prepared envelope for signature.
POST /v1/envelopes/{id}/signing-sessionsCreate a short-lived embedded signing session.
GET /v1/envelopes/{id}/certificateDownload the sealed PDF and Certificate of Completion.

Webhooks

Signing is asynchronous — subscribe to events instead of polling. Verify the signature on each payload before trusting it.

# Events: envelope.sent, envelope.viewed, signer.completed,
#         envelope.completed, envelope.declined, envelope.expired
{
  "type": "envelope.completed",
  "data": { "envelope_id": "env_123", "sealed_sha256": "9f2c…" }
}

Embedded signing

Create a signing session over REST, then mount it anywhere in your app with embed.js. With white-label branding, signers never leave your product.

<div id="vxsign"></div>
<script src="https://embed.vxsign.com/embed.js"></script>
<script>
  VXSign.mount("#vxsign", {
    session: SIGNING_SESSION_TOKEN,
    onCompleted: () => location = "/done"
  });
</script>

The SDK relays onReady, onCompleted, onDeclined, and onError events. To embed on your domain, allow the frame in your frame-ancestors CSP directive.

API keys

Create, rotate, and revoke keys from the dashboard. Test and live keys are separate. Store keys as secrets in your backend environment.

Treat API keys like passwords. If a key is exposed, revoke it immediately and issue a new one — revocation takes effect at once.