Introduction
Vendor Paid Advertising (VPA) with Rello is an invoice factoring product that allows vendors to effectively finance their advertising/marketing costs up front, and repay the agreement from the settlement proceeds (assuming a successful sale). Vendors are also able to include other costs to support a sale, including minor renovations, auction fees, professional fees and others.
The agency typically facilitates the agreement (regardless of the use of funds), and receives funds from Rello for approved agreements.
Repayment to Rello is typically arranged with the vendor's conveyancer, however agents can also manage this process and typically also act as the single point of contact for updates and communication around the agreement while it's active.
Parties to an agreement
A VPA agreement involves three parties - an agency, a vendor, and Rello - which may be technically facilitated by a fourth party, the CRM/platform used by the agency.
An agency uses their CRM to create a payment request in Rello, and send to the vendor
Payment requests are always created within an agency (or merchant) account, by either a CRM (authenticated as a partner) or the agency direct (authenticated as a merchant). Once created, the payment request can be accessed via secure URL, which is provided to the vendor via various optional methods (e.g. via CRM, via Rello email, via Rello SMS, etc).
Request statuses
Payment requests enabled with the VPA product can exist in a number of statuses, depending on the specifics of the agreement.
Note that any payment request enabled with the VPA product will, by default, also offer the vendor the option of paying the entire request amount up front via credit/debit card or EFT, instead of taking the finance option. If a vendor chooses to pay via card/EFT, the request will move directly from "pending" to "complete" when the payment is successful.
โ
The status model for a VPA enabled request exists as:
Where:
PENDING requests are awaiting vendor action
If a request is not completed or submitted within 30 days, it will expire and show as CANCELLED
CANCELLED requests have been cancelled by the agent or Rello for a variety of reasons, and typically will not be re-used
Some agents will choose to resend an expired request via the Rello portal, which will move the request back into PENDING status
SUBMITTED requests are under review by Rello's credit team (vendor has accepted the terms of an agreement and submitted the request for VPA to Rello)
DECLINED requests are not able to be financed by Rello are are explicitly declined (i.e. don't send this one back again)
ACTIVE requests are approved finance agreements
COMPLETED requests have been fully paid, either up front via card/EFT, or per the terms of a finance agreement
Data needed for a VPA request
To create a payment request enabled with the VPA product, the following minimum data is required:
Request amount - the amount the agency is requesting the vendor to pay, for the agreed/authorised costs
Reference - a reference from the agency to contextualise/identify the request for anyone viewing it
Disbursement account - the bank account the agency wishes to receive funds into
Property address - the address of the property being sold
Estimated sale price - the price advised by the agent to the vendor, typically noted in the listing agreement (if a range, use the higher number)
To activate a payment request enabled with the VPA product, the following additional data is required (can be provided at the time of creating the request, or later if the calling system flow requires as such):
Signed listing agreement - a PDF copy of the signed listing agreement or other contractual documentation, showing
The property address
The vendors
The agency authorised to sell the property
The authorised marketing amount
For optimal CX, we'd recommend considering the later points in this article based on having access to the following data:
Vendor name, email, mobile
Email for agency user/s to receive notifications and remittance advice (separately)
Portal (REA, Domain, etc) links to the listing
Vendor conveyancer details
Estimated/actual settlement dates
Sale status
References to support auto/easy reconciliation of bank transfers to the agency
It's recommended to build your integration such that all data required to activate a finance agreement is provided in the initial API call - this simplifies the technical and business process, and supports a full-automated assessment process for same day funding.
API requests
This guide assumes a working knowledge of the Rello API, including authentication methods as partner/merchant, understanding of the different field/ID types etc - please review the API documentation for further detail before attempting your first API request.
The VPA product requires use of the /paylater endpoint, documented here:
A sample payload to create a VPA enabled payment request (POST to /paylater) is noted below.
The payload for a payment request is generic across all product types, product fields are used to specifically identify the product (VPA) and collect data required to activate an agreement enabled with the product
Initial request
Refer to the API documentation to confirm the specific field mandatory/optional fields to create a payment request, otherwise you can copy the payload below as a base to trial in Postman or similar tools against the Rello sandbox environment (just remember to update the email/phone, file contents, and merchant ID).
{
"merchantId": "M-1234-5678",
"reference": "1 Smith Street Sydney",
"amount": 10000.01,
"product": [
{
"productId": "PL-2204-0871",
"productFields": [
{
"fieldId": "PF-3163-4120",
"value":
{
"unit_number": "4454",
"street": "1 Smith Street",
"suburb": "Sydney",
"state": "VLC",
"postcode": "2000",
"country": "Australia"
}
},
{
"fieldId": "PF-3904-5873",
"value": "2000000.00"
},
{
"fieldId": "PF-9890-6039",
"value": "data:application/pdf;base64,JVBERi0xLjMNCiXi48=="
},
{
"fieldId": "PF-1121-9062",
"value": "Conveyancer Business Name"
},
{
"fieldId": "PF-5977-6671",
"value": "[email protected]"
}
]
},
"disbursement": {
"accountName": "Harry Smith",
"accountNumber": "1234567890",
"accountBsb": "123-456",
"reference": "INV-12345"
},
"sender": {
"sendComms": true,
"emailMask": "Agency Name Here",
"name": "Sales Agent Name",
"phone": "1300 123 456",
"email": "[email protected]"
},
"receiver": {
"name": "Jane Jones",
"mobile": "0412345678",
"email": "[email protected]"
},
"paymentPage": {
"name": "Agency Pty Ltd",
"abn": "321234567899",
"address": "1 Smith Street, Sydney NSW 2000",
"phone": "1300 123 456",
"email": "[email protected]",
"website": "https://www.agency.com",
"message": "Hey there, please pay the marketing costs.",
"logos": [
"https://www.agency.com/logo1.jpg",
"https://www.crm.com/logo2.jpg"
]
},
"files": [
"some-file-in-base64",
"another-file-in-base64"
],
"notifications": {
"webhook": "https://crm.webhook/auth-required",
"token": "eyJpZCI6IjYwZWU3MzY0ODYwNGY3MmQzOTBmMGNkZCIsIm5hbWUiOi",
"email": [
"[email protected]",
"[email protected]"
]
},
"remittance": [
"[email protected]",
"[email protected]"
]
}
Field map (noting that all fields are of JSON string type, except for the amount which is JSON number):
merchantId (required)
| The agency account the PR is to be created on |
reference (required) | A reference provided by the CRM or agent, displayed to the vendor and in the Rello portal (typically the property address) |
amount (required) | The amount required to be paid to the agency (excludes transaction/service fees that may be added depending on the vendor's choice of payment method) |
product (required)
productId: "PL-2204-0871"
productFields / fieldId: "PF-3163-4120"
productFields / fieldId: "PF-3904-5873" (validated as numbers only with 2 decimal places)
productFields / fieldId: "PF-9890-6039" (b64 file, PDF format, max 15mb)
productFields / fieldId: "PF-1121-9062"
productFields / fieldId: "PF-5977-6671"
|
PL-2204-0871 = VPA (required)
PF-3163-4120 = property address (required)
PF-3904-5873 = estimated sale price (or max value of a range, if provided) (required)
PF-9890-6039 = sales/listing authority (optional on create, required to activate)
PF-1121-9062 = vendor's conveyancer name (optional)
PF-5977-6671 = vendor's conveyancer email address (optional) |
disbursement (required)
accountName accountBsb accountNumber reference
OR
accountId reference |
accountName, accountBSB, accountnumber = agency bank account details (must match a verified bank account on the agency's Rello account)
reference = reference to add to the bank transfer sent to the agency (to assist reconciliation - e.g. invoice number, property address, CRM reference etc)
accountId = optional alternative to providing the full bank details, a unique ID for the verified bank account at Rello, requires initial sync of these details (refer to: https://api-docs.rellopay.co/v2.html#tag/General/operation/get-bankaccounts) |
sender (optional/recommended)
sendComms emailMask name phone |
sendComms = true/false, to send SMS/email from Rello
emailMask = mask the email sent from Rello
name, phone, email = details to show as the "sender" of the payment request (e.g. the sales agent) |
receiver (optional/recommended)
name mobile |
name, mobile, email = vendor details, to send an SMS/email to (must be a valid Australian mobile number) |
paymentPage (optional/recommended)
name abn address phone website message logos |
Details to present on the payment page, representing the agency
Max 2 logo images
|
files (b64 file, PDF format, max 15mb) | Any PDF files to be attached to the payment request for display to vendor, or shared with Rello (e.g. supporting invoices, other documentation as appropriate to the request) |
notifications (optional/recommended)
webhook
token
|
webhook to receive notifications back to the calling system, as PR changes status (typically the CRM)
token to secure the webhook
email addresses to receive email notifications (typically agency contacts) |
remittance (optional/recommended) | email addresses to receive remittance advice for Rello disbursement to agency |
200 Response
{
"prId": "PR-1234-5678",
"prUrl": "https://www.flippay.com.au/PR-1234-5678",
"status": "pending"
}
Field map (noting that all fields are of JSON string type):
prId | The unique ID within Rello for this payment request |
prUrl | A publicly-accessible URL to the payment request's payment page |
status | The current status of the payment request (typically will be returned as "pending") |
Follow-up requests (depending on your CX)
For the best customer experience (both vendor and agency), we recommend the following API requests are executed as data becomes available - either including in the initial request, or updating the payment request at a later time using the PATCH service (refer to API docs here: https://api-docs.rellopay.co/v2.html#tag/Pay-later/operation/patch-paylater)
Conveyancer details
The easiest method to facilitate repayment to Rello from the property sale proceeds is via the settlement process - providing the conveyancer details to Rello allows Rello to contact the conveyancer and provide instructions (with vendor approval) for the repayment ... benefiting the agency and vendor .
As the vendor's conveyancer details are available, they can be updated using the following payload on the PATCH service:
{
"productFields": [
{
"fieldId": "PF-1121-9062",
"value": "Conveyancer name"
},
{
"fieldId": "PF-5977-6671",
"value": "Conveyancer email"
}
]
}
Name is preferred to to be the business name, but can be any contact name available
Email address must be a valid email address
Both fields are JSON string type
Estimated settlement date
As the settlement date is confirmed, Rello can provide updated financials to the vendor's conveyancer and ensure the repayment process completes smoothly, while keeping the agent in the loop.
As the settlement date is advised/updated, it can be updated (multiple times) using the following payload on the PATCH service:
{
"productFields": [
{
"fieldId": "PF-6966-4726",
"value": "2024-09-15"
}
]
}
Field is JSON string type
Field is validated as numbers separated by hyphen "-", in format "YYYY-MM-DD" only
Property sale status
Advising the status of the sale keeps Rello aware of the progress of the agreement, saving time/email/calls between Rello and agency.
E.g. when a property is withdrawn or sold, a Rello agreement is immediately due for replacement - it's easier for all parties if this status is shared & aligned.
As the property moves through it's sale process, the status of that process can be updated using the following payload on the PATCH service:
{
"productFields": [
{
"fieldId": "PF-3251-7669",
"value": "Withdrawn"
}
]
}
Field is JSON string type
Values must match from the following list (case-sensitive):
Currently off-market
For sale
Under contract
Unconditional
Withdrawn
Settled
REA/Domain/other portal URL
Providing the portal link acts to support/prove the property sale status, and saves check-in email/calls between Rello, agents and vendors.
As the listing is published to a marketing portal such as REA or Domain, the link to that portal listing can be updated using the following payload on the PATCH service:
{
"productFields": [
{
"fieldId": "PF-7740-1873",
"value": "https://www.domain.com.au/1-smith-street-sydney-nsw-2000-2019444651"
}
]
}
Field is JSON string type
REA or Domain preferred in the case of multiple portals, otherwise any is acceptable
CX considerations
Where possible:
Consider including as much data as available in the initial POST request
Consider updating as much data as available in subsequent PATCH requests - particularly the property sale status, settlement date and portal links
Decide how to get a payment request to a vendor:
Email OR SMS from Rello to Vendor (enable comms in the initial POST request)
Retrieve URL in response to initial POST request and share via CRM
Set/manage notifications & remittance advice to support individual agency preferences:
Webhook notifications are useful for presenting data/status etc inside a CRM
Email notifications can be sent to any number of email addresses - consider allowing agencies to set a default, or allowing individual users to add/remove themselves
Remittance advice can be sent to any number of email addresses - consider allowing agencies to set a default, or allowing individual users to add/remove themselves
Set disbursement reference to support agency reconciliation:
The reference field within the disbursement object is powerful - allow users/agencies to set it according to their system/process preferences (if no value is set, Rello will apply a default value per preferences advised within the Rello portal).
If a CRM supports automated reconciliation from bank statements, consider what reference needs to be on a bank transaction to support this, and insert it in this field
If an agency is using some other accounting service, consider how a similar function operates and how a user might add/control the reference to be added
Set payment page styling:
More populated fields provide more confidence & credibility to users accessing the payment page
Supporting docs:
Consider allowing users to attach PDF documents to a payment request, outside of the product fields - this supports a range of use cases for agencies & Rello, all providing for better transparency and efficiency around the payment process