Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Refers to the specific permissions or access levels that an application can request and be granted to perform certain actions or access certain data.
Scopes define what resources an application can access via an API. In OAuth 2.0, they manage permissions and enhance security. As part of your onboarding, we will determine the appropriate scope for your business.
Access Control: Limit access to resources, e.g., FUSESIGN:OWN.
Granularity: Offer different access levels.
Authorization: Users consent to requested scopes.
Token Enforcement: Tokens carry scopes to restrict access.
Scopes ensure applications request only necessary permissions, improving security and user trust.
FuseSign has the following available Scopes
Users must authorize integrations to be allowed into their account This is how that will appear:
FUSESIGN:OWN
Only permits actions against the business and may modify any resources they have created.
✅ can create bundles, upload documents and perform actions on any bundles where they are the creator of that bundle.
❌ cannot perform other API actions for example modify bundles that are not theirs or perform contact or bundle search operations.
FUSESIGN
Permits actions against the business and may modify any resources within it


FuseSign webhooks provide real-time, event-based updates with secure payloads, authentication, and automatic retries for reliability.
Webhooks are advantageous for their ability to facilitate real-time communication between applications:
Instant Notifications: Webhooks allow your application to receive real-time data updates without polling the server repeatedly. This ensures timely updates.
Resource Efficiency: Unlike traditional APIs that require constant checking for updates, webhooks only send data when an event occurs, reducing resource consumption.
Automated Workflows: By triggering specific actions based on events, webhooks enable seamless integration between systems, allowing for automated workflows and enhanced productivity.
Scalability: As your application grows, webhooks can efficiently handle increased event loads, ensuring consistent performance and user experience.
The webhook event structure is of type TransactionalBundleWebhookPayload:
When a bundle is created via specify Settings > WebhookUrl in the payload:
All webhooks will be sent with your developer specific Fuse-Signature header. This header can be used to verify the message was sent via the FuseSign API. The header can be found on your developer listing page.
FuseSign webhook's will automatically retry if no 200 response is received.
The system will retry up to 5 times with the following back-off logic:
1st retry – after 30 minutes
2nd retry – 60 minutes thereafter
3rd retry – 120 minutes thereafter
4th retry – 120 minutes thereafter
If the 5th and final retry is unsuccessful, a permanent webhook failure is registered in our system – if these are frequent, we’ll get in touch :)
Register via OAuth for the target user - retrieve their Tenant Id via /api/Tenant/List
Upload document(s) via the /api/Document/Upload endpoint.
Record the ID(s) of the uploaded documents.
Create a new bundle via the endpoint.
Register your callback WebhookUrl for that specific bundle.
Note: Certain authentication methods require customer details. E.g. SMStoSign requires the mobile number to be uploaded on customer creation.
The signing customer opens and signs the documents via the FuseSign platform.
Receive and react to webhook events. [Customer opened, customer signed, bundle finalised etc]
Once all documents are signed and the bundle is finalised - retrieve the bundle via - This will confirm the status and include the Document Ids to be used in and also included in the SignedPDFDownloadUrl attribute per document.
Once documents are downloaded - Archive the bundle via (This will be done in 60 days automatically once the signed document download has been registered, don't worry we'll keep reminding you via webhooks :) )
To get started you will need a developer account. Please contact to arrange a test account.
There are two main methods of authentication:
Tenant token - Uses Bearer OAuth2 to login on behalf of an existing FuseSign user. [MOST COMMON].
This will include a ClientId and ClientSecret (see workflow below)
Please note that HTTP request header is required when making a OAuth Post call, which needs to be sent as application/json type.
Wholesale token
All operations require a wholesale token (or OAuth2 bearer access token) and a TenantId.
Step 1 - End user redirection
HTTP GET
response_type with the value code
client_id with the client identifier
redirect_uri with the client redirect URI. This parameter must match the registered redirect domain below.
Response
code with the authorization code
state with the state parameter sent in the original request. You should compare this value with the value stored in the user's session to ensure the authorization code obtained is in response to requests made by this client rather than another client application.
Step 2 - Get Token
HTTP POST
grant_type with the value of authorization_code
client_id with the client identifier
client_secret with the client secret
Response
token_type this will be the word Bearer (to indicate a bearer token)
expires_in a date time offset representing the TTL of the access token (i.e. when the token will expire)
access_token the access token itself
Step 3 - Refresh Token
HTTP POST
grant_type with the text value refresh_token
refresh_token with the refresh token
client_id with the the client's ID
Response
token_type this will be the word Bearer (to indicate a bearer token)
expires_in a date time offset representing the TTL of the access token (i.e. when the token will expire)
access_token the access token itself
Step 4 - Revoke Token (at end of life)
HTTP POST
refresh_token with the refresh token
client_id with the the client's ID
Response
Http 200 if successful
This method is much simpler - all calls are made with X-API-Token in the header. This Token is tied to a specific user with account privileges. I.e. over a single tenant. For more information or to discuss your use case please contact
The basic use case for a Bundle is to use the endpoint
A simple example payload is:
There are many more options available to this object, see below for the full specifications. Configuration available:
Set a Metadata for any document, client or bundle for retrieval and search.
Upload a document via Base64 content or via File upload (via )
Change the ViewMode: Available SmsToView, SmsToSign, EmailToSign, EmailToView
This will include a X-API-Token which can be used in the header and attached to a developer user.
scope a space delimited list of scopes. Current scopes include: FUSESIGN
state with a CSRF token. This parameter is optional but highly recommended. You should store the value of the CSRF token in the user's session to be validated when they return.
redirect_uri with the same redirect URI the user was redirect back to
code with the authorization code from the query string
refresh_token a refresh token that can be used to acquire a new access token when the original expires
refresh_token_expires_in a date time offset representing the TTL of the refresh token (i.e. when the token will expire)
default_tenant_id for the user oauth method, this represents the tenantId selected by the user at connection time.
Please note the request is a JSON body, not form data.
client_secret with the client's secret
refresh_token a refresh token that can be used to acquire a new access token when the original expires
refresh_token_expires_in a date time offset representing the TTL of the refresh token (i.e. when the token will expire)
default_tenant_id for the user oauth method, this represents the tenantId selected by the user at connection time.
Set a "CreatedBy" email address [if impersonation is enabled] to allow users to create bundles as other user(s)
Set a customer with NoMobile attribute (which allows EmailToSign, EmailToView auth method to be used)
Utilise the "LastSigner": true attribute (all other signers must sign first before this person is notified.
and many more...
Redirect URL
Redirect URL
RefreshToken URL
RefreshToken URL
{
"Subject": "This is the subject field in the email",
"Body": "Hello Signer, Could you please sign please",
"CreateMode": "CreateAndSend",
"Customers": [
{
"Customer": {
"Name": "MY NAME HERE",
"Email": "MY EMAIL HERE",
"PhoneNumber": "+61411111111"
}
}
],
"Documents": [
{
"DisplayName": "Name of Document",
"DocumentUrl": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"DocumentOrder": 0,
"CustomerSigners": [
0
]
}
],
"ViewMode": "SmsToSign",
"Settings": {
"WebhookUrl": "https://example.com/my_fusesign_webhookID"
}
}BundleFinalised
Bundle has been finalised (all documents signed)
BundleRetracted
Bundle has been retracted
CustomerActionsCompleted
Customer actions completed for a bundle
CustomerBundleOpened
Customer has opened the bundle link
CustomerBundleRejected
Customer has rejected an entire bundle
CustomerDocumentRejected
Customer has rejected a document
CustomerDocumentSigned
Customer has signed a document
CustomerEmailDelivered
Email successfully delivered to customer
CustomerEmailDeliveredWithOOTO
The message was successfully delivered but the recipient's mailbox auto-replied with an 'out of the office' message
CustomerEmailFailure
Email failed to deliver to customer
CustomerEmailOpened
Customer opened Email
CustomerRequestedNewLink
Customer has requested a new signing link (due to expiry)
DocumentFinalised
The document has been digitally signed and is ready for download
DraftBundleDeleted
Draft bundle has been deleted
WebhookURLChanged
Bundle webhook URL updated
BundleArchived
Bundle has been archived
BundleArchiveWarning
Bundle will be archived after 7 days
BundleClosureRegistered
Bundle has registered a closure event. This means the bundle can be archived safely
BundleCreated
Bundle has been committed and is ready to send to customers
BundleDocumentDownloaded
Bundle document downloaded
BundleError
Bundle signing has encountered an error (need to contact FuseSign support)
FuseSign offers two signing modes—Sign Entire Document and Signature Placeholders—both using digital certificates, with the latter allowing precise signature and input placement.
When a bundle is created. It is sent off for digital signing and can be also assigned view actions.
FuseSign offers two different modes for document signing: Sign Entire Document and Signature Placeholders.
The property SigningMode is optional, which can be set to SignWhole or SignPlacements. We recommend being explicit by adding this parameter.
SigningMode defaults to SignWhole when not included in the request body but will use SignPlacements if set in the business settings.
Signature Placeholders mode requires CustomerInputElements against each Documents of the payload.
Both methods of signing include a true digital signature using computer technology to authenticate the signature by way of attaching a transcript and embedding a digital certificate validating who signed the documents and protecting the information from tampering.
We recommend uploading your documents to to use parameter DocumentId rather than DocumentUrl.
Sign Entire Document means that visual signature images will not be placed on specific locations in the documents. This method significantly reduces the complexity of creating and sending bundles. The signer is effectively agreeing to approving and digitally signing the entire document and the contents contained within the document. They agree to the terms of digital signing by agreeing to the terms when they sign.
FuseSign will place the signers' initials on each page of the document if this option is enabled in your (Settings > Document Output > Signers' Initials Position) . The initials will be placed on each page of the entire bundle and cannot be toggled on a bundle basis.
Signature Placeholders means that when preparing a bundle, the user will add a ‘signature placeholder’ to assign each of the specific locations within the documents where your recipients' signature will visually appear.
This method does not include signers' initials on each page, even if this option is enabled in business settings.
If a recipient has a signing action on a document, at least one of these placeholders will be required. When your recipient signs, their signature will appear on the document where you place these.
Standard - Adds a standard signature placeholder to the document
WithDate - Similar to the above, but also automatically adds the signing date below the signature
These options allow your users to fill out additional information on your document. You can also set properties for these inputs from the right panel to make them mandatory, or to assign a default value.
TextLine - Adds a single text line for your recipient to fill in
CheckBox - Adds a checkbox to the document, that can be checked by the recipient
Date - Allows your recipient to manually fill in a date
These stamps do not require any interaction from your recipient and will be automatically filled when the document is finalised.
SignedDate - Automatically stamps the date the document was signed by this recipient.
SignerName - Automatically stamps the signer’s name
Placement type is another property of CustomerInputElements . There are two options for placement:
If the documents you are sending from your API are the same every time, we recommend this mode.
It uses X, Y, W and H to set the dimensions of the placeholder. (X / Y is the co-ordinate from the top left of the page)
If the documents in dynamic and you require placeholders in different locations we recommend this mode.
Specify AnchorText to have the display over the text found.
Tips for AnchorText
Use a special / unique word without any special characters
Keep it short and simple but not a subset of other words
Should be hidden by having the colour match the background. Ie. white.
You can also specify the AnchorFindCountthat is the number of instances being placed (0 = unlimited)
When documents are uploaded via the Document Upload endpoint they exist in a Pending state until they are linked to a bundle via the Bundle Create endpoint.
Pending documents are removed every 24 hours.
You can list any pending documents via the /api/Document/ListPending endpoint.
The Base64 content option in the Bundle Create endpoint should only be used in limited scenarios. Because all Base64-encoded documents are included directly in the payload, this approach significantly restricts the maximum file size that can be uploaded.
Instead, we recommend using the /api/Document/Upload endpoint to upload documents. Once uploaded, include the returned DocumentId in the Bundle Create payload. This approach avoids payload size limitations and is the preferred method for handling document uploads.
Create and manage OAuth 2.0 Tokens
{
"WebhookId":"dd7be5ec-1560-49b1-a1a7-02be393dc7fe", // Webhook event identifier
"BundleId":"69d3400e-1af1-44c7-9315-b80dd6e1e798", // The bundle for the webhook
"EventType":"CustomerDocumentSigned", // Bundle event type
"BundleHistoryEvent": { // Bundle history event details
"Id":"cc0c0745-7ba1-4134-b946-674d78c98fef",
"DateTime":"2020-09-14T03:54:07.2844251Z",
"BundleId":"69d3400e-1af1-44c7-9315-b80dd6e1e798",
"DocumentId":"5ec03200-1db1-40ec-a553-95b55e30bacc",
"CustomerId":"a960f86a-e9ba-49c8-ae1c-646a4ec76ac5",
"Action":"CustomerDocumentSigned",
"ActionNotes":"Document Signed: test doc",
"IP":"61.68.36.158"
},
"ActionDescription":"Document Signed: test doc", // Textual Description
"TenantId":"7ffcbae4-9f50-4136-8de6-edb6f796dc3f" // TenantId of the bundle
}{
"Subject": "This is the subject field in the email",
"Body": "Hello Signer, Could you please sign please",
"CreateMode": "CreateAndSend",
"Customers": [
{
"Customer": {
"Name": "MY NAME HERE",
"Email": "MY EMAIL HERE",
"PhoneNumber": "+61411111111"
}
}
],
"Documents": [
{
"DisplayName": "Name of Document",
"DocumentUrl": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"DocumentOrder": 0,
"CustomerSigners": [
0
]
}
],
"ViewMode": "SmsToSign",
"Settings": {
"WebhookUrl": "https://example.com/my_fusesign_webhookID"
}
}Paragraph - Adds a multi-line text input that you recipient can fill in



Standard placeholder at the top of the page
{
"subject": "This is the subject field in the email",
"body": "Hello Signer, Could you please sign please",
"createMode": "CreateAndSend",
"customers": [
{
"customer": {
"name": "MY NAME HERE",
"email": "MY EMAIL HERE",
"phoneNumber": "+61411111111"
}
}
],
"documents": [
{
"displayName": "Name of Document",
"documentUrl": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"documentOrder": 0,
"customerSigners": [
0
]
}
],
"viewMode": "SmsToSign",
"settings": {
"webhookUrl": "https://example.com/my_fusesign_webhookID"
}
}A few words on the integration process
We work closely with software companies, platforms, and developers to create deep integrations that enhance workflow automation for mutual clients. But our bread and butter is sending documents for signing!
We have two primary integration types depending on who you are.
a) Product Integration
This is another piece of software pushing or pulling information into FuseSign.
b) Private integration into a FuseSign account
This is typically a large firm that wants to automate processes
Requires Enterprise plan.
Intro Call & Use Case Review Let’s understand your platform and your clients’ needs.
Tech Alignment Call We’ll provide API documentation and sample use cases to validate technical feasibility. Following this we will provide access keys to our production environment with a test developer account loaded with some credits!
Integration Build
You develop the integration with guidance from our technical team as needed. Your account is placed InReview mode which places a watermark on documents you send for signing. Read more below, .
To get the best signing experience possible and to ensure proper performance we place a watermark on all bundle documents sent for signing from a developer InReview . All other functionality is the same!
To get InReview toggled off we need to see demonstration over video call, or recording of the signing flow:
Upload a document
If uploading a document via please do not use base64!
Create a bundle
We have a few different ways to create a bundle, read more in this deepdive
Please prepare responses for the following questions:
How does your integration handle two people with the same email?
How do you cancel an active bundle?
How do you remind participants of an active bundle?
What happens when a signer rejects a single document?
Confirm that any applicable URLs for uploads are whitelisted.
Once all above criteria are met, we will remove the watermark from documents generated by the developer's integration and you're ready for production usage!
For more information email us at .
This API Allows you to interact with the FuseSign platform to send out signing bundles.
For more information on FuseSign please see https://fusesign.com or developersupport@fuse.work. To interact with API using postman, we suggest following the process of importing swagger into postman using the public swagger.json
OAuth2 or fixed header authentication.
GUIDs everywhere! (tenants, bundles, documents, customers, webhooks)
Webhooks for any events on a sent document bundle.
Metadata can be attached to objects to allow reference back to an external API.
Creating a Draft: To create a bundle as a draft, Set the CreationMode to CreateAsDraft.
This will populate the DraftUrl on the response bundle which can be used to review and send the bundle.
No FuseSign Emails: To disable FuseSign emails Set the Bundle -> Settings -> EmailPreference to NoFuseSignEmails.
Any questions please don't hesitate to contact us at .
A bundle is a collection of messages, settings, recipients, documents and optionally placeholders.
{
"subject": "test",
"body": "body",
"createMode": "CreateAndSend",
"createdBy": null,
"customers": [
{
"customer": {
"customerId": null,
"name": "Your Name",
"email": "youremail@yourdomain.com",
"phoneNumber": null,
"noMobile": true,
"meta": null,
"cannotModify": false,
"options": {
"ignorePhoneNumberIfInvalid": false,
"updateExistingCustomersByMetaMatch": false
}
},
"lastSigner": false,
"signingGroup": 0,
"lockLastSigningGroup": false,
"cannotRemoveFromBundleDraft": false,
"smsNotify": false
}
],
"documents": [
{
"displayName": "Signing document",
"documentId": null,
"documentBase64": null,
"documentUrl": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"documentOrder": 0,
"customerSigners": [],
"customerInputElements": [
{
"customerIndex": 0,
"inputElements": [
{
"pageIndex": 0,
"x": 10,
"y": 10,
"w": 50,
"h": 20,
"type": "Standard",
"placementType": "ByCoordinate",
"anchorText": null,
"anchorXOffset": 0,
"anchorYOffset": 0,
"anchorFindCount": 0
}
]
}
],
"customerViewers": [],
"meta": null
}
],
"dueDate": "0001-01-01T00:00:00+00:00",
"dueReminderMode": null,
"overdueReminderMode": null,
"viewMode": null,
"recipientReceiveMode": null,
"signingMode": "SignPlacements",
"settings": null,
"meta": null,
"teamId": null,
"senderIP": null
}Review An online review session is conducted to ensure the integration has met the intended requirements.
Joint Launch Once tested, we’ll support you in announcing and promoting the integration to our mutual audiences.
Protip: the response to a bundle create contains the property CustomerSignUrl
Webhook utilisation
We support webhooks out of the box, read more in this deepdive Webhooks
What verification is used, is it able to handle Email / SMS or both?
If using anchor searching for placeholder creation, what tags are you using?
Where and how do you document your support processes?
How would you like to work with us for developer support ongoing?
How should we contact you if there are issues with this integration?

Multiple methods to achieve the same result. For example:
A document can be uploaded before a bundle is sent and linked via ID, or sent via encoded base64, or sent via a download URL.
A customer can be created before a bundle is sent and linked via ID or can be included in the bundle payload.
This will return a CustomerSignUrl for each customer which can be used in your external emails.
View Modes (2FA)
SmsToSign will require 2FA authentication before signing. [Requires all customers to have a mobile number]
SmsToView will require a 2FA code before the recipient can even view the document. [Requires all customers to have a mobile number]
EmailToSign and EmailToView only requires an email address.

A file (.pdf) that is used for signing.
An organisational construct within FuseSign.
The person who will be receiving the signing action.
codeSuccess
Bad Request
authorization_codeSuccess
Bad Request
refresh_tokenSuccess
Bad Request
Success
Bad Request
Gets the detailed information of a bundle
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
d7286aea-0a10-4efe-bc8c-bb115a952c2aBundle Id
452fc311-a3d9-4f61-b652-83805951083bSuccess
Bad Request
Unauthorized
Forbidden
Submit a bundle to request to Sign with other options. FuseSign offers two different methods for document signing: Sign Entire Document and Signature Placeholders. Sign Entire Document is default. Whereas placeholder mode requires values in Documents > CustomerInputElements. We recommend uploading your documents to /Document/Upload to use DocumentId.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
Success
Bad Request
Unauthorized
Forbidden
Get a bundles history, including things like Finalisation, Errors and other actions. We recommend using Webhooks instead where appropriate.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
01c8a9db-22a4-44d1-a300-fddde0b40c01Bundle Id
f97bf6a0-9257-4197-92c1-1b71e80bc25cSuccess
Bad Request
Unauthorized
Forbidden
Request bundle retraction. This will cancel the outstanding sign request
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
8de00a27-3d18-4a43-b10a-e8425c6c5570Bundle Id
12aeda3e-f999-4bbd-bf30-b6876fd472f1[Mandatory] Reason for retraction
Reason[Optional] Additional message
Success
Bad Request
Unauthorized
Forbidden
Mark the bundle as "Closed" which will allow it to be archived
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
cb2cf62e-a415-4c4a-9bf7-0ee562f9cb17Bundle Id
9f0c8f03-c080-48d0-a06f-b284cd42382aSuccess
Bad Request
Unauthorized
Forbidden
Gets a list of bundles for the specified tenant.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
ac1f0fb9-8a8e-4b93-b22b-f6f6bb0118e5Search page (50 records per page). 0 Based indexing.
0Success
Bad Request
Unauthorized
Forbidden
Request bundle Archive. This will schedule any bundle documents for deletion. Bundles can only be archived if they are in a Retracted, Rejected or Finalised state
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
af75f285-cd34-44cc-8130-6491cb40b9d2Bundle Id
3604c946-4794-419d-a01b-ae873b0f240fSuccess
Bad Request
Unauthorized
Forbidden
Send a reminder for a bundle (Requires Emails to be enabled for the bundle)
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
90eda416-7717-44a8-8ba2-5a6178f7274fBundle Id
e6156e23-6ae7-409e-9d9b-d06cc949d1c3Notes to include in the email
List of customer IDs (can be retrieved on Bundle/Get
["ade991ff-6755-4d7d-941d-adc1e2dfc7d0"]Success
Bad Request
Unauthorized
Forbidden
For a given bundle in draft state, delete the draft. This will consequently unlink associated documents and customer actions. Documents will not be deleted.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
46581b19-16e8-4d52-9c13-d231a61adc26Bundle Id
ad1f2fb5-a578-477b-ad6a-78a96fdf40dcSuccess
Bad Request
Unauthorized
Forbidden
Update the webhook URL. All future webhooks will be sent to the new URL.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
52a5c58f-4d84-4eae-a172-3d13b2c72226Bundle Id
c6d21030-2ab4-4098-b5fa-e1c10759f4beNew webhook URL
Success
Bad Request
Unauthorized
Forbidden
Request a list of all bundles which have been finalised/retracted or rejected which are yet to be archived. These bundles and associated documents will be automatically archived in 14 days
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
de0d1928-1ce1-484b-acb8-c7b0583199faSuccess
Bad Request
Unauthorized
Forbidden
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
10f4c49b-b63d-4b74-b370-39c345e13320Document Id
b29354d4-e38b-4a60-b0a8-b6f5387af387Success
Bad Request
Unauthorized
Forbidden
Not Found
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
f0f02303-b6f3-4917-a067-522203a36b6fPublically accessible Url with a pdf - must be added to your developer domain whitelist
https://domain/document.pdfSuccess
Bad Request
Unauthorized
Forbidden
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
aa8ac6a2-f555-4e7b-ac17-51ade6d83d12Metadata to attach to document for later use
35cb4e73-1720-4889-bb72-01fd7bec07daSuccess
Bad Request
Unauthorized
Forbidden
Not Found
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
9d7dca51-c76f-4e9d-b89a-053c9e49b7e9Success
Bad Request
Unauthorized
Forbidden
Not Found
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
3ef9c7ea-98c4-4559-b664-af526e920c30Bundle Id
a4594cb8-dc63-4c73-ba4e-5868e38a2f36Document Id
b150543b-579e-418c-b3a0-40c2c007b026Success
Bad Request
Unauthorized
Forbidden
Not Found
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
4bcce562-b5bf-4f3a-a215-07c9f6fee104Document Id
ae85dc38-b2dd-4228-b2ec-4d4c834fd75fSuccess
Bad Request
Unauthorized
Forbidden
Download document's audit trail. This will only work if the document has been signed (or is a view only document) and Bundle.Settings.AuditType is set to Separate
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
713e37e5-754d-4d41-894e-0a13aed99dbcBundle Id
db67c08a-eebb-4d50-9b82-5cb188c31571Document Id
d5912a18-7fd1-4951-8cfd-daab5e918d3dSuccess
Bad Request
Unauthorized
Forbidden
Not Found
Download a signed document without an audit trail embedded. This will only work if the document is a document with signing actions and has been signed and Bundle.Settings.AuditType is set to Separate
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
1721ffbd-59b4-4eb6-96e7-bfd86001fb78Bundle Id
0f114c5b-be9e-4cb4-b34a-dcbed679cc02Document Id
d3b24b5e-65d4-4399-a839-da59e414dc97Success
Bad Request
Unauthorized
Forbidden
Not Found
Get the list of available tenants for the current OAuth token
FuseSign OAuth 2. Use this for most implementations.
Success
Error message
Unauthorized
Forbidden
Produces the summary of the billing state for this tenant. The requesting user must be a FuseSign user to access this information. A credit consumed summary is also produced
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
6a15525a-e27c-4c2d-a107-b0bc63430bafSuccess
Bad Request
Unauthorized
Forbidden
Produces the summary of the business configuration for this tenant. The requesting user must be a FuseSign user to access this information.
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
19502666-939e-472f-8bcb-410bfb0cb875Success
Bad Request
Unauthorized
Forbidden
Get specific customer details
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
718c839a-db4f-44bb-b54a-470a56e2c063Customer Id
9ddcf31c-2ae1-4c9f-96fd-325037cad951Success
Bad Request
Unauthorized
Forbidden
Create a new customer record
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
9e5cd0d3-a062-472a-a1fc-e74ab18648e7Customer Name (Required)
Customer Email (Required)
^[^@]+@[^@]+$Customer mobile number. Required for 2FA. If NoMobile is true this is not required. Must be in international format: +61413121121
No Mobile flag, means Phone Number is ignored
falseOptional external lookup ID. Can be used for searching later. Note: This is used to uniquely identify this contact and will cause duplicate contacts if not reused
Prevents end users from modifying this contact within the FuseSign application
falseOptions for contact creation and validation
{"IgnorePhoneNumberIfInvalid":false,"UpdateExistingCustomersByMetaMatch":false}Success
Bad Request
Unauthorized
Forbidden
Search for customer based on Name/Email/Phone details
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
93b6f5fb-50a5-4326-86f6-508b58435583Wildcard search text
Collapse any duplicate records
falseExclude archived contacts
trueInclude live bundle count
Include live bundle count
Success
Bad Request
Unauthorized
Forbidden
Search for customer based on metadata field
FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant Id
94523ce8-5a86-4327-b90a-9de98d4432ccWildcard search text
metaSuccess
Bad Request
Unauthorized
Forbidden
Gets the list of all country codes supported by the platform
FuseSign OAuth 2. Use this for most implementations.
Success
Bad Request
Unauthorized
Forbidden
POST /api/Session/OAuthTokenRevoke HTTP/1.1
Host: api.fuse.work
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 43
"client_id='text'&refresh_token='text'"Bundle subject
testBundle Body message
bodyCreate and send or create as draft
CreateAndSendSets the created by user email. If the user exists and the requestor has permissions, then the bundle will be "created" by the specified user. Will cause an error to throw if the user does not have permissions to do this.
^[^@]+@[^@]+$The bundle due date (optional)
Bundle reminder mode (optional)
Bundle overdue reminder mode (optional)
The bundle view mode setting. If this is blank the business default is selected and the system falls back to the highest available authentication
How the recipients receive signed documents
Describe how the document(s) will be processed. I.e. if signature placements are used [I.e. if SENDING SignPlacements then all Documents must have CustomerSignerLocations set. Otherwise CustomerSigners.].
SignPlacementsBundle settings object - API related options.
Bundle lookup metadata
If assigned - apply this team to the bundle. Verify that the user sending the bundle can send on behalf of this team.
IP Address applied to the bundle Audit. Automatic Field - no need to set.
GET /api/Session/OAuthRegister?response_type=code&client_id=text&redirect_uri=text&Scope=text HTTP/1.1
Host: api.fuse.work
Accept: */*
binaryPOST /api/Session/OAuthGetToken HTTP/1.1
Host: api.fuse.work
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 113
"grant_type='authorization_code'&code='text'&client_id='text'&client_secret='text'&redirect_uri='text'"{
"token_type": "text",
"access_token": "text",
"refresh_token": "text",
"expires_in": "2025-12-15T19:58:31.285Z",
"refresh_token_expires_in": "2025-12-15T19:58:31.285Z",
"default_tenant_id": "text"
}POST /api/Session/OAuthRefreshToken HTTP/1.1
Host: api.fuse.work
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 95
"grant_type='refresh_token'&refresh_token='text'&client_id='text'&client_secret='text'"{
"token_type": "text",
"access_token": "text",
"refresh_token": "text",
"expires_in": "2025-12-15T19:58:31.285Z",
"refresh_token_expires_in": "2025-12-15T19:58:31.285Z",
"default_tenant_id": "text"
}binary{
"Id": "text",
"TenantId": "text",
"ReviewUrl": "text",
"DraftUrl": "text",
"Subject": "text",
"Body": "text",
"FromName": "text",
"Customers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"Documents": [
{
"Document": {
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
},
"DocumentOrder": 1,
"CustomerSigners": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"CustomerViewers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"DocumentState": "Draft"
}
],
"DueDate": "2025-12-15T19:58:31.285Z",
"DueReminderMode": "DontRemind",
"OverdueReminderMode": "DontRemind",
"DateSent": "2025-12-15T19:58:31.285Z",
"DateCompleted": "2025-12-15T19:58:31.285Z",
"DateArchived": "2025-12-15T19:58:31.285Z",
"LastReminderSent": "2025-12-15T19:58:31.285Z",
"State": "Draft",
"ViewMode": "SmsToSign",
"SigningMode": "SignWhole",
"Settings": {
"EmailPreference": "FuseSignEmails",
"AlwaysSendFinalisationEmail": true,
"WebhookUrl": "text",
"DisableFinaliseNow": true,
"DisableRetract": true,
"DisableReminders": true,
"CustomBranding": {
"ButtonColor": "text",
"BannerColor": "text",
"LogoUrl": "text",
"FromName": "text"
},
"RedirectUrl": "text",
"RedirectDelaySeconds": 1,
"AuditType": "Included",
"ContextUrl": "text"
},
"Meta": "text"
}{
"Result": true
}{
"Result": true
}{
"Page": 1,
"TotalPages": 1,
"RecordsPerPage": 1,
"Count": 1,
"SearchResults": [
{
"Id": "text",
"TenantId": "text",
"ReviewUrl": "text",
"DraftUrl": "text",
"Subject": "text",
"Body": "text",
"FromName": "text",
"Customers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"Documents": [
{
"Document": {
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
},
"DocumentOrder": 1,
"CustomerSigners": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"CustomerViewers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"DocumentState": "Draft"
}
],
"DueDate": "2025-12-15T19:58:31.285Z",
"DueReminderMode": "DontRemind",
"OverdueReminderMode": "DontRemind",
"DateSent": "2025-12-15T19:58:31.285Z",
"DateCompleted": "2025-12-15T19:58:31.285Z",
"DateArchived": "2025-12-15T19:58:31.285Z",
"LastReminderSent": "2025-12-15T19:58:31.285Z",
"State": "Draft",
"ViewMode": "SmsToSign",
"SigningMode": "SignWhole",
"Settings": {
"EmailPreference": "FuseSignEmails",
"AlwaysSendFinalisationEmail": true,
"WebhookUrl": "text",
"DisableFinaliseNow": true,
"DisableRetract": true,
"DisableReminders": true,
"CustomBranding": {
"ButtonColor": "text",
"BannerColor": "text",
"LogoUrl": "text",
"FromName": "text"
},
"RedirectUrl": "text",
"RedirectDelaySeconds": 1,
"AuditType": "Included",
"ContextUrl": "text"
},
"Meta": "text"
}
]
}{
"Result": true
}{
"Result": true
}{
"Result": true
}{
"Result": true
}GET /api/Bundle/Get?TenantId=text&BundleId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"Id": "text",
"TenantId": "text",
"ReviewUrl": "text",
"DraftUrl": "text",
"Subject": "text",
"Body": "text",
"FromName": "text",
"Customers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"Documents": [
{
"Document": {
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
},
"DocumentOrder": 1,
"CustomerSigners": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"CustomerViewers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"DocumentState": "Draft"
}
],
"DueDate": "2025-12-15T19:58:31.285Z",
"DueReminderMode": "DontRemind",
"OverdueReminderMode": "DontRemind",
"DateSent": "2025-12-15T19:58:31.285Z",
"DateCompleted": "2025-12-15T19:58:31.285Z",
"DateArchived": "2025-12-15T19:58:31.285Z",
"LastReminderSent": "2025-12-15T19:58:31.285Z",
"State": "Draft",
"ViewMode": "SmsToSign",
"SigningMode": "SignWhole",
"Settings": {
"EmailPreference": "FuseSignEmails",
"AlwaysSendFinalisationEmail": true,
"WebhookUrl": "text",
"DisableFinaliseNow": true,
"DisableRetract": true,
"DisableReminders": true,
"CustomBranding": {
"ButtonColor": "text",
"BannerColor": "text",
"LogoUrl": "text",
"FromName": "text"
},
"RedirectUrl": "text",
"RedirectDelaySeconds": 1,
"AuditType": "Included",
"ContextUrl": "text"
},
"Meta": "text"
}POST /api/Bundle/Create?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1133
{
"Subject": "test",
"Body": "body",
"CreateMode": "CreateAndSend",
"CreatedBy": null,
"Customers": [
{
"Customer": {
"CustomerId": null,
"Name": "Your Name",
"Email": "youremail@yourdomain.com",
"PhoneNumber": null,
"NoMobile": true,
"Meta": null,
"CannotModify": false,
"Options": {
"IgnorePhoneNumberIfInvalid": false,
"UpdateExistingCustomersByMetaMatch": false
}
},
"LastSigner": null,
"SigningGroup": 0,
"LockLastSigningGroup": false,
"CannotRemoveFromBundleDraft": false,
"SMSNotify": false
}
],
"Documents": [
{
"DisplayName": "Signing document",
"DocumentId": null,
"DocumentBase64": null,
"DocumentUrl": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf",
"DocumentOrder": 0,
"CustomerSigners": [],
"CustomerInputElements": [
{
"CustomerIndex": 0,
"InputElements": [
{
"PageIndex": 0,
"X": 10,
"Y": 10,
"W": 50,
"H": 20,
"Type": "Standard",
"PlacementType": "ByCoordinate",
"AnchorText": null,
"AnchorXOffset": 0,
"AnchorYOffset": 0,
"AnchorFindCount": 0
}
]
}
],
"CustomerViewers": [],
"Meta": null
}
],
"DueDate": null,
"DueReminderMode": null,
"OverdueReminderMode": null,
"ViewMode": null,
"RecipientReceiveMode": null,
"SigningMode": "SignPlacements",
"Settings": null,
"Meta": null,
"TeamId": null,
"SenderIP": null
}GET /api/Bundle/GetHistory?TenantId=text&BundleId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"Id": "text",
"DateTime": "2025-12-15T19:58:31.285Z",
"BundleId": "text",
"DocumentId": "text",
"CustomerId": "text",
"Action": "Sent",
"ActionNotes": "text",
"IP": "text"
}
]POST /api/Bundle/Retract?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 84
{
"BundleId": "12aeda3e-f999-4bbd-bf30-b6876fd472f1",
"Reason": "Reason",
"Message": null
}POST /api/Bundle/MarkReadyForArchive?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 51
{
"BundleId": "9f0c8f03-c080-48d0-a06f-b284cd42382a"
}POST /api/Bundle/Search?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 28
{
"Page": 0,
"States": [
"Live"
]
}POST /api/Bundle/Archive?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 51
{
"BundleId": "3604c946-4794-419d-a01b-ae873b0f240f"
}POST /api/Bundle/SendReminder?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 133
{
"BundleId": "e6156e23-6ae7-409e-9d9b-d06cc949d1c3",
"ReminderNotes": null,
"TargetCustomerIds": [
"ade991ff-6755-4d7d-941d-adc1e2dfc7d0"
]
}POST /api/Bundle/DeleteBundleDraft?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 51
{
"BundleId": "ad1f2fb5-a578-477b-ad6a-78a96fdf40dc"
}POST /api/Bundle/UpdateWebhookUrl?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 72
{
"BundleId": "c6d21030-2ab4-4098-b5fa-e1c10759f4be",
"EventWebhookUrl": ""
}GET /api/Bundle/ListPendingArchive?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"Id": "text",
"TenantId": "text",
"ReviewUrl": "text",
"DraftUrl": "text",
"Subject": "text",
"Body": "text",
"FromName": "text",
"Customers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"Documents": [
{
"Document": {
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
},
"DocumentOrder": 1,
"CustomerSigners": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"CustomerViewers": [
{
"Customer": {
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"PreferredName": "text"
},
"LastSigner": true,
"SigningGroup": 1,
"CustomerSignUrl": "text",
"CustomerBundleStatus": "NoActions",
"LockLastSigningGroup": true,
"CannotRemoveFromBundleDraft": true
}
],
"DocumentState": "Draft"
}
],
"DueDate": "2025-12-15T19:58:31.285Z",
"DueReminderMode": "DontRemind",
"OverdueReminderMode": "DontRemind",
"DateSent": "2025-12-15T19:58:31.285Z",
"DateCompleted": "2025-12-15T19:58:31.285Z",
"DateArchived": "2025-12-15T19:58:31.285Z",
"LastReminderSent": "2025-12-15T19:58:31.285Z",
"State": "Draft",
"ViewMode": "SmsToSign",
"SigningMode": "SignWhole",
"Settings": {
"EmailPreference": "FuseSignEmails",
"AlwaysSendFinalisationEmail": true,
"WebhookUrl": "text",
"DisableFinaliseNow": true,
"DisableRetract": true,
"DisableReminders": true,
"CustomBranding": {
"ButtonColor": "text",
"BannerColor": "text",
"LogoUrl": "text",
"FromName": "text"
},
"RedirectUrl": "text",
"RedirectDelaySeconds": 1,
"AuditType": "Included",
"ContextUrl": "text"
},
"Meta": "text"
}
]binarybinaryGET /api/Document/Get?TenantId=text&DocumentId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
}POST /api/Document/UploadUsingURL?TenantId=text&Url=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
}POST /api/Document/Upload HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 109
{
"File": null,
"TenantId": "aa8ac6a2-f555-4e7b-ac17-51ade6d83d12",
"Meta": "35cb4e73-1720-4889-bb72-01fd7bec07da"
}{
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
}GET /api/Document/ListPending?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"DocumentId": "text",
"BundleId": "text",
"Meta": "text",
"DisplayName": "text",
"EstimatedSize": 1,
"SignedPDFDownloadUrl": "text"
}
]GET /api/Document/Download?TenantId=text&BundleId=text&DocumentId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
binaryPOST /api/Document/Delete?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: */*
Accept: */*
Content-Length: 53
{
"DocumentId": "ae85dc38-b2dd-4228-b2ec-4d4c834fd75f"
}{
"Result": true
}GET /api/Document/DownloadAudit?TenantId=text&BundleId=text&DocumentId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
GET /api/Document/DownloadDocumentNoAudit?TenantId=text&BundleId=text&DocumentId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"IsArchived": true,
"PreferredName": "text"
}[
{
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"IsArchived": true,
"PreferredName": "text"
}
]GET /api/Customer/Get?TenantId=text&CustomerId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"IsArchived": true,
"PreferredName": "text"
}POST /api/Customer/Create?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 195
{
"CustomerId": null,
"Name": "",
"Email": "",
"PhoneNumber": "",
"NoMobile": false,
"Meta": "",
"CannotModify": false,
"Options": {
"IgnorePhoneNumberIfInvalid": false,
"UpdateExistingCustomersByMetaMatch": false
}
}GET /api/Customer/Search?TenantId=text&SearchString=text&CollapseDuplicates=true&ExcludeArchived=true HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
GET /api/Customer/SearchByMetaData?TenantId=text&MetaDataSearch=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"CustomerId": "text",
"TenantId": "text",
"Name": "text",
"Email": "text",
"PhoneNumber": "text",
"NoMobile": true,
"Meta": "text",
"CannotModify": true,
"Source": "Manual",
"CustomerEditLink": "text",
"TotalLiveBundlesForCustomer": 1,
"TotalBundlesForCustomer": 1,
"IsArchived": true,
"PreferredName": "text"
}
]GET /api/Customer/GetCountryCodes HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
"text"
]GET /api/Tenant/List HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"Id": "text",
"Name": "text"
}
]GET /api/Tenant/GetBillingState?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"CurrentBillingPlan": {
"Id": "text",
"PlanLabel": "text",
"AllowFuseDocsIntegration": true,
"IsTrial": true,
"IsRetired": true,
"PlanCreditsPerPeriod": 1
},
"SubscriptionStatus": "None",
"CreditSummary": {
"LastUpdated": "2025-12-15T19:58:31.285Z",
"CreditsRemaining": 1,
"NextUpdating": "2025-12-15T19:58:31.285Z"
}
}GET /api/Tenant/GetDefaultSettings?TenantId=text HTTP/1.1
Host: api.fuse.work
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"DefaultBundleReminder": "DontRemind",
"DefaultOverdueBundleReminder": "DontRemind",
"DefaultViewMode": "SmsToSign",
"EnabledMixedViewMode": true,
"DefaultRecipientReceiveMode": "EmailWithAttachments",
"DefaultCountryCode": "text",
"EnableDefaultDueDate": true,
"DefaultDueDateSpan": 1,
"DefaultSigningMode": "SignWhole",
"DefaultRejectionMode": "RejectDocumentAllowBundleFinalisation",
"DefaultSMSNotificationMode": "Off"
}FuseSign OAuth 2. Use this for most implementations.
FuseSign Tenant ID
Error message
GET /api/Tenant/GetTeams?tenantId=text HTTP/1.1
Host: localhost:3003
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"Id": "text",
"Name": "text"
}
]