DEV Community

Aan Chen
Aan Chen

Posted on

The 11 contract clauses every Indonesian wedding photographer needs (and how to make the numbers agree)

Most freelance wedding photographers and videographers in Indonesia still close deals in a WhatsApp thread: a screenshot of the pricelist, a "DP 30% ya kak", and a bank transfer. It works right up until the wedding is postponed, the client wants the RAW files, or the second photographer gets sick. Then there is nothing to point at.

I spent this week turning the disputes I have seen (and a few I have been part of) into a plain-language contract template and a quotation workbook. This post is the thinking behind it: which clauses actually prevent fights, what the Indonesian legal hooks are, and how to make the numbers in your quotation, payment schedule and contract agree with each other.

Why a one-page "terms" screenshot is not enough

A contract in Indonesia does not need a notary, a lawyer, or even stamp duty to be valid. Article 1320 of the Civil Code (KUHPerdata) asks for four things: agreement, capacity, a specific object, and a lawful cause. A WhatsApp exchange can meet all four.

The problem is not validity, it is specificity. "Paket full day" means ten hours to you and "until the last guest leaves" to the client. A contract earns its keep by writing down the twelve things people later remember differently.

The 11 clauses, and the fight each one prevents

1. Parties. Full names, NIK (ID number), address, WhatsApp. For a couple, get both signatures or a simple power of attorney. The fight this prevents: "I never agreed to that, my fiancé did."

2. Scope. Copy the quotation line by line: item codes, quantities, hours, number of crew. Then add a sentence saying anything not listed is not included. The fight: "I thought the drone was part of the package."

3. Date, venue, rundown deadline. Put the start and end time in the contract and require the final rundown and shot list by H-7. The fight: "You missed the ring exchange" — when the rundown moved it and nobody told you.

4. Price, tax status, payment schedule. State whether you are a PKP (VAT-registered) vendor. In 2026 the general PPN rate is still 11%; the 12% rate applies only to luxury goods. Most solo vendors are not PKP and must not charge PPN at all. Then a table: DP 30% at signing, 40% at H-30, 30% at H-7. The fight: "I'll pay the rest after I see the photos."

5. Late payment. A small daily penalty (0.1% is common) capped at 5%, plus the right to not show up if the balance is unpaid at H-1. You will almost never enforce the penalty; its job is to make the H-1 rule credible.

6. Cancellation by the client. The DP is non-refundable because you blocked the date. Cancellation inside 30 days owes up to the second instalment. Spell out the refund percentage after full payment. The fight: every cancellation, ever.

7. Rescheduling. One reschedule, 30 days' notice, a fee (10% is typical), subject to availability, new date within 12 months, pricelist increases are on the client. Pandemic-era postponements taught everyone why this clause exists.

8. Force majeure. Disaster, epidemic, government policy, riots. Obligations pause, no reschedule fee, but costs already spent (rentals, travel, third-party vendors) are not refunded.

9. Deliverables and revisions. Exact counts and formats: "900+ edited JPGs, one 25×35 cm album with 30 pages, one 5–7 minute 1080p highlight film, delivered via download link within 45 working days of the event, after full payment." Two rounds of minor revisions inside 14 days. State how long you keep RAW files (6 months) and that RAW is not included unless bought.

10. Copyright and portfolio. Under Law 28/2014 on Copyright, the photographer is the creator and owns the copyright. The client gets a perpetual, non-exclusive licence for personal use. Ask permission to post the work as portfolio, offer an explicit opt-out, and promise not to publish anything beyond first names. Clients who are asked rarely object; clients who are not asked sometimes do, loudly.

11. Liability cap and disputes. If a card fails, you compensate proportionally for the lost part, and total liability never exceeds what the client paid. Disputes go to musyawarah for 30 days, then the district court where the vendor is domiciled.

Then the signature block. Stamp duty (meterai Rp10,000 under Law 10/2020) is only needed to use the document as evidence in court, not for validity, so one physical or e-meterai on the client's signature is enough.

Make the numbers agree

The most common inconsistency I see is not legal, it is arithmetic. The quotation says DP 30%, the chat says "DP dulu 5 juta", and the contract says 40%. Three documents, three numbers.

The fix is to have one place where the percentages live and let everything else read from it. In a spreadsheet that looks like:

Mulai!B19  = 30%   (DP)
Mulai!B20  = 40%   (second instalment)
Mulai!B21  = 1 - B19 - B20   (balance, computed)
Enter fullscreen mode Exit fullscreen mode

and then the quotation's terms line is a formula, not typed text:

="DP "&TEXT(Mulai!B19,"0%")&" saat booking, "
 &TEXT(Mulai!B20,"0%")&" H-"&Mulai!B23&", pelunasan "
 &TEXT(Mulai!B21,"0%")&" H-"&Mulai!B24&"."
Enter fullscreen mode Exit fullscreen mode

The payment schedule does the same for dates. If the event is in B5 and the second instalment is due 30 days before:

=IF(B5="","",B5-Mulai!B23)
Enter fullscreen mode Exit fullscreen mode

and the status column decides what to chase today:

=IF(D9=0,"-",IF(F9>=D9,"LUNAS",
  IF(AND(E9<>"",TODAY()>E9),"TERLAMBAT",
  IF(F9>0,"SEBAGIAN","BELUM"))))
Enter fullscreen mode Exit fullscreen mode

Two more things worth stealing even if you build your own sheet. Guard the VAT line so non-PKP vendors can never accidentally add it: =IF(Mulai!$B$17="Ya",ROUND(subtotal*rate,0),0). And make the quotation pull item names and prices from a pricelist by code with INDEX/MATCH, so you cannot quote last year's price:

=IFERROR(INDEX(Pricelist!$E$5:$E$64,
   MATCH(A13,Pricelist!$A$5:$A$64,0)),0)
Enter fullscreen mode Exit fullscreen mode

The template, if you don't want to build it

I packaged all of this as Wedding Vendor Indonesia — Penawaran & Kontrak Pack 2026: a seven-sheet Excel workbook (pricelist, auto quotation, payment schedule, receipt, client tracker with monthly revenue, contract checklist) plus the 11-clause contract and a handover report as a Word file, all in Bahasa Indonesia with the fill-in fields highlighted. It is USD 9 and has no macros.

If you are a photographer rather than a vendor-of-everything, the Photographer Booking & Shot-List Pack covers the booking and shot-list side.

Usual caveat: I am not a lawyer and this is not legal advice. For a Rp100 million decoration contract, pay a lawyer for an hour. For a Rp8 million photo package, a clear template and a conversation about clause 6 before signing will prevent most of the pain.

Top comments (0)