Rates
The Rates page in BrokerPlus holds the rates a broker quotes. BrokerPlus pulls live rates for the lenders it knows, and the broker can replace any of them, add an offset to a lender, or add a lender that BrokerPlus does not pull. The refinance, renewal, and penalty figures use those rates. The API reads and sets the same rates.
This API is in beta. Any endpoint can change in a breaking way without notice, so watch the changelog.
Units
Every rate is a percent: 4.29 means 4.29%. A difference from prime is a percent too: -0.85
means prime minus 0.85%. An offset is in basis points: -10 means 0.10% below the live rate. See
Units.
A lender BrokerPlus pulls rates for has a slug, for example rbc. A lender the broker added has a
slug that starts with custom:.
The broker's own rates
These rates belong to the broker who owns the key. Another broker in the brokerage never sees them.
POST /v1/me/rate-overrides sets the rate for one lender, term, and product, the same as a cell on
the Rates page. Send lender_slug to replace a live rate, or custom_lender_name for a custom
lender. If a rate already exists for that lender, term, and product, it changes.
Code
Code
For a variable rate, send prime_offset instead of rate. BrokerPlus then calculates the rate from
prime, and moves it when prime moves. The term is 0 for a variable rate and -1 for a rental rate.
When locked_by_brokerage is true, the brokerage sets that lender, term, and product for every
broker, so BrokerPlus uses the brokerage rate and not this one.
| Call | What it does |
|---|---|
GET /v1/me/rate-overrides | Lists the broker's rates. |
DELETE /v1/me/rate-overrides/{id} | Removes one rate. A pulled lender goes back to its live rate. |
POST /v1/me/rate-overrides/reset | Removes every rate for a pulled lender and every offset. Custom lenders stay. |
POST /v1/me/custom-lenders | Adds up to 25 custom lenders, each with its rates, in one call. |
PATCH /v1/me/custom-lenders/{lenderSlug} | Renames a custom lender. |
GET /v1/me/lender-offsets | Lists the broker's lender offsets. |
POST /v1/me/lender-offsets | Sets the offset for one lender, in basis points. |
DELETE /v1/me/lender-offsets/{lenderSlug} | Removes the offset for one lender. |
A custom lender is matched by name, in any case. If you add Beacon Trust twice, the broker has one
lender with the rates from both calls.
The brokerage's rates
A brokerage can set rates and lender offsets for every broker at once, on the brokerage Rates
page. Only a key that belongs to a brokerage admin can read or change them. Any other key gets
403 FORBIDDEN.
POST /v1/brokerage/rate-overrides takes the same body as POST /v1/me/rate-overrides, without
prime_offset. The answer has "object": "brokerage_rate_override". While the brokerage sets a
lender, term, and product, every broker's own rate for it shows locked_by_brokerage: true, and
BrokerPlus uses the brokerage rate.
A brokerage offset wins over a broker's own offset for the same lender.
| Call | What it does |
|---|---|
GET /v1/brokerage/rate-overrides | Lists the brokerage's rates. |
POST /v1/brokerage/rate-overrides | Sets the brokerage's rate for one lender, term, and product. |
DELETE /v1/brokerage/rate-overrides/{id} | Removes one brokerage rate. |
POST /v1/brokerage/rate-overrides/reset | Removes every brokerage rate for a pulled lender and every brokerage offset. Custom lenders stay. |
GET /v1/brokerage/lender-offsets | Lists the brokerage's lender offsets. |
POST /v1/brokerage/lender-offsets | Sets the brokerage's offset for one lender, in basis points. |
DELETE /v1/brokerage/lender-offsets/{lenderSlug} | Removes the brokerage's offset for one lender. |
Lender cashback
Some lenders pay the client cashback at closing. BrokerPlus keeps a cashback for each lender it knows, and a brokerage can set its own in place of it. The opportunity figures use the result for every client whose best option is that lender.
GET /v1/lender-cashback lists one rule per lender, sorted by slug. Its id is the lender's slug.
source is override for the brokerage's own rule and default for the one BrokerPlus keeps.
| Field | Unit |
|---|---|
cashback_percent | A percent of the balance: 1 means 1%. |
flat_amount | Dollars. When it is set, it wins over cashback_percent. |
min_balance, max_balance | Dollars. The cashback applies only to a balance in that range. |
rate_premium_bps | Basis points the cashback product usually costs over the best rate. |
Any key can read the list. Only a key that belongs to a brokerage admin can change it:
POST /v1/lender-cashback sets the brokerage's own rule for one lender, and
DELETE /v1/lender-cashback/{lenderSlug} goes back to the one BrokerPlus keeps.
Code
Rate sheets
A broker can upload a lender's rate sheet: a PDF, an image, or a Word file. BrokerPlus reads the lender, the date, and every rate on it. Nothing changes on the broker's rates until the sheet is applied, the same as the review step on the Rates page.
POST /v1/rate-sheetsuploads the file, asmultipart/form-datain afilefield or as JSON withfile_name,content_type, andcontent_base64. The answer has the rates BrokerPlus read, andmapping: for each cell of the Rates page, the rates on the sheet that fit it, with the one BrokerPlus suggests atsuggested_index.POST /v1/rate-sheets/{id}/applyputs the rows you choose on the broker's own rates. Leave out a cell to keep what is there.
Code
Every rate is a percent, on the sheet and in an apply. A term is 0 for a variable rate, or
12, 24, 36, 48, or 60 months for a fixed rate.
BrokerPlus files a sheet under the lender it read. To file it under another one, send lender in the
apply: {"slug":"rbc"} for a lender BrokerPlus pulls, or {"slug":null,"name":"Beacon Trust"} for a
custom lender.
GET /v1/rate-sheets lists the brokerage's sheets, GET /v1/rate-sheets/{id} returns one with its
mapping, and DELETE /v1/rate-sheets/{id} deletes one. Deleting a sheet leaves the rates it set.