Bonaventure OgetoBy Bonaventure Ogeto|

Scoping a Payment Integration Project Properly

Scope a payment project by answering: 1) Which countries (each adds payment methods and compliance), 2) Which payment methods (card, M-Pesa, bank transfer, USSD, mobile money), 3) One-time or recurring, 4) Marketplace or direct, 5) Existing codebase or greenfield, 6) Who owns post-launch maintenance. Explicitly list exclusions in your proposal. Get written approval of the scope before starting.

Complete Discovery Checklist

Ask all of these before writing your quote:

Countries and currencies:

  • Which country or countries will customers pay from? (Nigeria? Kenya? Ghana? Multiple?)
  • Should the system handle multiple currencies or one primary currency?

Payment methods:

  • Card payments required? (most common, lowest complexity)
  • M-Pesa or mobile money required? (adds STK push integration, higher complexity)
  • Bank transfer or USSD required?
  • Does the business want to display all payment options or a preferred one first?

Payment model:

  • One-time purchase or recurring subscription?
  • If recurring: fixed billing date or anniversary of signup?
  • Free trial period? Proration for upgrades/downgrades?

Business model:

  • Is this a direct business (one seller, one buyer) or a marketplace (multiple vendors)?
  • If marketplace: does the platform need to split payments between vendors?
  • Does the business need to pay out to vendors or users?

Technical:

  • Existing codebase (what stack?) or new project?
  • Who owns and can access the production server after launch?
  • Does the business already have a Paystack account?

Common Scoping Mistakes

  • Assuming "one country" without confirming — "We're a Kenyan business but we have customers in Uganda and Tanzania." Now you need 3 country setups.
  • Not asking about recurring payments — "Oh, we also need monthly subscriptions" is the most common post-quote surprise.
  • Not asking about refunds — "Can customers request refunds from the app?" adds a refund management UI to the scope.
  • Assuming the client has a Paystack account — if they need to register and verify a business, that adds time.
  • Not asking who maintains it after launch — if they need you to maintain it, that is a retainer, not a one-off project.

Learn More

Key Takeaways

  • Ask all discovery questions before writing a quote — missing one country or payment method changes the price significantly.
  • Explicitly list exclusions (what is NOT in scope) — this prevents scope creep.
  • Each additional country or payment method typically adds 30-50% to the project scope.
  • Get written approval of scope before starting work — email confirmation counts.
  • Use a change request process for anything outside the agreed scope.

Frequently Asked Questions

How do I handle a client who keeps adding requirements after we agreed on scope?
Use a formal change request process. When a new requirement comes in: stop, document it, estimate the additional time and cost, send a Change Request document, and wait for written approval before doing the work. "I'd love to add M-Pesa. That's a Change Request — additional KES 35,000 and 5 business days. I'll send the CR document now." Most clients accept this once they understand it is standard practice.
What should I do if I under-scoped a project and it is taking much longer than estimated?
Be transparent early, not late. As soon as you realize the scope was incorrect, send the client a note: "While building this, I discovered [X] is more complex than the initial scope estimated. This will take 5 additional days. I can absorb 2 of those days in goodwill, but the remaining 3 days will need a CR at our agreed rate." Clients respect early communication and resent last-minute surprises.
Should I scope payment testing into the project or is it assumed?
Always scope testing explicitly and describe what is included: "Unit tests for webhook handler (signature validation, idempotency, event routing). Integration test: full charge.success flow using Paystack test mode. Test coverage report included." This signals professionalism and prevents clients from asking "is there testing?" as a scope creep question later.

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