Compliance
The brokerage's compliance setup: package templates, the compliance program, retention, monitoring alerts and policies.
List the requirements a package slot can use
The requirements that a compliance package template can put in a slot: the built-in disclosures and the brokerage's own requirements. Put the key in requirement_key. A team template can use a requirement of its team. A brokerage template can use only a brokerage_wide requirement.
query Parameters
team_idOnly the requirements that a template of this team can use. Without it, the list has the requirements of every team the broker can change.
List the requirements a package slot can use › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
List compliance package templates
The layouts that a deal's compliance package is built from, as the compliance hub shows them: the brokerage's templates first, then the templates of the teams the broker is on. An archived template is not listed.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
ownerOnly team templates or only brokerage templates.
team_idOnly the templates of this team.
List compliance package templates › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Create a compliance package template
Makes a package template for a team, or for the brokerage when team_id is null. The broker must be able to change the team. Only a compliance administrator can make a brokerage template. A template only sets the layout of a package: it does not change what a deal must have.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Create a compliance package template › Request Body
team_idThe team that owns the template. Null for a brokerage template, which only a compliance administrator can make. Find the team ids with GET /v1/teams.
nameThe name of the template. It must be unique for its owner.
descriptionWhat the template is for.
include_coverThe package starts with a cover page. Default true.
cover_titleThe title on the cover page. Default Compliance package.
cover_messageThe message on the cover page.
The documents in the package. Each requirement and each position can be used one time. This replaces all the slots.
Create a compliance package template › Responses
Success
successAlways true on a successful response.
The requested record.
Archive a compliance package template
Archives the template, as the compliance hub does. It is no longer offered for a deal. A package already made from it stays on its deal.
path Parameters
idResource id.
Archive a compliance package template › Responses
Success
successAlways true on a successful response.
The requested record.
Update a compliance package template
Changes the fields that you send. slots replaces all the slots. The owner of a template cannot change: make a new template. A package already on a deal keeps the layout it was made from.
path Parameters
idResource id.
Update a compliance package template › Request Body
nameThe name of the template. It must be unique for its owner.
descriptionWhat the template is for.
include_coverThe package starts with a cover page.
cover_titleThe title on the cover page.
cover_messageThe message on the cover page.
The documents in the package. Each requirement and each position can be used one time. This replaces all the slots.
Update a compliance package template › Responses
Success
successAlways true on a successful response.
The requested record.
Read a deal's compliance package
The compliance package of the deal: one PDF of the deal's documents, in the order of a template, for a lender or an auditor. It shows each item, what fills it, and the checks on the package. A deal with no package yet gets 404: make one with POST /deals/{id}/compliance/package.
path Parameters
idResource id.
Read a deal's compliance package › Responses
Success
successAlways true on a successful response.
The requested record.
Make a deal's compliance package from a template
Makes the package of the deal from a template, and fills each item from the deal's documents and disclosures. If the deal already has a package, this makes it again from the template, and the changes to the old package are lost. The response is 201 for a new package and 200 for a package made again. Nothing is built or sent: build it with POST /deals/{id}/compliance/package/build.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Make a deal's compliance package from a template › Request Body
template_idThe template to build the package from: one of the deal's team, or a brokerage template. Find it with GET /v1/compliance/package-templates?team_id=. If the deal already has a package, this makes it again from this template and the broker's changes are lost.
Make a deal's compliance package from a template › Responses
Success
successAlways true on a successful response.
The requested record.
Change a deal's compliance package
Changes the cover page, and the name, place, or inclusion of the items that you send. The package then needs a new build. Leaving out a required item does not remove the requirement: the build is refused until the item is in again.
path Parameters
idResource id.
Change a deal's compliance package › Request Body
include_coverThe package starts with a cover page.
cover_titleThe title on the cover page.
cover_messageThe message on the cover page.
The items to change. An item that you do not send stays as it is. Each position must be unique.
Change a deal's compliance package › Responses
Success
successAlways true on a successful response.
The requested record.
Build a deal's compliance package
Starts the build of the package into one PDF, and returns the package with status building. Read the package again to see when it is ready. The build is refused while a finding is a blocker: the details list the findings. Nothing is sent.
path Parameters
idResource id.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Build a deal's compliance package › Responses
Success
successAlways true on a successful response.
The requested record.
Get a link to a deal's compliance package PDF
A signed link to the built PDF of the package. It works for five minutes. The link is refused while the package is not built, or changed after its build.
path Parameters
idResource id.
Get a link to a deal's compliance package PDF › Responses
Success
successAlways true on a successful response.
The requested record.
Retrieve the compliance program
The brokerage's compliance program, as its compliance setup shows it: the officers, the screening and identity rules, who gets each alert, the five program documents, and the firm's facts that the borrower disclosure prints. A brokerage has one program.
Retrieve the compliance program › Responses
Success
successAlways true on a successful response.
The requested record.
Update the firm's disclosure facts
Changes the facts about the brokerage that the borrower disclosure prints: whom the brokerage acts for, how many lenders it acted for last year, and whether it lends. Null clears a fact, and the disclosure then prints it unanswered. Only a compliance administrator can change them. The rest of the program changes only in BrokerPlus.
Update the firm's disclosure facts › Request Body
representation_basisWhom the brokerage acts for: the borrower, the lender, or both. Null clears it.
lenders_acted_for_previous_yearHow many lenders the brokerage acted for in the previous fiscal year. Null clears it.
was_lender_previous_yearThe brokerage was itself a lender in the previous fiscal year. Null clears it.
acts_as_lender_on_filesThe brokerage lends its own funds on a file. Null clears it.
Update the firm's disclosure facts › Responses
Success
successAlways true on a successful response.
The requested record.
List compliance training records
The compliance training that each broker in the brokerage finished, newest first. Only a brokerage administrator can read them.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
user_idOnly the records of this broker.
List compliance training records › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
List record retention policies
How many years BrokerPlus keeps each kind of record, by province.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
List record retention policies › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
List monitoring alerts
The alerts that screening raised about clients, the most recent first. A compliance reviewer sees every alert in the brokerage. A broker sees the alerts on their own clients. An alert is dismissed or resolved only in BrokerPlus.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
updated_sinceISO 8601 date-time, for example 2026-10-01T00:00:00Z. Returns only rows changed at or after it, in updated_at order and then id order, oldest first. A value that is not ISO 8601 gets 400 VALIDATION_ERROR.
after_idUse with updated_since to read the next page of a sync. Send the updated_at and id of the last row you read: the list then starts after that row, and a row that changes while you sync cannot be skipped. Keep page at 1. Without updated_since it gets 400 VALIDATION_ERROR.
statusOnly the alerts with this status.
severityOnly the alerts with this severity.
contact_idOnly the alerts about this client.
List monitoring alerts › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
List e-signing rules
Which connected e-signing provider a team's documents go out through: the team's default, and an exception for a lender that does not accept it. Lists the rules of the broker's teams, all on one page.
List e-signing rules › Responses
Success
successAlways true on a successful response.
The page of results. The endpoint description and the Pagination guide give the order.
Offset pagination. Page forward until page reaches total_pages.
Set an e-signing rule
Sets the team's default provider, or the provider for one lender. The team must have connected the provider in BrokerPlus. A team has one default and one rule per lender, so a second call for the same rule changes it: that answers 200, and a new rule 201.
Headers
Idempotency-KeyOptional for POST. An authorized retry with the same method, path, and exact body returns the stored response. Reservations last 24 hours. They belong to the original API key and broker. Reconcile uncertain results before you use a new key.
Set an e-signing rule › Request Body
scopedefault for the team's provider, lender for one lender.
providerThe e-signing provider, for example docusign. The team must have connected it in BrokerPlus.
lender_slugThe lender. Needed for a lender rule.
team_idThe team whose connection the rule uses. Needed only when more than one of the broker's teams connected the provider.
noteWhy the rule is there, for the next broker.
Set an e-signing rule › Responses
Success
successAlways true on a successful response.
The requested record.
Delete an e-signing rule
Deletes the rule. A lender's documents then go out through the team's default, and with no default, through BrokerPlus's own signing.
path Parameters
idResource id.
Delete an e-signing rule › Responses
Success
successAlways true on a successful response.
The requested record.