The Payment Integration Contract Checklist for Freelancers
Payment integration contract must cover: 1) Scope with explicit exclusions. 2) Who owns the Paystack account and API keys (always the client). 3) Payment schedule with payment before project start. 4) Acceptance criteria for each deliverable. 5) Post-launch warranty period (14-30 days for bugs only). 6) What happens when Paystack changes their API. 7) Confidentiality (you are handling payment infrastructure). 8) Governing law (which country's courts).
Contract Checklist
Project Definition
- ☐ Written scope of work attached (payment methods, countries, features in scope)
- ☐ Explicit exclusions listed ("M-Pesa payouts are NOT in scope")
- ☐ Technology stack specified (framework, language, deployment environment)
- ☐ Deliverables list with acceptance criteria for each
- ☐ Project timeline with milestones
API Keys and Account Ownership
- ☐ Client owns and controls the Paystack account
- ☐ Client generates their own API keys — developer does not receive keys via insecure channels
- ☐ After project: developer revokes any server/deployment access they received
- ☐ Client is responsible for rotating keys if credentials are compromised
Payment Terms
- ☐ Total project fee stated
- ☐ Payment schedule: 50% upfront, 50% on completion (minimum)
- ☐ Late payment fee or work pause clause after [X] days overdue
- ☐ Currency of payment specified (KES, NGN, or USD)
Post-Launch Terms
- ☐ Post-launch warranty period (14-30 days): covers bugs in delivered code only
- ☐ Warranty explicitly excludes: Paystack API changes, hosting issues, third-party outages
- ☐ Maintenance/retainer offered separately after warranty period
- ☐ What happens if Paystack changes their API after project completion (client's responsibility or separate change order)
Legal
- ☐ Confidentiality clause: developer treats client payment data and business information as confidential
- ☐ IP ownership: client owns the delivered code after full payment
- ☐ Developer retains right to use project as portfolio case study (no confidential data shared)
- ☐ Governing law and jurisdiction for disputes
- ☐ Both parties signed and dated
Payment-Specific Clauses to Add
## API Keys and Security
All Paystack API keys used in this project are the property of the Client.
Developer will not store, share, or retain Client API keys beyond the duration
of the project. Developer will notify Client immediately if any API keys or
credentials are exposed or compromised during development.
## Post-Launch Warranty
Developer warrants that delivered code will function as specified for 14 days
after go-live ("Warranty Period"). This warranty covers defects in the delivered
code only and does not cover:
- Changes to Paystack's API, fees, or supported features
- Changes to the Client's hosting environment
- Outages at Paystack, payment gateways, or third-party services
- New features or scope changes requested after go-live
## API Changes
Paystack periodically updates their API. Any changes required due to Paystack API
deprecations or breaking changes after project delivery are considered out-of-scope
and will be handled as a new Change Order at the Developer's standard rate.
Learn More
See the proposal template for the project scoping document that precedes the contract.
Key Takeaways
- ✓The client owns the Paystack account and API keys — state this explicitly in the contract.
- ✓Define what "done" looks like in the contract — acceptance criteria prevent payment disputes.
- ✓Your post-launch warranty covers bugs only, not new features or Paystack API changes.
- ✓Include a confidentiality clause — you are accessing payment infrastructure.
- ✓State your jurisdiction for disputes — important if client is in another country.
Frequently Asked Questions
- Do I need a lawyer to draft a payment integration contract?
- For small projects (under KES 100,000 / NGN 1,000,000), a well-structured written agreement between parties via email is legally binding in Kenya and Nigeria. For larger projects, a simple 2-page contract drafted from a template (or reviewed by a lawyer once and reused) is sufficient. Avoid over-engineering the contract — a clear, readable agreement both parties understand is more valuable than a 20-page legal document neither party reads.
- What if the client refuses to sign a contract and wants to start immediately?
- Do not start without at least an email confirmation of scope and payment terms. "Let's get started right away" with no written agreement is a risk signal. At minimum, send an email with scope, price, and payment schedule and ask for a reply confirming agreement. Email confirmation is a contract. "Reply to confirm you agree with these terms" and their reply is legally binding in most jurisdictions.
- Who is liable if a payment fails in production after I hand over the project?
- Your post-launch warranty clause defines this. You are liable for bugs in your delivered code during the warranty period. After the warranty period, you are not liable for production failures unless there is a maintenance retainer. Paystack outages, gateway errors, and network failures are not your liability. Document this clearly in the contract to avoid post-launch disputes.
Ready to build real-world apps?
Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.
Apply to the McTaba Marathon