{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"254604f0-64e4-4525-98b3-5aca9da53192","name":"SIGNiX FlexAPI","description":"# SIGNiX FlexAPI\n\n## Overview\n\nThe SIGNiX FlexAPI provides a comprehensive web service interface for electronic signature workflows. This collection demonstrates the complete lifecycle of document signing transactions, from submission through completion, including document management and transaction control operations.\n\n**Base URL:** `https://webtest.signix.biz/sdd/b2b/sdddc_ns.jsp`\n\n**API Type:** SOAP-like XML over HTTP POST\n\n> **NOTE:** Requests in this Collection use variables, and some variables must be set before running any queries.  \nCredentials reside in Environment variables, whereas other variables exist in Collection variables. \n  \n\n## Authentication\n\nAll API requests require authentication credentials passed within the XML request body:\n\n- **Sponsor:** Your SIGNiX sponsor account identifier (`{{sponsor}}`)\n    \n- **Client:** Your client identifier (`{{client}}`)\n    \n- **UserID:** API user identifier (`{{user_id}}`)\n    \n- **Password:** API user password (`{{password}}`)\n    \n\nThese credentials should be stored as environment variables for security and reusability.\n\n## Request Format\n\nAll requests use the following structure:\n\n**HTTP Method:** `POST`\n\n**Content-Type:** `application/x-www-form-urlencoded`\n\n**Accept:** `text/xml`\n\n**Body Parameters:**\n\n- `method` - The API operation name (e.g., \"SubmitDocument\", \"GetAccessLink\")\n    \n- `request` - XML payload containing the operation-specific data\n    \n\n## Environment Variables\n\nThis collection uses the following environment variables. Set these up in your active environment before running requests:\n\n### Authentication Variables\n\n`Sponsor` - Your SIGNiX sponsor account\n\n`Client` - Your client identifier\n\n`UserId` - API user ID\n\n`Pswd` - API password\n\n`workgroup` - Workgroup identifier\n\n`demo` - Demo mode flag\n\n### Transaction Variables\n\n\\- Identifies the set of documents submitted in the request\n\n`doc_set_description` - Description of the document set\n\n### Submitter Information\n\n`submitterEmail` - Email of the person submitting documents\n\n`submitterName` - Name of the submitter\n\n`contactInfo` - Contact information for support\n\n### Delivery & Control\n\n`deliveryType` - How documents are delivered to signers\n\n`suspendOnStart` - Whether to suspend transaction on creation\n\n`email_content` - Custom email content for notifications\n\n### Signer Information\n\nIdentity data that we can use to check whether the person has a SIGNiX identity and to create the identity. The user may have to provide additional information during registration if optional elements are not provided. Important information:_\n\n- _Real values for SSN/DOB are ONLY used if the chosen authentication service requires it. Otherwise, use SSN=’910000000’ and DOB=’00/00/0000’._\n    \n- _Email must be a real email address. Do not enter a random email address because SIGNiX will attempt delivery._\n    \n- _Please do not send an email address as part of the , or elements. This will result in an error._\n    \n\n`signerRefId` - Reference ID for the signer\n\n`signerSSN` - Signer's SSN (for identity verification)\n\n`signerDOB` - Signer's date of birth\n\n`signerFirstName` - Signer's first name\n\n`signerMiddleName` - Signer's middle name\n\n`signerLastName` - Signer's last name\n\n`signerEmail` - Signer's email address\n\n`signerService` - Service type for signer\n\n### Authentication/Service Types\n\nThe `service` parameter specifies the level opf authentication required for the specified party in the transaction.\n\nSelectOneClick is commonly used as a base value for initial testing. In this mode, signers are asked to create a Signing password which secures their signature and documents from access by others but provides no other factor of authentication.\n\n**Providing end users (ie: submitters) with the ability to choose stronger forms of authentication (Services) is a required part of any SIGNiX integration.**\n\n### Document & Form Variables\n\n`formRefId` - Reference ID for the form\n\n`formDescription` - Description of the form\n\n`formFileName` - Name of the form file\n\n`mimeType` - MIME type of the document\n\n`memberInfoNumber` - Member information number\n\n`doc1_base64` - Base64-encoded document content\n\n`doc1_length` - Length of the document\n\n### Signature Fields\n\n`signField` - Name of the signature field\n\n`dateSignedField` - Name of the date signed field\n\n`dateSignedFormat` - Format for the date signed\n\n---\n\n## API Endpoints\n\n### 1\\. SubmitDocument - REQUIRED\n\n**Purpose:** Initiates a new transaction by submitting documents and defining signers.\n\n**Operation:** `SubmitDocument`\n\n**Description:** This is the primary endpoint for creating a new document signing workflow. It accepts one or more documents, defines the signing parties, and configures the transaction parameters. Used for both digital signature and electronic notary transactions.\n\n**Key Features:**\n\n- Upload multiple documents in Base64 format\n    \n- Define multiple signers with routing order\n    \n- Configure signature fields and form fields\n    \n- Set delivery preferences and notifications\n    \n- Option to suspend transaction on start allowing the Submitter to edit the document before sending.\n    \n\n**Response:** Returns a `DocumentSetID` that should be stored for subsequent operations and `PickupLink` for the first party (used for embedding workflows).\n\n---\n\n### 2\\. GetAccessLink (Submitter) - OPTIONAL\n\n**Purpose:** Retrieves an access link for the submitter to view and manage the transaction.\n\n**Operation:** `GetAccessLink`\n\n**Description:** Generates a secure URL that allows the transaction submitter to access the SIGNiX portal to monitor transaction status, view documents, and perform administrative actions.\n\n**Use Case:** Used by the Submitter to modify aspects of the transaction (signer information, documents, signature fields) before sending to sign.\n\n**Details:** After submitting the `SubmitDocument` request, the `DocumentSetID` returned in the response is used to generate the subsequent `GetAccessLink` request. The `AccessLink` returned in the response is used to open then SIGNiX dashboard to finish modifying aspects of a transaction before sending to sign.\n\n### 3\\. GetAccessLink (Signer) - OPTIONAL\n\n**Purpose:** Retrieves an access link for a specific signer to access and sign documents.\n\n**Operation:** `GetAccessLink`\n\n**Description:** Generates a secure URL for a designated signer to access their signing session.\n\n**Use Case:** Used by the signer for embedded signing applications and/or in-person workflows.\n\n**Details:** After submitting the `SubmitDocument` request, the `DocumentSetID` returned in the response is used to generate the subsequent `GetAccessLink` request. The `AccessLink` returned in the response is used to open the signer's window.\n\n---\n\n### 4\\. DownloadDocument - REQUIRED\n\n**Purpose:** Downloads completed or in-progress documents from a transaction.\n\n**Operation:** `DownloadDocument`\n\n**Description:** Retrieves the document files from a transaction. Can be used to download partially signed or fully executed documents.\n\n**Response:** Returns document content, typically in Base64-encoded format.\n\n---\n\n### 5\\. ConfirmDownload - REQUIRED\n\n**Purpose:** Confirms that documents have been successfully downloaded.\n\n**Operation:** `ConfirmDownload`\n\n**Description:** Sends a confirmation to SIGNiX that the documents were successfully retrieved. This is important for audit trail purposes and may trigger workflow completion events.\n\n**Best Practice:** Always call this after successfully downloading documents.\n\n---\n\n### 6\\. AJAX: Cancel Transaction - REQUIRED\n\n**Purpose:** Cancels an active signing transaction.\n\n**Operation:** AJAX control operation\n\n**Description:** Terminates a transaction that is in progress. Once cancelled, the transaction cannot be resumed and signers will no longer be able to access signing links.\n\n**Use Cases:**\n\n- Error in document submission\n    \n- Business process change\n    \n- Signer unavailability\n    \n\n---\n\n### 7\\. AJAX: Suspend Transaction - OPTIONAL\n\n**Purpose:** Temporarily suspends an active transaction.\n\n**Operation:** AJAX control operation\n\n**Description:** Pauses a transaction, preventing signers from accessing signing links. The transaction can be resumed later without losing progress.\n\n**Use Cases:**\n\n- Waiting for additional information\n    \n- Temporary hold on signing process\n    \n- Coordination with external systems\n    \n\n---\n\n### 8\\. AJAX: Resume Transaction - OPTIONAL\n\n**Purpose:** Resumes a previously suspended transaction.\n\n**Operation:** AJAX control operation\n\n**Description:** Reactivates a suspended transaction, allowing signers to continue the signing process from where they left off.\n\n---\n\n### 9\\. AJAX: Change Signer Email (P01) - OPTIONAL\n\n**Purpose:** Updates the email address for a specific signer.\n\n**Operation:** AJAX control operation\n\n**Description:** Modifies the email address for a signer identified as P01 (Participant 01). This is useful when a signer's contact information changes or was entered incorrectly.\n\n**Note:** The new email address will receive subsequent notifications.\n\n---\n\n### 10\\. AJAX: Re-send Pickup Email to Signer - RECOMMENDED FOR EMAIL WORKFLOW\n\n**Purpose:** Resends the signing invitation email to a specific signer.\n\n**Operation:** AJAX control operation\n\n**Description:** Triggers a new email notification to signer P01 with their access link. Useful when the original email was not received or has expired.\n\n---\n\n### 11\\. AJAX: Change Signer Mobile - RECOMMENDED FOR SMS AUTH\n\n**Purpose:** Updates the mobile phone number for a specific signer.\n\n**Operation:** AJAX control operation\n\n**Description:** Modifies the mobile phone number for signer P01. This is important for SMS-based authentication or notifications.\n\n---\n\n## Typical Workflows\n\n### Basic Signing Workflow\n\n1. **Submit Document** - Create transaction with documents and signer information\n    \n2. **\\[SIGNiX sends email to signer(s)\\]**\n    \n3. **Download Document** - Retrieve signed documents\n    \n4. **Confirm Download** - Acknowledge successful download\n    \n\n### Embedded Signing Workflow\n\n1. **Submit Document** - Create transaction\n    \n2. **\\[Signer 1 signs using** **`AccessLink`** **in SubmitDocument Response\\]**\n    \n3. **Get Access Link - Signer** - retrieve pick-up for additional signer(s)\n    \n4. **Download Document** - Retrieve completed documents\n    \n5. **Confirm Download** - Acknowledge successful download\n    \n\n### Error Correction Workflow\n\n1. **Submit Document** - Create transaction\n    \n2. **Identify Error** - Discover issue with submission\n    \n3. **Suspend Transaction** - Pause transaction to modify\n    \n4. **Modify Transaction** - use AJAX call to modify aspects of a transaction. Documents in a transaction cannot be modified once signed by one or more parties.\n    \n5. **Resume Transaction -** Signer complete signing\n    \n6. **Download Document** - Retrieve completed documents\n    \n7. **Confirm Download** - Acknowledge successful download\n    \n\n## Response Handling\n\nAll API responses are returned in XML format with the following general structure:\n\n``` xml\n<ResponseType xmlns=\"urn:com:signix:schema:sdddc-1-1\">\n    <Status>\n        <StatusCode>0</StatusCode>\n        <StatusMessage>Success</StatusMessage>\n    </Status>\n</ResponseType>\n\n ```\n\n**Status Codes:**\n\n- `0` - Success\n    \n- Non-zero values indicate errors (refer to SIGNiX documentation for specific error codes)\n    \n\n---\n\n## Error Handling\n\nWhen an error occurs, the response will contain:\n\n- **StatusCode:** Non-zero error code\n    \n- **StatusMessage:** Human-readable error description\n    \n\n**Common Error Scenarios:**\n\n- Invalid authentication credentials\n    \n- Missing required fields\n    \n- Invalid transaction ID\n    \n- Transaction in wrong state for operation\n    \n- Network connectivity issues\n    \n\n**Best Practices:**\n\n- Always check StatusCode in responses\n    \n- Log StatusMessage for debugging\n    \n- Implement retry logic for transient failures\n    \n- Validate all input data before submission\n    \n\n---\n\n## Security Considerations\n\n1. **Credentials:** Store authentication credentials securely using environment variables\n    \n2. **HTTPS:** All API calls use HTTPS encryption\n    \n3. **Access Links:** Generated links are time-limited and single-use\n    \n4. **Audit Trail:** All operations are logged by SIGNiX for compliance\n    \n5. **Data Privacy:** Documents are encrypted in transit and at rest\n    \n\n---\n\n## Testing & Development\n\n**Test Environment:** This collection is configured for the SIGNiX test environment (`webtest.signix.biz`)\n\n**Before Running:**\n\n1. Set up an environment with all required variables\n    \n2. Obtain test credentials from SIGNiX\n    \n3. Prepare test documents in Base64 format\n    \n4. Review and customize XML request bodies\n    \n\n**Tips:**\n\n- Use the \"skeleton\" requests as templates\n    \n- Test with small PDF documents initially\n    \n- Verify transaction_id is captured after SubmitDocument\n    \n- Check email delivery in test environment\n    \n\n---\n\n## Additional Resources\n\n- **SIGNiX Developer Portal:** Contact SIGNiX for API documentation\n    \n- **Support:** Reach out to SIGNiX support for technical assistance\n    \n- **API Updates:** Check for API version updates and deprecation notices\n    \n\n---\n\n## Collection Notes\n\nThis collection uses `application/x-www-form-urlencoded` format with two fields:\n\n- `method` - The API operation name\n    \n- `request` - XML payload with operation data\n    \n\nEdit the XML bodies inline and replace `{{variables}}` with your environment-specific values.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"53111289","team":14166662,"collectionId":"254604f0-64e4-4525-98b3-5aca9da53192","publishedId":"2sBYB1MTVQ","public":true,"publicUrl":"https://documenter-api.postman.tech/view/53111289/2sBYB1MTVQ","privateUrl":"https://go.postman.co/documentation/53111289-254604f0-64e4-4525-98b3-5aca9da53192","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.12","publishDate":"2026-09-16T17:09:23.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Webtest Env","id":"1e53b4fc-684a-4f69-b14a-e5db9780e6a8","owner":"53111289","values":[{"key":"sponsor","value":"","enabled":true,"type":"default"},{"key":"client","value":"","enabled":true,"type":"default"},{"key":"userID","value":"","enabled":true,"type":"default"},{"key":"password","value":"","enabled":true,"type":"default"},{"key":"mimeType","value":"","enabled":false,"type":"default"},{"key":"docSetDescription","value":"","enabled":true,"type":"default"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/aa34a3ad7265114d6f1dab5892bdd6e159e2f2e5351dc0f2b2bb3078ab89a337","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Webtest Env","value":"53111289-1e53b4fc-684a-4f69-b14a-e5db9780e6a8"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBYB1MTVQ"}