Adobe Acrobat Sign · API & Custom Integration

Adobe Acrobat Sign API integration that holds up in production

Adobe Acrobat Sign API integration connects your own applications, portals and back-office systems to Acrobat Sign in code: agreements created through the REST API, status delivered by webhook, signing embedded in your product and signed data written back where it belongs. Twopir Consulting architects and builds those integrations, from the authentication model to retry handling, and the Apex services when Salesforce is the caller. Integrations your developers can still own after handover.

Agreement API Integration
YOUR CALLING SYSTEMS Your App or Portal Customer portal · Product UI Salesforce · Apex Package global services Back-Office Service Line-of-Business App Scheduled Job TWOPIR INTEGRATION LAYER Authenticate OAuth 2.0 · Scopes Integration key Create Documents · Agreements Web forms · URLs Listen Webhooks · Status Retry-After · Backoff REST API V6 · BASE URI PER SHARD · NO HARD-CODED HOSTS 2πr BACK IN YOUR SYSTEMS Signed PDF Stored Combined document filed by your app Form Data Mapped Signer values into your own records Status in Sync Webhook-driven, with polling as fallback AUTHENTICATE · CREATE · SIGN · NOTIFY · RETRIEVE
12+
Years Salesforce delivery
250+
Deployments delivered
40+
Consultants, architects and developers
15+
Certified platform partnerships

Trusted by 500+ organizations — including healthcare, legal and professional-services teams whose CRM, portals and business systems Twopir Consulting has connected.

Magnus Health
LegalZoom
Vinci Hair Clinic
Aventria
HairLineInk Healthcare

What We Build With

  • Salesforce Partner
  • Acrobat Sign REST API v6
  • OAuth 2.0
  • Integration Keys
  • Webhooks
  • Web Forms API
  • Signing URLs
  • Apex Services
Where Integrations Break

The first API call works. Production is different

Sending one agreement from a script takes an afternoon. Keeping thousands moving through a live system, with tokens expiring, rate limits applying and events arriving out of order, is a different job. These are the six faults we find most often when we review an existing Acrobat Sign integration.

Status checked by polling

A job asks every agreement for its status on a timer. Adobe's API usage guide warns that heavy polling can lead it to temporarily disable API access, and recommends webhooks instead.

No plan for throttling

Limits apply per user and per endpoint, by the minute, hour and day. Code that treats an HTTP 429 as a failure, or retries before the Retry-After interval, keeps getting throttled.

A hard-coded API host

Acrobat Sign accounts live on shards, and each account has its own API access point. An integration that skips the base URI lookup works in one account and fails in the next.

Agreements treated as instant

Agreement creation in v6 is asynchronous. Ask for a signing URL straight away and Adobe documents a 404 with DOCUMENT_NOT_YET_AVAILABLE, which naive code logs as a failed send.

Credentials tied to one person

An integration key inherits the permissions of the user who created it. When that person changes role or leaves, the integration's access changes with them, often without anyone noticing.

Webhooks nobody owns

Registration needs an endpoint that echoes the client ID back, and the URL cannot be changed once the webhook exists. Endpoints built in a hurry break on the first infrastructure move.

Definition

Acrobat Sign API integration, defined

An Adobe Acrobat Sign API integration is custom code that lets another system create, send, track and retrieve agreements in Acrobat Sign without a person working in the Acrobat Sign interface. It is built on the Acrobat Sign REST API (version 6), which any language that can make REST calls can use, with webhooks for status events. Inside Salesforce, the Acrobat Sign managed package adds a second developer surface: global Apex services for agreement templates and agreement actions.

It is the route to take when no packaged connector fits: a customer portal or product that needs signing in its own screens, an internal system Adobe does not list as an integration, or a Salesforce process that needs more than configuration. Adobe owns the API, its limits and the Acrobat Sign developer guide that documents it. Your systems remain the system of record. Twopir Consulting designs the architecture, writes and tests the integration code, and hands it over documented.

This page is about code. Packaged connectors for Microsoft, HR and ERP systems are covered under Acrobat Sign integration services; the package's setup, objects and mapping under Adobe Acrobat Sign Salesforce integration; no-code routing and reminders under Acrobat Sign workflow automation; and templates and text tags under Acrobat Sign document automation and templates. The whole engagement model is on our Adobe Acrobat Sign consulting and implementation page.

Architecture Decision

Six developer surfaces, one integration design

Acrobat Sign offers more than one way in for developers, and most production integrations combine several. The design question is which surface carries which job, so that sending, status, signing and data return each use the route Adobe built for them.

Capabilities as Adobe documents them; the "best for" column is Twopir's design guidance.
Developer surfaceWhat it doesBest forWhat to know before building
REST API v6 · agreementsUploads documents, creates agreements with participants, roles and signing order, sends reminders and returns the signed PDF and form data.Any system that starts agreements on its own: a portal, a product, a back-office service.Creation is asynchronous. Agreements move through DRAFT, AUTHORING and IN_PROCESS, and form fields can be added only while in AUTHORING.
WebhooksPush events to your endpoint when an agreement, web form or bulk send changes, registered at account, group, user or single-resource scope.Keeping your records current without polling.The endpoint must pass Adobe's verification handshake, and account or group webhooks need an account or group admin to register them.
Web forms APICreates web forms (called widgets in the API) and returns embed code and a hosted URL; form data and the agreements behind it can be read back.Forms the counterparty starts, embedded in your own site or app.Every submission creates a separate agreement, so your data model needs one record per submission.
Signing URLsReturns the URL at which a participant signs, so your application can open it directly; a post-sign redirect can bring the signer back.Hosted or in-person signing inside your own flow, such as a tablet at a counter.Request it once the agreement is out for signature, not straight after creation.
Salesforce · global Apex servicesThe package's AgreementTemplateService loads agreement templates with runtime variables; EchoSignApiService sends, reminds, cancels, updates and returns signing URLs.Salesforce processes that need more than Flow and configuration can do.The batch services process records in sets of five to stay within governor limits; design volumes around that.
Salesforce · Apex REST serviceA package REST endpoint that loads an agreement template against a Salesforce record when an outside system calls it, and returns the agreement ID.An external system that should start a Salesforce-owned agreement.The caller authenticates to Salesforce, not to Acrobat Sign, so Salesforce access control applies.
Authentication

OAuth or integration key: decide it first

How the integration authenticates decides whose permissions it carries, how long its access lasts and what happens when people change roles. Acrobat Sign supports two models, and they suit different jobs.

As documented in Adobe's Application Quickstart and integration key guide.
QuestionOAuth 2.0 API applicationIntegration key
Whose access it usesThe user who signs in and consents, limited to the scopes the application requests.The user who created the key, limited to the scopes chosen at creation.
Who can use itApplications in your own account (CUSTOMER domain), or across other accounts (PARTNER domain, which Adobe must certify).Enterprise accounts only.
How long access lastsAn access token valid for an hour, renewed with a refresh token; the authorization code itself is valid for five minutes.Ten years from creation. The name and scopes cannot be edited afterwards.
How far its reach goesScope modifiers set the reach: self, group or account. Group and account need an admin and a Business or Enterprise plan.Whatever the creating user can do, within the chosen scopes.
Built forApplications where users act as themselves, and products used by many Acrobat Sign accounts.System-to-system integrations with no interactive sign-in.
Our default for portals and apps

OAuth, with the narrowest scopes that work

Each user's actions run as that user, so the Acrobat Sign audit trail names a real person. We request only the scopes the integration uses, store refresh tokens as secrets, and design for the API access point that comes back with the token.

Access follows people, and it can be revoked without a release.

Our default for back-office jobs

An integration key on a dedicated user

Where a server process sends on the organization's behalf, we create the key on a user that exists only for the integration, with just the scopes it needs, and record who owns it. Because a key cannot be edited, a scope change means a new key and a planned swap.

Access no longer depends on one employee's account.

What We Build

Six parts of a production Acrobat Sign integration

An integration is more than the calls that send a document. These are the six workstreams in a typical engagement; smaller projects use a subset, and every one is built against Adobe's documented endpoints.

Agreement Creation

Documents and agreements created from your data, with the right participants in the right order, and the reusable parts kept in Acrobat Sign rather than re-uploaded each time.

  • Transient uploads, used within their seven-day life
  • Library documents for content that repeats
  • Signer, approver, acceptor and form-filler roles
  • Form fields placed by anchor text
  • Draft and authoring states where a person reviews

Event-Driven Status

Your system hears about views, signatures, declines and completion when they happen, instead of asking every few minutes.

  • Webhook endpoints that pass Adobe's verification
  • Account, group, user or resource scope chosen per need
  • Idempotent handlers that tolerate repeat events
  • Polling with backoff only where webhooks cannot reach

Embedded & In-Person Signing

Signing that happens inside your portal or at your counter, with the signer returned to your application when they finish.

  • Signing URLs requested once the agreement is out for signature
  • Post-sign redirect back into your product
  • Web forms embedded with the code the API returns
  • Hosted signing on a tablet for in-person signers

Data Return & Storage

What the signer typed and the signed PDF land in the system that needs them, with the agreement ID kept as the key between the two systems.

  • Combined signed PDF and supporting documents
  • Form field data mapped to your records
  • Web form submissions matched to their agreements
  • Templates generated from signed agreements where useful

Salesforce Apex Development

When Salesforce is the caller, code goes through the package's documented global services, so Adobe's upgrades keep reaching your org.

  • Template loads with runtime recipients and documents
  • Reminders, cancellations and recipient changes in Apex
  • Batch classes sized to their sets of five
  • Triggers on agreement, recipient and event objects
  • The Apex REST service for outside callers

Resilience & Operations

The parts nobody demos: what the integration does when Acrobat Sign says slow down, when a token expires, or when an account moves shard.

  • HTTP 429 handled with Retry-After and exponential backoff
  • Base URI resolved, cached and re-resolved on error
  • Token refresh and secret storage
  • Search queries in place of bulk status loops
  • Logging, alerting and a recovery runbook
Call Sequence

One agreement, call by call

The basic Acrobat Sign workflow is send, track and retrieve. In production each step has a detail that decides whether it survives load. This is the sequence we build, with the documented endpoint for each step and the point where integrations usually go wrong.

1 · Find the Account's Shard

Every account has its own API access point. The integration asks for it rather than assuming one host.

Call
GET /api/rest/v6/base_uris
Keep
The api_access_point, cached per account
Watch for
INVALID_API_ACCESS_POINT: resolve again

2 · Upload the Document

One file per request, as a multipart upload. Content reused across agreements belongs in the library instead.

Call
POST /transientDocuments
Keep
The transientDocumentId
Watch for
It is available for seven days only

3 · Create the Agreement

Participants, roles, order and state set in one request. Inputs are validated first, because a bad email fails the call.

Call
POST /agreements
Keep
The agreementId, stored on your record
Watch for
Processing continues after the call returns

4 · Listen for Events

A webhook tells your system when the agreement changes. Polling stays as a fallback for systems behind a firewall.

Call
POST /webhooks
Keep
The webhook ID, scope and owner
Watch for
The X-AdobeSign-ClientId check on your endpoint

5 · Sign In Your Product

Optional. When signing happens in your own screens, the integration fetches the signer's URL and opens it.

Call
GET /agreements/{agreementId}/signingUrls
Keep
Nothing: request it when the signer is ready
Watch for
A 404 before processing ends is not a failure

6 · Retrieve the Result

When the agreement completes, the signed PDF and the signer's field values are pulled back into your system.

Call
GET /agreements/{agreementId}/combinedDocument
Keep
The signed PDF and its form data
Watch for
Supporting documents come from a separate call

Endpoint names and behaviour as published in Adobe's API best practices. Comparing e-signature platforms for the same build? See how we approach DocuSign API integration.

Salesforce Developers

When Salesforce is the calling system

In a Salesforce org with the Acrobat Sign package, most custom code does not need to call the REST API at all. The package publishes its own extension points, and code built on them keeps working across Adobe's package upgrades. These are the ones Adobe documents, and what we use each for.

Extension points from Adobe's Acrobat Sign for Salesforce developer guide; package namespace echosign_dev1.
RequirementDocumented extension pointWhat we watch for
Create an agreement from a template in codeAgreementTemplateService.load, with a master record and runtime variables for recipients and documents.Templates stay admin-maintained; code passes only what changes per record.
Act on agreements already createdEchoSignApiService: send, remind, cancel, remove, update, document info, signing URLs, and changeRecipient from version 24.14.Version gates. Methods added in later releases are checked against the installed package.
Process many records at onceEchoSignActionBatch, AgreementTemplateBatch and AgreementTemplateServiceBatch.They run in sets of five to respect governor limits, which sets how long a large run takes.
React when signing progressesTriggers on agreement status, on the signed file, on recipients and on agreement events, as Adobe recommends.The package's own update order, and queueable jobs chained off its updates, which can hit the queueable limit.
Let an outside system start a Salesforce agreementThe package's Apex REST service, which loads a template against a master record and returns the agreement ID.The caller's Salesforce access, and what happens on its side when the call returns an error.

Configuration first, code second. Package setup, agreement templates and merge and data mapping are configuration, covered under Adobe Acrobat Sign Salesforce integration; Flow-based sending is under Acrobat Sign workflow automation. We write Apex only where those stop. Source: Adobe's Salesforce developer guide.

Delivery Process

From architecture review to an integration you own

Custom integration timelines depend on how many systems are involved, how many agreement types they send, and how much existing code there is to work around. We estimate after the architecture phase, once those are known, not before.

Phase 01

Architecture Review

We map the calling systems, the agreement types, the volumes and the system of record for each piece of data, and review any integration code already running.

DeliverableIntegration architecture and data contract

Phase 02

Access & Environments

The authentication model and scopes agreed, the API application or integration key set up, and a separate Acrobat Sign sandbox requested through Adobe where your account can have one.

DeliverableWorking credentials outside production

Phase 03

Build

Agreement creation, webhook handlers, signing and data return written against the documented endpoints, in short iterations demoed to your team.

DeliverableWorking integration in a test environment

Phase 04

Harden

Throttling, retries, token refresh, shard changes, duplicate events and partial failures handled, with logs that say what went wrong and where.

DeliverableError-handling design and alerting

Phase 05

Test the Failure Paths

Not only a clean signature: declines, cancellations, an expired upload, a 429 response, a webhook endpoint that is down, and two systems acting on one agreement.

DeliverablePassed test matrix and sign-off

Phase 06

Release & Hand Over

Deployed with a rollback plan, documented for the developers who will own it, and rechecked after Acrobat Sign API or package changes.

DeliverableLive integration, runbook and code walkthrough

Client Outcome

Signing status back on the record, without retyping

We have no published Adobe Acrobat Sign case study, and we will not present another tool's results as one. This engagement used Nintex and PandaDoc. It is shown because the integration problem is the one this page is about: document data out of Salesforce, signature status and results back in, with no one copying values between systems. Each figure is scoped to that engagement.

Same Integration Problem

Agents used to copy deal data into Word templates and email PDFs for signature. After the build, contracts, offer letters and KYC forms were generated from Salesforce opportunity data at the document stage, and their signing status was written back to the opportunity, so managers could see which deals were waiting, signed or stuck.

What carries over to Adobe Acrobat Sign The data contract and the status write-back. The signing tool was different.
Case Study · Nintex + PandaDoc

UAE Luxury Real Estate Conglomerate

250+ agents on one Salesforce platform, delivered in three phases.

<4 hrs Average contract turnaround, from 2–3 days
80% Less manual data entry
40% Faster deal closures
Read the Full Case Study
Why Twopir

Integration engineering from CRM architects

A custom e-signature integration touches your CRM, your data model and whatever else already writes to those records. It holds up when the people building it understand all three, not only the API. We help growing and mid-market companies solve complex CRM, integration, and business system challenges, and enterprise teams bring us the same work at larger scale.

We decide what should be code

Before writing an integration, we check whether a packaged connector or the Salesforce package's configuration already does the job. Code is for what they cannot do, and we say so in the architecture review.

We build to Adobe's documented behaviour

Asynchronous creation, shards, throttling, webhook verification and token lifetimes are designed in from the start, from Adobe's developer guide rather than from trial and error in production.

We know the Salesforce side in depth

Governor limits, sharing, the package's own triggers and its update order. When Salesforce is one end of the integration, that knowledge is what keeps the two from fighting.

We stay on supported extension points

The public REST API, webhooks and the package's global Apex services. No screen scraping and no edits to the managed package, so Adobe's releases do not break what we built.

Your developers can take it over

Documented code, a runbook and a walkthrough with the team that will own it. If you want us to stay, Salesforce support and managed services cover the integration too.

Common Questions

Acrobat Sign API questions, answered plainly

It depends on who the integration acts for. OAuth suits applications where users act as themselves, or a product used by many Acrobat Sign accounts: each user consents, the application gets an access token valid for an hour plus a refresh token, and scopes limit what it can do. An integration key suits a system-to-system job with no sign-in: it is available on enterprise accounts, carries the permissions of the user who created it, lasts ten years and cannot be edited. For keys we use a dedicated integration user, so access does not depend on one employee's account.

Use webhooks wherever your system can receive them. Adobe recommends them over polling and warns that heavy polling can lead it to temporarily disable API access. Polling remains a documented fallback, for example when the receiving system sits behind a firewall; when we use it, we poll only agreements that are still in progress, back off between calls and stop once the agreement reaches a final state. Webhook endpoints have to answer Adobe's verification request by echoing the application's client ID, and a webhook's URL cannot be changed after it is created, so we put them on a stable address.

Yes. Once an agreement is out for signature, the API returns the signing URL for each participant, and your application can open it in its own flow or on a tablet for in-person signing. A post-sign redirect can return the signer to your application when they finish. For forms the customer starts, the web forms API returns embed code for your site and a hosted URL. One timing detail matters: agreement creation is asynchronous, so a signing URL requested too early can return a 404 that only means processing has not finished.

Acrobat Sign answers with HTTP 429 and a Retry-After value. Limits apply per user and per endpoint, at minute, hour and day levels, and the rate depends on your plan. Since May 2025 Adobe also throttles under high system load, and accounts created after 20 May 2025 are penalised for retrying before the interval ends. We build every call path to wait for the Retry-After interval, back off exponentially and queue work rather than drop it, and we ask Adobe support about higher limits when volumes justify them.

In an org with the Acrobat Sign package, start with the package's global Apex services. AgreementTemplateService creates agreements from admin-maintained templates, EchoSignApiService acts on existing agreements, and the agreements stay on the package's Salesforce objects, with its status updates and data mapping. Calling the REST API directly from Apex means rebuilding much of that yourself. We reserve direct calls for requirements the package does not expose, and say which ones in the architecture review.

Yes. The Acrobat Sign package includes an Apex REST service that loads an agreement template against a Salesforce master record when another system calls it, and returns the new agreement ID or an error. The agreement is then created and tracked in Salesforce like any other. The calling system authenticates to Salesforce, so its access is governed by your Salesforce security model, and we design what it does when the call fails.

Usually, yes. Acrobat Sign supports a separate sandbox environment, which Adobe enables through your customer success manager, and the Salesforce package can be pointed at it by setting the environment name to Sandbox in its environment settings. We build and test there with credentials created for that environment, and promote to production only after the failure paths have passed. If your account has no sandbox, we agree a test approach with you before any code runs against production.

Next Step

Bring the integration, we will review it

A first conversation covers the systems that need to send or receive agreements, how they would authenticate, and where an existing integration is struggling: enough to say whether code is the right answer and what the first build would involve. No obligation to proceed.

Talk to a Salesforce architect who builds on the Acrobat Sign API