Introduction
Merchants Bonding API.
The Merchants Bonding API supports the full lifecyle of commercial bonds. This includes:
- Quoting, ordering, issuing
- Bond documents
- Correcting and endorsing
- Canceling and reinstating
- Bond form metadata via the /v1/obligations endpoint
Glossary of Surety Bond Terms
| Term | Description |
|---|---|
| Account | A principal (business or individual) that has an established relationship with an agency for bonding purposes. |
| Agency | An insurance agency authorized to sell and service surety bonds on behalf of Merchants Bonding Company. |
| Attorney-in-Fact | A licensed agent authorized to sign bonds on behalf of the surety company. |
| Bond Amount | The maximum liability/coverage of the bond, also known as the penal sum. |
| Cancellation | The termination of a bond before its expiration date, initiated by the principal, obligee, or surety. May result in a return premium calculated on a flat (full refund) or pro-rata (partial refund) basis. Notices of Cancellation are sent to the principal and obligee. |
| Commercial Bond | A surety bond that guarantees compliance with licenses, permits, or regulations (e.g., notary bonds, contractor license bonds). Also known as a license and permit bond. |
| Contract Bond | A surety bond that guarantees performance of a construction contract, including payment and performance bonds, bid bonds, and maintenance bonds. |
| License Plate | Internal code identifying an obligation type (e.g., "PNOTR" for Notary). Used in order requests. |
| Non-Renewal | A decision by the surety not to renew a bond beyond its current term. Takes effect at the bond's expiration date and typically results in no return premium, since the bond completes its full term. |
| Obligee | The party (typically a government entity) that requires the bond and is protected by it. |
| Obligation | A specific bond type for a particular state and bond amount combination. Each obligation has a unique ID and may have state-specific requirements. |
| Premium | The amount paid for the bond. |
| Reinstatement | The restoration of a previously cancelled or terminated bond back to active status. Reverses a prior cancellation, restores premium and commission amounts, and generates rescind notices to the principal and obligee. |
| Principal | The party who purchases the bond and is obligated to perform the bonded obligation (e.g., a contractor or notary). |
| Surety | The insurance company (Merchants Bonding Company) that guarantees the principal's performance. |
Date Formats
All dates use ISO 8601 format: YYYY-MM-DD (e.g., 2024-01-15).
API Definitions
| Term | Meaning |
|---|---|
| API key | Identifier used by software during requests that identify the requestor. |
| Order | An API request to issue a bond immediately upon approval. Contains principal information, bond details, and payment information. |
| Quote | An API request to obtain bond approval without immediate issuance. Requires a separate fulfillment step to issue the bond. |
| Correction | A minor change to an existing bond or order. These updates are only available within 60 days of the submission date and only on certain fields. |
| Updateable Field | Fields that can be updated by the updates API. |
| Correctable Field | Fields that can be changed by the corrections API. |
Work Flow
There are a number of ways to order, quote and issue commercial bonds. For instant issue bonds, which do not require credit check, you can order and issue the bond in a single step. See the Order commercial bonds workflow below.
If you prefer to get a quote before issuing a bond, you can follow the "Quote commercial bond" flow below.
Below lists a number of different work flows and operations. To see the details of the API calls, see the API Reference
Order commercial bonds
This work flow allows you to order and issue a bond in a single API call. After doing that you can retrieve the documents.
- Use
GETon/v1/obligationsfor obligation id's you will use to validate or submit and order. - Use
POSTon/v1/orders/validateto send order parameters and determine if it would succeed. optional - Use
POSTon/v1/ordersto send us an order and issue it in a single step. - Use
GETon/v1/orders/<order id>to look up an order. - Use
GETon/v1/orders/<order id>/documentsto retrieve documents for an order. - Use
GETon/v1/orders/<order id>/documents/<identifier>to retrieve a specific document for an order.
Quote commercial bond
This creates a quote for a bond that is valid for 60 days. When the quote is approved you can then issue the bond with another API call. You can also edit quotes to change information.
- Use
GETon/v1/obligationsfor obligation id's you will use to validate or submit and order. - Use
GETon/v1/obligations/<obligation id>to find out what optional fields are avaiable on the obligation. - Use
POSTon/v1/quotesto send request for a quote on a specific obligation for an applicant. This will return an order id.
Edit quote
You can edit approved quotes and orders. You cannot edit an issued or fulfilled order. _Note: This is a v2 endpoint
- Use
PATCHon/v2/orders/<order id>to send request with a JSON payload of attributes you want to change.
Issue commercial bond
This lets you issue a bond from a quote. You can only issue approved bonds.
- Use
POSTon/v1/orders/<order id>/issueto bind the quote and issue the bond. This only works if the order status is 'approved'. - Use
GETon/v1/orders/<order id>/documentsto retrieve documents for an order. - Use
GETon/v1/orders/<order id>/documents/<identifier>to retrieve a specific document for an order.
Cancel commercial bond
- Use
POSTon/v1/commercial_bonds/<bond number/cancelto cancel the bond.
Non-renew a commercial bond
- Use
POSTon/v1/commercial_bonds/<bond number/nonrenewto cancel a bond as a non-renew.
Reinstate commercial bond
- Use
POSTon/v1/commercial_bonds/<bond number/reinstateto reinstate the bond. It will be reinstated as of the date of cancellation.
Endorse or update commercial bond
- Use
PATCHon/v1/commercial_bonds/<bond number>to update the bond with changes. The changes are passed in as JSON with attributes of the changed fields.
Authentication
Merchants Bonding uses API keys to allow access to the API.
Our API expects for the API key to be included in all API requests to the server in a header that looks like the following:
API_KEY: keykeykeykey
Your API key also controls whether you can submit work in progress updates, commercial bond information, or both.
This is maintained by Merchants Bonding company.
Obligations
There a some specific rules around bond approvals that are determined by the values below.
- instant_issue: when true the bond will be approved instantly if the bond amount is below the instant_issue_upper_limit value
- instant_issue_upper_limit: the top bond dollar amount where instant issue could happen
- automated_underwriting: when true we will try to credit approve the bond when the bond amount is below the automated_underwriting_upper_limit value
- automated_underwriting_upper_limit: the top bond dollar amount where credit approval could happen
Anything quote or order with a bond amount above the automated_underwriting_upper_limit will end up as pending and need manual approval from an underwriter inside Merchants. There are other types of quotes that could be pending. For example if the credit check fails. Or when we don't recieve owner information for the quote.
Errors
{
"success": false,
"errors": {
"field": [
"a reason",
"another reason"
],
"another_field": [
"a reason",
]
}
}
There will be an errors key in the response, which will typically have a field
or attribute name (bond_amount), with possibly multiple error messages.
| Error Code | Meaning |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 405 | Method Not Allowed |
| 406 | Not Acceptable |
| 500 | Internal Server Error |