Offer to Purchase
Template Overview
- Template ID:
offer-to-purchase-agreement - Version: 1.1.0
To generate this document, pass the structured data described below into the data property of the /api/v1/documents/generate endpoint.
Data Payload Schema
| Field | Type | Requirement | Description & Details |
|---|---|---|---|
parties | array of objects | Yes | The entities entering into the agreement. For this template, must contain exactly 2 entities. Uses the standard Parties Schema. Each party also takes a definition field: one of "Seller", "Purchaser". |
description | string | Yes | Description of the goods Describe exactly what is being sold, with every identifying detail — make, model, year, colour, and any serial/VIN/engine/registration numbers. Note quantity, condition, and anything included. Example: 'Used 2019 Toyota Hilux 2.4 GD-6, white, reg. CA 123-456, VIN AHTXXXXXXX123456.' |
currency | string | No | What is the currency of payment? Options: "NGN", "USD", "GBP", "ZAR", "Others" |
customCurrency | string | Conditional | Insert the currency Required if currency is "Others". |
purchasePrice | string | Yes | Purchase price Type the full purchase price. Ex: 250000 |
vat | boolean | Yes | Does the price include VAT? Tell us how VAT (Value-Added Tax) is treated. Most private sales between individuals are simply “not subject to VAT”. VAT usually only applies when the Seller is a VAT-registered business selling as part of its business. If you are unsure, choose “Not subject to VAT” or ask the Seller whether they are registered for VAT. |
deposit | boolean | No | Will the Purchaser pay a deposit first? |
depositAmount | string | Conditional | Deposit amount Required if deposit is true. |
depositDueDays | string | Conditional | Deposit due within (number of days) Type the number of days, after the Seller accepts the offer, by which the deposit must be paid. Example: 7. Required if deposit is true. |
finalPaymentDueDays | string | Conditional | Balance due within (number of days) Type the number of days, after the Seller delivers the goods, by which the remaining balance must be paid in full. Example: 30. Required if deposit is true. |
instalment | boolean | No | Will the price be paid off in instalments? Choose “Yes” if the Purchaser will pay the price in several smaller payments over time (for example monthly). Please note: paying in instalments may make this a credit agreement under the National Credit Act, which has extra legal requirements – if you choose this, it is wise to get advice from an attorney. Choose “No” for a normal once-off payment. |
instalmentFrequency | string | Conditional | Instalment frequency Type how often the instalments will be paid. Example: “Monthly” or “Every 2 months”. Options: "weekly", "monthly", "every 2 months", "quarterly" Required if instalment is true. |
instalmentDuration | string | Conditional | Instalment duration Type the total duration of the instalment payments. Example: “12 months” or “1 year”. Required if instalment is true. |
specifiedLocation | boolean | No | Do you want to name a specific place for delivery? Choose “Yes” to write in an exact address or place where the goods will be handed over or collected. Choose “No” if the goods will simply be delivered to the Purchaser without naming a fixed place in the contract. |
location | string | Conditional | Place of delivery or collection Type the full address or place where the goods will be delivered or collected. Example: 12 Acacia Street, Greenside, Johannesburg. Required if specifiedLocation is true. |
deliveryDate | string | No | Delivery date Choose the date on or before which the goods must be delivered or collected. (Format: YYYY-MM-DD.) |
offerDate | string | No | Offer open until Choose the date until which this offer stays open for the Seller to accept. Give the Seller a reasonable amount of time to consider it. (Format: YYYY-MM-DD.) |
dispute | boolean | No | How do you want disagreements to be settled? Going to court is usually slower but cheaper and public. Arbitration uses a private independent decision-maker and is usually faster but more expensive. Values: true (By arbitration (private)), false (By the courts). |
governingLaw | string | No | Which country’s law applies? Choose the country whose laws will be used to read and enforce this contract, and whose courts can hear any dispute. This should normally be the country where the goods are and where the sale happens. Must be a valid value from the Supported Countries list. |
Example JSON Payload
Here is an example of a properly formatted data object for the Offer to Purchase template.
{
"templateId": "offer-to-purchase-agreement",
"data": {
"parties": [
{
"definition": "Seller",
"isCompany": true,
"rcName": "Acme Corp",
"rcAddress": "123 Beta Way",
"rcCountry": "United States",
"rcNumber": "12345678",
"type": "Private Company limited by shares"
},
{
"definition": "Purchaser",
"isCompany": false,
"fullName": "Joshua",
"address": "789 Alpha Ave",
"rcCountry": "Nigeria"
}
],
"description": "actly what is being sold, with every identifying detail — make, model, year, colour, and any serial/VIN/engine/registration numbers",
"currency": "NGN",
"purchasePrice": "250000",
"vat": true,
"deposit": false,
"instalment": false,
"specifiedLocation": true,
"location": "ample: 12 Acacia Street, Greenside, Johannesburg",
"deliveryDate": "2026-06-01",
"offerDate": "2026-06-01",
"dispute": true,
"governingLaw": "Nigeria"
},
"format": "pdf"
}
