Only this pageAll pages
Powered by GitBook
1 of 15

FuseSign API

GETTING STARTED

Loading...

Loading...

Deep Dives

Loading...

Loading...

Loading...

Loading...

API References

Loading...

Loading...

Loading...

Loading...

Loading...

Resources

Scopes

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.

Usage of Scopes

  1. Access Control: Limit access to resources, e.g., FUSESIGN:OWN.

  2. Granularity: Offer different access levels.

  3. Authorization: Users consent to requested scopes.

  4. Token Enforcement: Tokens carry scopes to restrict access.

Scopes ensure applications request only necessary permissions, improving security and user trust.

Available Scopes

FuseSign has the following available Scopes

Scope Name
Access

Authorization

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:OWN scope
FUSESIGN scope

Webhooks

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.

Webhook Structure

The webhook event structure is of type TransactionalBundleWebhookPayload:

Webhook Events List

Event
Description

Webhook Setup

When a bundle is created via specify Settings > WebhookUrl in the payload:

Webhook authentication

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.

Webhook retry logic

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 :)

QuickStart Guide

An example workflow for signing documents

  1. Register via OAuth for the target user - retrieve their Tenant Id via /api/Tenant/List

  2. Upload document(s) via the /api/Document/Upload endpoint.

    • Record the ID(s) of the uploaded documents.

  3. 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.

  4. 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]

  5. 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.

  6. 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 :) )

Authentication

To get started you will need a developer account. Please contact to arrange a test account.

There are two main methods of authentication:

  1. 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.

  2. Wholesale token

All operations require a wholesale token (or OAuth2 bearer access token) and a TenantId.

OAuth 2 Register Method

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


Wholesale token Method

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

Example: Bundle Create

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

- A simple API key which is provided to you to act as a key for your FuseSign account
  • 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
    DueDate
    ,
    DueReminderMode
    and
    OverdueReminderMode
    reminder modes.
  • 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

    https://api.fuse.work/api/Session/OAuthRegister

    Redirect URL

    https://api.fuse.work/api/Session/OAuthGetToken

    RefreshToken URL

    https://api.fuse.work/api/Session/OAuthRefreshToken

    RefreshToken URL

    https://api.fuse.work/api/Session/OAuthTokenRevoke

    /api/Bundle/Create
    /api/Bundle/Get
    /api/Document/Download
    /api/Bundle/Archive
    support@fuse.work
    support@fuse.work
    Bundle/Create
    /api/document/upload
    {
      "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

    5th and final retry – 120 minutes thereafter

    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)

    Bundle Create

    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.

    A bundle is a collection of messages, settings, recipients, documents and optionally placeholders.

    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 Mode

    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.

    Example Payload (Sign Entire)

    This is the payload mentioned in

    A simple example payload for the endpoint:

    Example Signed PDF (Sign Entire)

    Signature Placeholders Mode

    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.

    Signature Placement Type

    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.

    Signature Placements

    • Standard - Adds a standard signature placeholder to the document

    • WithDate - Similar to the above, but also automatically adds the signing date below the signature

    User Inputs

    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

    Signature Stamps

    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

    PlacementType

    Placement type is another property of CustomerInputElements . There are two options for placement:

    ByCoordinate (for static documents)

    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)

    Example Payload (Signature Placeholders, co-ordinate)

    A complex example payload for the endpoint:

    Note the Use of CustomerInputElements

    Using FuseSign to get precise co-ordinates

    We recommend creating a bundle in our app at , dragging and dropping placeholders to get the exact co-ordinate you need:

    Example Signed PDF (Placeholder mode)

    ByAnchorText (for dynamic documents)

    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)

    Pending Documents

    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.

    Base64 Uploads

    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.

    Session

    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"
      }
    }
    Bundle
    Paragraph - Adds a multi-line text input that you recipient can fill in
    Administrative Settings
    QuickStart Guide
    Bundle/Create
    https://app.fuse.work/fusesign/
    Note the initials on the bottom left of the page
    Sign Entire document audit
    Placeholders Tab can inform you of the exact X, Y, W and H of a placeholder
    Standard placeholder at the top of the page
    Placeholders document audit
    {
      "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"
      }
    }
    Bundle

    Integrating With Us

    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!

    Integration Types

    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.

    How we work with Application Partners

    • 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, .

    In Review Mode

    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!

    Example Signed Document While InReview

    What happens on the review call

    Review of Use Case Alignment

    To get InReview toggled off we need to see demonstration over video call, or recording of the signing flow:

    1

    Upload a document

    If uploading a document via please do not use base64!

    2

    Create a bundle

    We have a few different ways to create a bundle, read more in this deepdive

    3

    Questions to expect

    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?

    Notes for Production Use

    • Confirm that any applicable URLs for uploads are whitelisted.

    Final Decision and Account Upgrade

    • 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 .

    An Overview

    Welcome to the FuseSign API

    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

    Key Features

    • 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.

    Special Cases

    • 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 .

    Bundle

    A bundle is a collection of messages, settings, recipients, documents and optionally placeholders.

    see Bundle Createfor a deep dive with more explanation

    {
      "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.

  • Sign the bundle

    Protip: the response to a bundle create contains the property CustomerSignUrl

    4

    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?

  • Read about our pricing plans
    space
    Bundle Create
    developersupport@fuse.work
    "Sign Entire" document, signed while InReview
    In Review Mode
    POST /api/Bundle/Create

    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.

  • developersupport@fuse.work
    Document

    Document

    A file (.pdf) that is used for signing.

    Tenant

    An organisational construct within FuseSign.

    Customer

    The person who will be receiving the signing action.

    get
    Query parameters
    response_typestringRequiredDefault: code
    client_idstringRequired
    redirect_uristringRequired
    ScopestringRequired
    Statestring | nullableOptional
    Realmstring | nullableOptional
    Responses
    200

    Success

    application/json
    Responsestring · binary
    400

    Bad Request

    application/problem+json
    get
    /api/Session/OAuthRegister
    post
    Body
    grant_typestring · min: 1RequiredDefault: authorization_code
    codestring · min: 1Required
    client_idstring · min: 1Required
    client_secretstring · min: 1Required
    redirect_uristring · min: 1Required
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/problem+json
    post
    /api/Session/OAuthGetToken
    post
    Body
    grant_typestring · min: 1RequiredDefault: refresh_token
    refresh_tokenstring · min: 1Required
    client_idstring · min: 1Required
    client_secretstring · min: 1Required
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/problem+json
    post
    /api/Session/OAuthRefreshToken
    post
    Body
    client_idstring · min: 1Required
    refresh_tokenstring · min: 1Required
    Responses
    200

    Success

    application/json
    Responsestring · binary
    400

    Bad Request

    application/problem+json
    post
    /api/Session/OAuthTokenRevoke

    Gets the details of a bundle.

    get

    Gets the detailed information of a bundle

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: d7286aea-0a10-4efe-bc8c-bb115a952c2a
    BundleIdstring · guidRequired

    Bundle Id

    Example: 452fc311-a3d9-4f61-b652-83805951083b
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Bundle/Get

    Creates a new bundle.

    post

    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.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Body
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/Create

    Get bundle audit history.

    get

    Get a bundles history, including things like Finalisation, Errors and other actions. We recommend using Webhooks instead where appropriate.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 01c8a9db-22a4-44d1-a300-fddde0b40c01
    BundleIdstring · guidRequired

    Bundle Id

    Example: f97bf6a0-9257-4197-92c1-1b71e80bc25c
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Bundle/GetHistory

    Retract a bundle.

    post

    Request bundle retraction. This will cancel the outstanding sign request

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 8de00a27-3d18-4a43-b10a-e8425c6c5570
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: 12aeda3e-f999-4bbd-bf30-b6876fd472f1
    Reasonstring · min: 1Required

    [Mandatory] Reason for retraction

    Example: Reason
    Messagestring | nullableOptional

    [Optional] Additional message

    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/Retract

    Mark Bundle for Archive

    post

    Mark the bundle as "Closed" which will allow it to be archived

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: cb2cf62e-a415-4c4a-9bf7-0ee562f9cb17
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: 9f0c8f03-c080-48d0-a06f-b284cd42382a
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/MarkReadyForArchive

    Gets a list of bundles.

    post

    Gets a list of bundles for the specified tenant.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: ac1f0fb9-8a8e-4b93-b22b-f6f6bb0118e5
    Body
    Pageinteger · int32Optional

    Search page (50 records per page). 0 Based indexing.

    Example: 0
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/Search

    Archive a completed bundle

    post

    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

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: af75f285-cd34-44cc-8130-6491cb40b9d2
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: 3604c946-4794-419d-a01b-ae873b0f240f
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/Archive

    Remind a bundle.

    post

    Send a reminder for a bundle (Requires Emails to be enabled for the bundle)

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 90eda416-7717-44a8-8ba2-5a6178f7274f
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: e6156e23-6ae7-409e-9d9b-d06cc949d1c3
    ReminderNotesstring | nullableOptional

    Notes to include in the email

    TargetCustomerIdsstring · guid[] · min: 1Required

    List of customer IDs (can be retrieved on Bundle/Get

    Example: ["ade991ff-6755-4d7d-941d-adc1e2dfc7d0"]
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/SendReminder

    Delete a Bundle Draft

    post

    For a given bundle in draft state, delete the draft. This will consequently unlink associated documents and customer actions. Documents will not be deleted.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 46581b19-16e8-4d52-9c13-d231a61adc26
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: ad1f2fb5-a578-477b-ad6a-78a96fdf40dc
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/DeleteBundleDraft

    Update the webhook URL for a bundle

    post

    Update the webhook URL. All future webhooks will be sent to the new URL.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 52a5c58f-4d84-4eae-a172-3d13b2c72226
    Body
    BundleIdstring · guid · min: 1Required

    Bundle Id

    Example: c6d21030-2ab4-4098-b5fa-e1c10759f4be
    EventWebhookUrlstring · min: 1Required

    New webhook URL

    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Bundle/UpdateWebhookUrl

    List Pending archive bundles

    get

    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

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: de0d1928-1ce1-484b-acb8-c7b0583199fa
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Bundle/ListPendingArchive

    Produce the details of a specific document in the system.

    get
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 10f4c49b-b63d-4b74-b370-39c345e13320
    DocumentIdstring · guidRequired

    Document Id

    Example: b29354d4-e38b-4a60-b0a8-b6f5387af387
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    get
    /api/Document/Get

    Uploads a given document into the system to be attached to bundles. Domain must be preapproved in developer settings page.

    post
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: f0f02303-b6f3-4917-a067-522203a36b6f
    UrlstringRequired

    Publically accessible Url with a pdf - must be added to your developer domain whitelist

    Example: https://domain/document.pdf
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Document/UploadUsingURL

    Uploads a given document into the system to be attached to bundles.

    post
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Body
    Filestring · binaryOptional
    TenantIdstring · guid · min: 1Required

    FuseSign Tenant Id

    Example: aa8ac6a2-f555-4e7b-ac17-51ade6d83d12
    Metastring | nullableOptional

    Metadata to attach to document for later use

    Example: 35cb4e73-1720-4889-bb72-01fd7bec07da
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    post
    /api/Document/Upload

    List all documents which have been uploaded which are not yet connected to a bundle.

    get
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 9d7dca51-c76f-4e9d-b89a-053c9e49b7e9
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    get
    /api/Document/ListPending

    Download the pdf document in its current state (signed or unsigned)

    get
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 3ef9c7ea-98c4-4559-b664-af526e920c30
    BundleIdstring · guidRequired

    Bundle Id

    Example: a4594cb8-dc63-4c73-ba4e-5868e38a2f36
    DocumentIdstring · guidRequired

    Document Id

    Example: b150543b-579e-418c-b3a0-40c2c007b026
    Responses
    200

    Success

    application/octet-stream
    Responsestring · binary
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    get
    /api/Document/Download

    If the target document is not attached to a bundle, you can delete it.

    post
    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 4bcce562-b5bf-4f3a-a215-07c9f6fee104
    Body
    DocumentIdstring · guid · min: 1Required

    Document Id

    Example: ae85dc38-b2dd-4228-b2ec-4d4c834fd75f
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Document/Delete

    Download the pdf document audit trail

    get

    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

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 713e37e5-754d-4d41-894e-0a13aed99dbc
    BundleIdstring · guidRequired

    Bundle Id

    Example: db67c08a-eebb-4d50-9b82-5cb188c31571
    DocumentIdstring · guidRequired

    Document Id

    Example: d5912a18-7fd1-4951-8cfd-daab5e918d3d
    Responses
    200

    Success

    application/octet-stream
    Responsestring · binary
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    get
    /api/Document/DownloadAudit

    Download a signed document without the audit trail

    get

    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

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 1721ffbd-59b4-4eb6-96e7-bfd86001fb78
    BundleIdstring · guidRequired

    Bundle Id

    Example: 0f114c5b-be9e-4cb4-b34a-dcbed679cc02
    DocumentIdstring · guidRequired

    Document Id

    Example: d3b24b5e-65d4-4399-a839-da59e414dc97
    Responses
    200

    Success

    application/octet-stream
    Responsestring · binary
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    404

    Not Found

    application/json
    get
    /api/Document/DownloadDocumentNoAudit

    List tenants

    get

    Get the list of available tenants for the current OAuth token

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Responses
    200

    Success

    application/json
    400

    Error message

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Tenant/List

    Produce a summary of the billing state of a given FuseSign tenant.

    get

    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

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 6a15525a-e27c-4c2d-a107-b0bc63430baf
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Tenant/GetBillingState

    Produce a summary of the default configuration of a given FuseSign tenant.

    get

    Produces the summary of the business configuration for this tenant. The requesting user must be a FuseSign user to access this information.

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 19502666-939e-472f-8bcb-410bfb0cb875
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Tenant/GetDefaultSettings

    Get customer

    get

    Get specific customer details

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 718c839a-db4f-44bb-b54a-470a56e2c063
    CustomerIdstring · guidRequired

    Customer Id

    Example: 9ddcf31c-2ae1-4c9f-96fd-325037cad951
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Customer/Get

    Create a new customer

    post

    Create a new customer record

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 9e5cd0d3-a062-472a-a1fc-e74ab18648e7
    Body
    CustomerIdstring · guid | nullableOptionalDeprecated
    Namestring · min: 1Required

    Customer Name (Required)

    Emailstring · email · min: 1Required

    Customer Email (Required)

    Pattern: ^[^@]+@[^@]+$
    PhoneNumberstringOptional

    Customer mobile number. Required for 2FA. If NoMobile is true this is not required. Must be in international format: +61413121121

    NoMobilebooleanOptional

    No Mobile flag, means Phone Number is ignored

    Example: false
    Metastring · max: 128Optional

    Optional 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

    CannotModifybooleanOptional

    Prevents end users from modifying this contact within the FuseSign application

    Example: false
    Optionsone ofOptional

    Options for contact creation and validation

    Example: {"IgnorePhoneNumberIfInvalid":false,"UpdateExistingCustomersByMetaMatch":false}
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    post
    /api/Customer/Create

    Search customer

    get

    Search for customer based on Name/Email/Phone details

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 93b6f5fb-50a5-4326-86f6-508b58435583
    SearchStringstringRequired

    Wildcard search text

    CollapseDuplicatesbooleanRequired

    Collapse any duplicate records

    Example: false
    ExcludeArchivedbooleanRequired

    Exclude archived contacts

    Example: true
    IncludeLiveBundleCountboolean | nullableOptional

    Include live bundle count

    IncludeBundleCountsboolean | nullableOptional

    Include live bundle count

    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Customer/Search

    Search customer

    get

    Search for customer based on metadata field

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    TenantIdstring · guidRequired

    FuseSign Tenant Id

    Example: 94523ce8-5a86-4327-b90a-9de98d4432cc
    MetaDataSearchstringRequired

    Wildcard search text

    Example: meta
    Responses
    200

    Success

    application/json
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Customer/SearchByMetaData

    List country codes

    get

    Gets the list of all country codes supported by the platform

    Authorizations
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Responses
    200

    Success

    application/json
    Responsestring[]
    400

    Bad Request

    application/json
    401

    Unauthorized

    application/json
    403

    Forbidden

    get
    /api/Customer/GetCountryCodes
    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'"
    Subjectstring · max: 200Optional

    Bundle subject

    Example: test
    BodystringOptional

    Bundle Body message

    Example: body
    CreateModeone ofOptional

    Create and send or create as draft

    Example: CreateAndSend
    string · enumOptionalPossible values:
    CreatedBystring · emailOptional

    Sets 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.

    Pattern: ^[^@]+@[^@]+$
    DueDatestring · date-time | nullableOptional

    The bundle due date (optional)

    DueReminderModeone of | nullableOptional

    Bundle reminder mode (optional)

    string · enumOptionalPossible values:
    OverdueReminderModeone of | nullableOptional

    Bundle overdue reminder mode (optional)

    string · enumOptionalPossible values:
    ViewModeone of | nullableOptional

    The bundle view mode setting. If this is blank the business default is selected and the system falls back to the highest available authentication

    string · enumOptionalPossible values:
    RecipientReceiveModeone of | nullableOptional

    How the recipients receive signed documents

    string · enumOptionalPossible values:
    SigningModeone of | nullableOptional

    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.].

    Example: SignPlacements
    string · enumOptionalPossible values:
    Settingsone ofOptional

    Bundle settings object - API related options.

    Metastring · max: 1000Optional

    Bundle lookup metadata

    TeamIdstring · guid | nullableOptional

    If assigned - apply this team to the bundle. Verify that the user sending the bundle can send on behalf of this team.

    SenderIPstringOptional

    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: */*
    
    binary
    POST /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"
      }
    ]
    binary
    binary
    GET /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: */*
    
    binary
    POST /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 Teams

    get

    Get the list of a tenants teams (accessible to the logged in user)

    Authorizations
    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"
    }
    OAuth2authorizationCodeRequired

    FuseSign OAuth 2. Use this for most implementations.

    Authorization URL: Token URL: Refresh URL:
    Available scopes:
    • : Manage FuseSign Bundles and corresponding data.
    • : Ability to send bundles and extract bundles created by this user only. Special purpose scope, contact support@fuse.work.
    Query parameters
    tenantIdstring · guidRequired

    FuseSign Tenant ID

    Responses
    200Success
    application/json
    400

    Error message

    application/json
    get
    /api/Tenant/GetTeams
    GET /api/Tenant/GetTeams?tenantId=text HTTP/1.1
    Host: localhost:3003
    Authorization: Bearer YOUR_OAUTH2_TOKEN
    Accept: */*
    
    [
      {
        "Id": "text",
        "Name": "text"
      }
    ]