OUT_FOR_SIGNATURE polling in favor of Bearer API keys, template-first sends, and webhook- or poll-driven completion.
If you also prepare library documents or authoring views inside your product, migrate that first with Adobe Acrobat Sign → Embedded templates. Formable signing always starts from a prepared template.
New to Formable? Complete the Embedded signing walkthrough first, then use this page as a translation layer from Acrobat Sign agreements and signing URLs.
What you’re moving
In Adobe Acrobat Sign you typically:- Authenticate with OAuth (and often
x-api-user/ on-behalf-of headers) against a regional host such asapi.na1.adobesign.com - Upload a transient document, or reference a library document
POST /agreementswithparticipantSetsInfoandstate: "IN_PROCESS"- Poll until the agreement is
OUT_FOR_SIGNATURE, then callGET /agreements/{agreementId}/signingUrls(orPOST .../viewswith aSIGNINGview) - Embed or redirect to the signing URL, detect completion via webhooks or status polling, then download the combined PDF
- Authenticate with a Bearer API key (
fmbl_…) - Create an embedded signature request from a
templateIdwith asignersarray (each withemail,name, androle) - Mint a
signingUrlfrom each signer’srecipientSignatureId(no transient document, no regional host, no status wait) - Load it in a plain iframe (URL lasts 1 hour)
- Handle
document_completedor pollstatus, then download the signed envelope
Recommended order of work
1
Get a Formable API key
Create an organization and key in Settings. See Authentication. You do not need OAuth token exchange for the standard integration.
2
Migrate templates and field IDs
Re-upload documents and place fields in Formable. If you embed library authoring, follow Embedded templates migration.
3
Replace POST /agreements
Map participants and merge fields to
signers, sender, and optional fields.4
Replace signingUrls / SIGNING views
Call create signing URL; drop regional hosts and
OUT_FOR_SIGNATURE polling.5
Swap Acrobat Sign webhooks for Formable webhooks
Register one org webhook URL and verify
Content-Sha256. See Webhooks.What’s similar
Several Acrobat Sign ideas transfer directly:- A reusable library document / template still backs many sends.
- You still create a send unit (agreement → signature request), then open a short-lived URL for the signer.
- Prefill / merge values still happen at send time; Formable uses
fields: [{ fieldId, value }]. - Sandbox / non-production traffic maps to
testMode: true. Test mode documents are watermarked and are not legally binding. - After completion you still fetch a combined signed PDF.
What’s different
These Acrobat Sign-specific pieces do not carry over:
You no longer upload a transient document per send or wait for Acrobat Sign’s async agreement state machine. Create the request when you’re ready to send, mint the URL when the user is ready to sign, and listen for completion out of band.
Concept map
Endpoint map
Auth
Acrobat Sign:https://api.na1.adobesign.com/api/rest/v6/..., often with x-api-user.
Formable:
x-api-user. Create the key in Settings and keep it on the server. Full details: Authentication.
Migrate the flow
1. Create the signature request (was: create agreement)
Adobe Acrobat Sign (simplified, from a library document):Response
signers array on every create. Each signer needs email, name, and role. sender is optional and defaults to the org owner. Map merge field names to Formable fieldIds from the template editor (not Acrobat Sign fieldNames). Save each signer’s recipientSignatureId to mint their signing URL.
2. Create the signing URL (was: signingUrls / SIGNING view)
Adobe Acrobat Sign:GET /agreements/{agreementId} until status is OUT_FOR_SIGNATURE.
Formable:
Response
OUT_FOR_SIGNATURE wait, and no separate views payload. Formable URLs last 1 hour. Creating a URL for an already completed request returns 409.
3. Embed on the client
onSigningComplete for client UX instead of relying only on a return / redirect URL. Confirm completion with document_completed or by polling status until Completed before downloading. See Embedded signing.
4. Download the signed PDF
Response
Content-Sha256. See Verifying webhooks and Webhooks overview.
Differences to plan for
API keys instead of OAuth
API keys instead of OAuth
Drop OAuth token exchange and
x-api-user headers for a Bearer API key on your server. The organization is implied by the key.Template-first, not transient-document-on-send
Template-first, not transient-document-on-send
Acrobat Sign often uploads a transient document per agreement. Formable expects a prepared template first. Upload once, place fields, then send with
templateId.No OUT_FOR_SIGNATURE polling
No OUT_FOR_SIGNATURE polling
You do not wait for an async agreement state before minting a signing URL. Create the signature request, then call create signing URL when the signer is ready.
One global API host
One global API host
Drop regional base URL discovery (
api.na1, api.eu1, and similar). All Formable calls go to https://api.formabledocs.com.iframe postMessage instead of return URL alone
iframe postMessage instead of return URL alone
Listen for
onSigningComplete to update the client immediately. Confirm with a webhook or poll before downloading, then build any “signing finished” screen in your own app.Checklist
1
Create a Formable API key
In Settings.
2
Prepare templates and field IDs
Or migrate the embedded template flow separately.
3
Replace POST /agreements
Use create embedded signature request with
signers (including role), optional sender, and optional fields.4
Replace signingUrls / SIGNING views
Call create signing URL with each signer’s
recipientSignatureId; drop regional hosts and OUT_FOR_SIGNATURE polling.5
Swap Acrobat Sign webhooks for Formable webhooks
Handle
document_completed and download the signed envelope.Next steps
Embedded templates migration
Map library documents and authoring views to Formable.
Embedded signing walkthrough
Full Formable signing walkthrough.
Webhooks
Register endpoints and understand delivery.
Authentication
Bearer
fmbl_ API keys.