Intakes
The application a client fills in themselves: the standing link anybody can start from, and one intake per client.
Retrieve the standing intake link
The one link a broker shares with anybody who wants to start an application. It is not tied to a client and it does not expire. The url is null until the link has been enabled once.
Retrieve the standing intake link › Responses
Success
successAlways true on a successful response.
The requested record.
Turn the standing intake link on or off
Enabling the link for the first time creates its url. Disabling it stops new intakes but keeps the url, so a link already printed somewhere works again when you enable it.
Turn the standing intake link on or off › Request Body
enabledtrue to accept new intakes on the link, false to stop.
Turn the standing intake link on or off › Responses
Success
successAlways true on a successful response.
The requested record.
List intakes
One row per client application, newest first. updated_since pages on when each last changed, so a daily job can ask for what moved. Asking by contact_id answers an intake the contact is a co-applicant on as well as one in their own name.
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.
deal_idOnly intakes on this deal.
contact_idOnly intakes this contact was asked to fill in.
statusin_progress, submitted, approved, or needs_changes.
List intakes › 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.
Ask a client to fill in an intake
Creates an intake for one client, with or without a deal. delivery of link returns the client's link and sends nothing. delivery of email creates the intake and emails each applicant their link now, from the broker's connected mailbox. It answers 412 EMAIL_NOT_CONNECTED if the broker has no mailbox connected. A key with the no_sending limit cannot use email, and neither can a key whose brokerage's automation policy does not allow messages to clients to be asked for this way (403 POLICY_BLOCKED). A client who already has an open intake answers 409 DUPLICATE_INTAKE.
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.
Ask a client to fill in an intake › Request Body
contact_idThe client to ask. They must already be a contact.
deal_idThe deal this intake belongs to. Leave it out for a new client with no deal yet.
co_applicant_contact_idsOther clients on the same application. Each one gets their own link.
deliverylink returns the link and sends nothing, which is the default. email has BrokerPlus send it from the broker's own mailbox, and needs that mailbox connected.
Ask a client to fill in an intake › Responses
Success
successAlways true on a successful response.
The requested record.
Read an intake's answers
Every question each applicant is asked, grouped by section, with the answer as it stands now. Answers save as the client types, so an intake that is not submitted yet shows what the client has filled in so far, the same as the broker sees in BrokerPlus. Check each applicant's submitted_at to know if the answers are final. The SIN is never returned.
path Parameters
idResource id.
Read an intake's answers › Responses
Success
successAlways true on a successful response.
The requested record.
Approve an intake
Accepts what the client sent, the same as Approve on the intake in BrokerPlus. BrokerPlus builds the submission package and locks the answers. The client gets no message. The intake must be submitted or needs_changes.
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.
Approve an intake › Responses
Success
successAlways true on a successful response.
The requested record.
Ask the client to change answers or send new files
Reopens the answers you name in changes, and refuses the files you name in uploads, now. BrokerPlus emails the client a link to fix them, with your message and a comment on each answer or file, the same as a change request sent on the intake in BrokerPlus. A refused file is replaced when the client sends a new one. The intake moves to needs_changes, and the response is the intake. The client must have submitted the intake first. A key with the no_sending limit cannot use this endpoint.
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.
Ask the client to change answers or send new files › Request Body
messageThe note the client reads in the email, e.g. what to fix and why.
The answers to reopen. Each one shows as a request in the client's portal, with your comment.
Files to refuse. The client who sent each one is asked for a new copy, with your comment. Send changes, uploads, or both.
Ask the client to change answers or send new files › Responses
Success
successAlways true on a successful response.
The requested record.
List what a client was asked for
Every item on the client's portal other than a question: each document, form to sign, consent, identity check and down payment source, in the order the client sees them. Each item lists the applicants it is for, with what each one did about it and the files they sent. The questions and their answers are on GET /intakes/{id}/answers. For only what the client still owes on a deal, use GET /deals/{id}/document-requests.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
List what a client was asked for › 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.
Retrieve one item a client was asked for
One item by its key, with each applicant's state and files.
path Parameters
idResource id.
keyResource id.
Retrieve one item a client was asked for › Responses
Success
successAlways true on a successful response.
The requested record.
Move an item on the broker's board
Puts one applicant's item in a tray on the broker's document board, as a drag on the board does. Send stage verified to accept it. Use it for an item with no file, for example a document the broker already has. To move a file the client sent, use POST /intakes/{id}/uploads/{uploadId}/stage. Nothing goes to the client.
path Parameters
idResource id.
keyResource 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.
Move an item on the broker's board › Request Body
contact_idThe applicant whose item to move, from applicants on the item.
stageThe tray to put the item in on the broker's board. verified marks it accepted. pending and review take it back.
Move an item on the broker's board › Responses
Success
successAlways true on a successful response.
The requested record.
List the files a client sent
Every file the client sent through their portal, newest first. A file the client replaced is not listed. A file becomes a deal document only when the broker verifies it.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
List the files a client sent › 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.
Retrieve a file a client sent
The file's metadata plus a signed download URL valid for five minutes. Follow it, do not store it.
path Parameters
idResource id.
uploadIdResource id.
Retrieve a file a client sent › Responses
Success
successAlways true on a successful response.
The requested record.
Accept a file a client sent
Moves the file to a tray on the broker's document board, as a drag on the board does. Send stage verified to accept it: BrokerPlus reads it and copies it to the deal's documents, and document_id then names the copy. Nothing goes to the client. To refuse a file and ask the client for a new one, use POST /intakes/{id}/request-changes with uploads.
path Parameters
idResource id.
uploadIdResource 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.
Accept a file a client sent › Request Body
stageThe tray to move the upload to. verified accepts it: BrokerPlus reads it and copies it to the deal's documents. pending and review take it back. To refuse a file and ask the client for a new one, use POST /v1/intakes/{id}/request-changes.
folderThe folder for a verified upload, for example income. Only with stage verified.
Accept a file a client sent › Responses
Success
successAlways true on a successful response.
The requested record.
List what the checks raised on an intake
The flags BrokerPlus's checks raised on a client's intake, the most serious first. A flag with audience never_disclose is for the broker only: never pass it on to the client.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
statusactive, resolved, overridden, or stale. Any other value gets 400 VALIDATION_ERROR.
List what the checks raised on an intake › 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 a flag aside
The broker's Override: the flag stops standing against the file, with the reason kept on it and in the audit log. Nothing goes to the client.
path Parameters
idResource id.
flagIdResource 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.
Set a flag aside › Request Body
reasonWhy the flag can be set aside, in at least 10 characters. It is kept on the flag and in the audit log.
Set a flag aside › Responses
Success
successAlways true on a successful response.
The requested record.
Read what the income calculation counts
The broker's choices on the stated income card: the dates the calculation counts, the bank statements and accounts left out, and the income the client declared. accounts lists every bank account on the client's statements. An intake the broker never changed reads with no dates and nothing left out.
path Parameters
idResource id.
Read what the income calculation counts › Responses
Success
successAlways true on a successful response.
The requested record.
Change what the income calculation counts
Sets the dates, the statements and accounts left out, or the declared income, as the stated income card does. A field you leave out keeps its value. BrokerPlus then works the income out again, which takes a moment. Nothing goes to the client.
path Parameters
idResource id.
Change what the income calculation counts › Request Body
date_range_start^(?:(?:\d\d[2468][04…The first day to count, as YYYY-MM-DD. Send null to count from the earliest statement.
date_range_end^(?:(?:\d\d[2468][04…The last day to count, as YYYY-MM-DD. Send null to count to the latest statement.
excluded_upload_idsEvery statement to leave out. This replaces the list: send [] to put them all back.
excluded_account_keysEvery account to leave out, by account_key. This replaces the list: send [] to put them all back.
declared_annual_incomeThe yearly income the client declared, in dollars. Send null to clear.
Change what the income calculation counts › Responses
Success
successAlways true on a successful response.
The requested record.
List the transactions on a client's bank statements
Every transaction BrokerPlus read off the client's bank statements, newest first, with what it was read as and the broker's change, if any. This is the transactions list on the stated income card. An account number is only ever its last 4 digits.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
qText in the description, the bank's name, or an amount.
upload_idOnly transactions on this bank statement.
categoryOnly transactions the income calculation counts as this category.
subcategoryOnly transactions the income calculation counts as this subcategory.
applicant_roleprimary or co_applicant: only that applicant's statements.
date_fromOnly transactions on or after this day, as YYYY-MM-DD.
date_toOnly transactions on or before this day, as YYYY-MM-DD.
excludedtrue for only the transactions the broker took out, false for only the ones counted.
List the transactions on a client's bank statements › 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.
Change how transactions count
Takes transactions out of the income calculation, puts them back, or changes their category, as the stated income card does for the rows the broker selects. A field you leave out keeps each transaction's own value. BrokerPlus then works the income out again and settles any flag about a transaction taken out. Nothing goes to the client.
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.
Change how transactions count › Request Body
transaction_idsThe transactions to change, by id from GET /v1/intakes/{id}/transactions. At most 2000.
categorySet the category. Send null to go back to what BrokerPlus read.
subcategorySet the subcategory. Send null to go back to what BrokerPlus read.
excludedtrue takes the transactions out of the income calculation, false puts them back.
noteA note on why. Send null to clear.
Change how transactions count › Responses
Success
successAlways true on a successful response.
The requested record.
Undo the broker's change to a transaction
The transaction counts again as BrokerPlus read it, and the response is the transaction as it now reads. BrokerPlus then works the income out again. Nothing goes to the client.
path Parameters
idResource id.
transactionIdResource id.
Undo the broker's change to a transaction › Responses
Success
successAlways true on a successful response.
The requested record.
List the broker's notes on an intake
The notes brokers wrote on the items and files of a client's intake, newest first, replies included. Nobody outside the brokerage sees them.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
upload_idOnly notes on this file.
item_keyOnly notes on this item, for any applicant.
List the broker's notes on an intake › 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.
Write a note on an intake
Puts a note on one file (upload_id) or one item (item_key) of the intake, or replies to a note (parent_id). A teammate mentioned in the note is told, as in BrokerPlus. The client never sees it. A note cannot be changed or deleted afterwards, in BrokerPlus or here.
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.
Write a note on an intake › Request Body
bodyThe note body. Plain text or HTML. Unsafe HTML is removed. The result must contain visible content.
upload_idPut the note on this file, from GET /v1/intakes/{id}/uploads. Send this or item_key.
item_keyPut the note on this item, as key in GET /v1/intakes/{id}/items. Send this or upload_id.
contact_idWith item_key: the applicant whose item it is. Defaults to the primary client.
parent_idReply to this note. A reply goes on the same file or item as the note it answers, so send no upload_id or item_key with it. A reply cannot itself be replied to.
Write a note on an intake › Responses
Success
successAlways true on a successful response.
The requested record.
Retrieve a note on an intake
One note that a broker wrote on an item or file of a client's intake, or a reply to one. Nobody outside the brokerage sees it.
path Parameters
idResource id.
noteIdResource id.
Retrieve a note on an intake › Responses
Success
successAlways true on a successful response.
The requested record.
List the changes asked of a client
Every answer and file the broker asked the client to fix on this intake, newest first. To ask for a new one, use POST /intakes/{id}/request-changes.
path Parameters
idResource id.
query Parameters
page1-indexed page number, up to 1000000.
page_sizeRows per page. Capped at 100.
statusopen or resolved. Any other value gets 400 VALIDATION_ERROR.
List the changes asked of a client › 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.
Withdraw a change asked of a client
Removes it, as the broker does in the request panel. Nothing goes to the client.
path Parameters
idResource id.
crIdResource id.
Withdraw a change asked of a client › Responses
Success
successAlways true on a successful response.
The requested record.
Reword a change asked of a client
Changes what the broker told the client about it. Nothing is sent: the client sees the new words the next time they open their link.
path Parameters
idResource id.
crIdResource id.
Reword a change asked of a client › Request Body
commentThe new words for the client. The client sees them the next time they open their link.
Reword a change asked of a client › Responses
Success
successAlways true on a successful response.
The requested record.
Mark a change as done
Marks it resolved, as the broker does in the request panel. Nothing goes to the client.
path Parameters
idResource id.
crIdResource 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.
Mark a change as done › Responses
Success
successAlways true on a successful response.
The requested record.
Reopen a change
Puts a resolved change back to open. Nothing goes to the client.
path Parameters
idResource id.
crIdResource 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.
Reopen a change › Responses
Success
successAlways true on a successful response.
The requested record.
Issue a client's intake link
Issues a link for one client on this intake. BrokerPlus keeps only a fingerprint of a link, so a link already sent cannot be read back: this issues another one, and every link issued for the same intake keeps working until it expires. Pass contact_id for a co-applicant.
path Parameters
idResource id.
query Parameters
contact_idThe co-applicant to issue it for. Omit it for the client the intake is in the name of.
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.
Issue a client's intake link › Responses
Success
successAlways true on a successful response.
The requested record.