Purchase agreements and supplier rebates

Agree prices and ceilings with a supplier, call off orders against them, and collect volume rebates.

Required permission: purchase.configure, purchase.policy.approve

Before you begin

  • The Purchase agreements and Supplier rebates switches must be on.
  • Writing needs purchase.configure. Putting an agreement or rebate in force needs purchase.policy.approve as well, and a different person from the writer.
  • The standard Purchasing manager holds purchase.configure but not purchase.policy.approve, and the Accountant holds the reverse. The action is refused unless the approver has both. Ask your administrator for a role holding both for the person who approves.

Write and approve an agreement

  1. Open Purchase > Orders > Purchase agreements and press New.
  2. Choose the Supplier and enter a Title, Starts and Ends (default 1 January to 31 December this year), and a Value ceiling (0 means none). The ceiling is the net of all live call-offs together.
  3. Add product rows: Product (once per agreement), Agreed price and Quantity ceiling (0 means none).
  4. Press Save draft. A draft can be edited; anything else is read-only.
  5. The approver presses Put in force. An agreement needs agreed prices or a value ceiling.
  6. To end it, press Close.

Call off against it

  1. On a purchase order, open Other information and type the agreement number (for example PA-0001) in Purchase agreement.
  2. Add the product. The agreed price fills in.
  3. Press Approve order. The agreement is checked now.

Worked example. Ceiling 100,000.00, calls-off already net 70,000.00. An order of net 35,000.00 is refused: 'PA-0001 has 30000.00 of its 100000.00 ceiling left; this call-off is 35000.00.' A product ceiling of 500 with 450 called off refuses 100 more: 'PA-0001 allows 500 of <code>; 450 is already called off.'

Write and use a rebate

  1. Open Purchase > Orders > Supplier rebates and press New.
  2. Choose the Supplier, Title, Starts and Ends, optionally a Product (empty means everything), From basis and Rate %. The screen sets one tier.
  3. The approver presses Put in force.
  4. Press Accrue from time to time. The system works out the basis: posted bills less posted debit notes in the period. It posts only the increase since the last accrual.
  5. At the end, press Settle. A debit note is raised, confirmed and posted, and the rebate is Settled.

Worked example. Tiers: 2% from 0 and 3% from 50,000. Bills net 60,000.00, debit notes net 5,000.00. Basis 55,000.00. The 3% rate applies to the whole basis: due 1,650.00. If 1,000.00 was accrued before, 650.00 is posted now. A basis of 49,999.00 gives 2% = 999.98.

What happens next

  • An in-force agreement shows Called off and Left per agreement and product.
  • Accrual debits Supplier rebates receivable and credits purchase variance. Settlement posts the debit note (no tax) and reverses the accrual. Settling twice returns the same settlement and creates no second note.

Good to know

  • 'Somebody other than whoever wrote the agreement must put it in force.' and, for rebates, 'Somebody other than whoever wrote it must put a rebate agreement in force.'
  • A closed agreement refuses new call-offs: 'PA-0001 is closed, so nothing is called off from it.' Other refusals: 'PA-0001 is with another supplier.', 'PA-0001 runs 2026-01-01 to 2026-12-31; this order is dated 2027-01-05.', '<code> is not on PA-0001.'
  • 'Nothing is due on this rebate.' appears when the basis is below every tier. 'Only a rebate agreement in force is settled.'
  • Accrue and Settle check no rights beyond purchase.configure; the screen hides Settle without purchase.policy.approve. Keep this to the finance team by role.
  • The screen offers one rebate tier and no way to edit a draft rebate or close one; ask your administrator if you need several tiers.