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

FieldTypeRequirementDescription & Details
partiesarray of objectsYesThe 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".
descriptionstringYesDescription 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.'
currencystringNoWhat is the currency of payment? Options: "NGN", "USD", "GBP", "ZAR", "Others"
customCurrencystringConditionalInsert the currency Required if currency is "Others".
purchasePricestringYesPurchase price Type the full purchase price. Ex: 250000
vatbooleanYesDoes 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.
depositbooleanNoWill the Purchaser pay a deposit first?
depositAmountstringConditionalDeposit amount Required if deposit is true.
depositDueDaysstringConditionalDeposit 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.
finalPaymentDueDaysstringConditionalBalance 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.
instalmentbooleanNoWill 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.
instalmentFrequencystringConditionalInstalment 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.
instalmentDurationstringConditionalInstalment duration Type the total duration of the instalment payments. Example: “12 months” or “1 year”. Required if instalment is true.
specifiedLocationbooleanNoDo 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.
locationstringConditionalPlace 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.
deliveryDatestringNoDelivery date Choose the date on or before which the goods must be delivered or collected. (Format: YYYY-MM-DD.)
offerDatestringNoOffer 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.)
disputebooleanNoHow 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).
governingLawstringNoWhich 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"
}