Planning
What a broker builds to advise a client: mortgage plans, lender offers and their side-by-side comparison, deal scenarios, and strategy analyses.
List a deal's offers
The lender offers on the deal's offers tab, in the order the broker set. Rates are PERCENT (4.79 means 4.79%).
path Parameters
idResource id.
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 a deal's offers › 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.
Add an offer to a deal
Adds a lender offer to the deal's offers tab, with its fees. Send rate as a PERCENT. BrokerPlus sends nothing 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.
Add an offer to a deal › Request Body
titleThe offer's name, e.g. First National 5-year fixed.
lender_slugThe lender, as the slug GET /v1/lenders uses.
lender_nameThe lender's name, for a lender with no slug.
rate_typeThe rate type. fixed when you leave it out.
product_typeinsured is default-insured with less than 20% down, conventional has 20% or more down and no insurance, and insurable qualifies for insurance the lender buys.
term_monthsThe term, in months.
amortization_monthsThe amortization, in months.
payment_frequencyHow often the payment is made, as payments a year: 12 monthly, 24 semi-monthly, 26 bi-weekly, 52 weekly. Also 1, 2, and 4.
mortgage_amountThe mortgage amount, in dollars.
rateThe rate as a PERCENT, e.g. 4.79 means 4.79%. Not a fraction.
lump_sum_allowance_pctThe yearly lump-sum prepayment allowed, as a PERCENT of the mortgage.
payment_increase_allowance_pctThe yearly payment increase allowed, as a PERCENT of the payment.
prosWhat the broker likes about the offer.
consWhat the broker does not like about the offer.
sort_orderThe position of the offer on the deal. Lower comes first.
The fees on the offer. Replaces every fee when sent.
Add an offer to a deal › Responses
Success
successAlways true on a successful response.
The requested record.
Compare a deal's offers
The offers tab's side-by-side comparison, worked out now: for each offer, the payment, mortgage default insurance, the penalty to break it, the fees and the APR; for each scenario, the mortgage it implies and the payment at each rate. Rates are PERCENT.
path Parameters
idResource id.
Compare a deal's offers › Responses
Success
successAlways true on a successful response.
The requested record.
Update a deal offer
Changes the fields you send and keeps the others. fees replaces every fee, so send each fee to keep.
path Parameters
idResource id.
offerIdResource id.
Update a deal offer › Request Body
titleThe offer's name, e.g. First National 5-year fixed.
lender_slugThe lender, as the slug GET /v1/lenders uses.
lender_nameThe lender's name, for a lender with no slug.
rate_typeThe rate type. fixed when you leave it out.
product_typeinsured is default-insured with less than 20% down, conventional has 20% or more down and no insurance, and insurable qualifies for insurance the lender buys.
term_monthsThe term, in months.
amortization_monthsThe amortization, in months.
payment_frequencyHow often the payment is made, as payments a year: 12 monthly, 24 semi-monthly, 26 bi-weekly, 52 weekly. Also 1, 2, and 4.
mortgage_amountThe mortgage amount, in dollars.
rateThe rate as a PERCENT, e.g. 4.79 means 4.79%. Not a fraction.
lump_sum_allowance_pctThe yearly lump-sum prepayment allowed, as a PERCENT of the mortgage.
payment_increase_allowance_pctThe yearly payment increase allowed, as a PERCENT of the payment.
prosWhat the broker likes about the offer.
consWhat the broker does not like about the offer.
sort_orderThe position of the offer on the deal. Lower comes first.
The fees on the offer. Replaces every fee when sent.
Update a deal offer › Responses
Success
successAlways true on a successful response.
The requested record.
List a deal's scenarios
The what-if scenarios on the deal: a property sold, debts paid out, and the rates to try. Rates are PERCENT.
path Parameters
idResource id.
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 a deal's scenarios › 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.
Add a scenario to a deal
Adds a what-if scenario to the deal. The comparison prices it at each rate in rate_options. BrokerPlus sends nothing 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.
Add a scenario to a deal › Request Body
nameThe scenario's name, e.g. Sell the rental.
product_typeinsured is default-insured with less than 20% down, conventional has 20% or more down and no insurance, and insurable qualifies for insurance the lender buys.
amortization_monthsThe amortization, in months.
down_paymentThe down payment, in dollars.
down_payment_sourceWhere the down payment comes from, e.g. savings or gift.
sales_proceedsThe money from a sale that goes into the file, in dollars.
The debts the scenario looks at. Replaces the list when sent.
The rates to price the scenario at. Replaces the list when sent.
The properties the client sells to fund the file. Replaces the list when sent.
The costs of each sale. Replaces the list when sent.
Where the money from the sales goes.
sort_orderThe position of the scenario on the deal. Lower comes first.
Add a scenario to a deal › Responses
Success
successAlways true on a successful response.
The requested record.
Update a deal scenario
Changes the fields you send and keeps the others. A list you send replaces the stored list.
path Parameters
idResource id.
scenarioIdResource id.
Update a deal scenario › Request Body
nameThe scenario's name, e.g. Sell the rental.
product_typeinsured is default-insured with less than 20% down, conventional has 20% or more down and no insurance, and insurable qualifies for insurance the lender buys.
amortization_monthsThe amortization, in months.
down_paymentThe down payment, in dollars.
down_payment_sourceWhere the down payment comes from, e.g. savings or gift.
sales_proceedsThe money from a sale that goes into the file, in dollars.
The debts the scenario looks at. Replaces the list when sent.
The rates to price the scenario at. Replaces the list when sent.
The properties the client sells to fund the file. Replaces the list when sent.
The costs of each sale. Replaces the list when sent.
Where the money from the sales goes.
sort_orderThe position of the scenario on the deal. Lower comes first.
Update a deal scenario › Responses
Success
successAlways true on a successful response.
The requested record.
List strategy analyses
The strategy analyses the broker built, most recently changed first. An analysis compares up to 8 mortgage options for a client against one of them. Use deal_id for the analyses on one deal.
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 the analyses on this deal.
List strategy analyses › 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 strategy analysis
Saves a strategy analysis, as the strategy board in BrokerPlus saves one. Send each option's rate as a percent. The broker opens it on the board. BrokerPlus sends nothing to the client.
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 strategy analysis › Request Body
titleThe analysis's name.
match_paymenttrue when every option is priced at the same payment.
baseline_indexThe position in options of the option the others are measured against. 0 is the first.
The options compared. At most 8.
client_nameThe client's name as the report prints it.
deal_idThe deal the analysis is on. Null when it is on no deal.
target_paymentThe monthly payment to match, in dollars, when match_payment is true.
client_intentWhat the client plans. It decides which product terms the note leads with.
deal_defenderThe note that explains the recommendation to the client.
Create a strategy analysis › Responses
Success
successAlways true on a successful response.
The requested record.
Update a strategy analysis
Changes the fields you send and keeps the others. options replaces every option, so send each option to keep.
path Parameters
idResource id.
Update a strategy analysis › Request Body
titleThe analysis's name.
client_nameThe client's name as the report prints it.
deal_idThe deal the analysis is on. Null when it is on no deal.
match_paymenttrue when every option is priced at the same payment.
target_paymentThe monthly payment to match, in dollars, when match_payment is true.
baseline_indexThe position in options of the option the others are measured against. 0 is the first.
Replaces every option when sent.
client_intentWhat the client plans. It decides which product terms the note leads with.
deal_defenderReplaces the note when sent.
Update a strategy analysis › Responses
Success
successAlways true on a successful response.
The requested record.
List mortgage plans
The mortgage plans the broker built, most recently changed first. A plan shows a client up to 3 options side by side, each with its payment, its monthly housing costs, and the cash to close. Use deal_id or contact_id for the plans on one deal or for one person.
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 the plans on this deal.
contact_idOnly the plans for this contact.
List mortgage plans › 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 mortgage plan
Saves a mortgage plan, as the plan builder in BrokerPlus saves one. Put it on a deal with deal_id, on a person with contact_id, or on both when the two are on the same team. The broker opens it in the plan builder. BrokerPlus sends nothing to the client.
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 mortgage plan › Request Body
titleThe plan's name, for example Smith purchase options.
plan_typeWhat the plan is for: a purchase with less than 20% down (purchase_high_ratio), a purchase with 20% or more down (purchase_conventional), selling one home to buy another (sale_and_purchase), or refinance.
provinceThe province of the home, as a two-letter code, e.g. ON.
dwellingThe kind of home. It sets the default housing costs.
first_time_buyertrue when the client buys a home for the first time.
The options, side by side. At most 3.
client_nameThe client's name as the plan prints it.
deal_idThe deal the plan is on. Null when it is on no deal.
contact_idThe contact the plan is for. Null when it is for no contact.
municipalityThe city or town, for the land transfer tax.
notesThe broker's notes on the plan.
refinanceThe client's mortgage today. Only for a refinance.
Create a mortgage plan › Responses
Success
successAlways true on a successful response.
The requested record.
Update a mortgage plan
Changes a mortgage plan. Send only the fields to change. columns replaces every option, so send each option you want to keep.
path Parameters
idResource id.
Update a mortgage plan › Request Body
titleThe plan's name, for example Smith purchase options.
client_nameThe client's name as the plan prints it.
deal_idThe deal the plan is on. Null when it is on no deal.
contact_idThe contact the plan is for. Null when it is for no contact.
plan_typeWhat the plan is for: a purchase with less than 20% down (purchase_high_ratio), a purchase with 20% or more down (purchase_conventional), selling one home to buy another (sale_and_purchase), or refinance.
provinceThe province of the home, as a two-letter code, e.g. ON.
dwellingThe kind of home. It sets the default housing costs.
first_time_buyertrue when the client buys a home for the first time.
municipalityThe city or town, for the land transfer tax.
notesThe broker's notes on the plan.
Replaces every option when sent.
refinanceReplaces the refinance figures when sent. Null clears them.
Update a mortgage plan › Responses
Success
successAlways true on a successful response.
The requested record.