Skip to main content

Payment Collection

The payment collection process describes how a business sets up collection methods, issues invoices, and receives payments through the Kulpay Collection API. This end-to-end flow covers the biller's perspective — from configuring payment channels to reconciling received payments.

Participants

ParticipantRoleChannel
Biller (Business)Configures collection methods and issues invoicesPortal Web / ERP
Kulpay Collection APIRoutes invoices, processes payments, reconciles
PayerReceives invoices and makes paymentsKulpay App / Bank / SIMO ERV
Payment ProviderProcesses transactions (SIMO ERV / Interbank)

Process Flow

Step-by-Step

Phase 1: Collection Method Setup

Before issuing invoices, the biller must configure at least one collection method:

SIMO ERV Method

  1. Biller registers a SIMO ERV collection method with their entity number
  2. The system generates unique reference numbers for each invoice
  3. Payers can pay at any bank or ATM using the entity number + reference

Interbank Method

  1. Biller registers an interbank collection method with their NIB
  2. Payers transfer funds directly to the biller's bank account

API Endpoints:

  • POST /v1/collection-methods — Create a collection method
  • GET /v1/collection-methods — List configured methods

Phase 2: Invoice Issuance

  1. Biller creates a collection request specifying:
    • One or more collection method IDs
    • Invoice amount and currency
    • Payer details (name, contact, delivery method)
    • Optional: third-party reference, metadata, description
  2. The system generates the collection request and attaches:
    • Reference numbers for SIMO ERV payments
    • NIB details for interbank transfers
    • Invoice metadata (invoice number, dates)
  3. A customer bill is created for Kulpay-registered payers

API Endpoints:

  • POST /v1/collection-requests — Create invoice
  • GET /v1/collection-requests/{id} — View invoice details

Phase 3: Payment Processing

  1. Invoice is delivered to the payer based on delivery_method:

    • SMS: Reference number and amount sent via text
    • Email: Full invoice document with payment link
    • ERP: Synced to biller's ERP for their own delivery
    • Kulpay App: Push notification to the customer
  2. Payer makes payment through one of the available channels:

ChannelHow It WorksSettlement
SIMO ERVPayer enters entity number + reference at bank/ATMSettled via SIMO clearing
InterbankPayer transfers to biller's NIBDirect bank transfer
Kulpay AppPayer pays in-app from Kulpay balanceInstant via Kulpay

Phase 4: Payment Ingestion & Reconciliation

  1. Payments are captured in the system:
    • Kulpay App payments: Captured instantly via customer-paid webhook
    • External payments: Ingested via the Payment Ingest endpoint or bill-paid webhook
  2. The system matches payments to collection requests using reference numbers
  3. Reconciliation status is set:
    • Matched: Amount and reference match → auto-reconciled
    • Unmatched: Discrepancy found → flagged for review

API Endpoints:

  • POST /v1/payments/ingest — Ingest external payment
  • GET /v1/payments — List payments (filterable by collection_request_id, status, amount range)
  • POST /v1/collection-requests/{id}/web-hook/customer-paid — In-app payment notification
  • POST /v1/collection-requests/{id}/web-hook/bill-paid — External payment notification

Collection Method Comparison

FeatureSIMO ERVInterbank
IdentifierEntity number + referenceNIB
Payment ChannelsBank, ATM, mobile bankingBank transfer
Reference TrackingAutomatic (per-invoice reference)Manual (by amount/date)
InstallmentsConfigurableNot supported
Reusable ReferencesConfigurableN/A
Settlement Speed1-2 business daysSame-day or next-day
Best ForUtility bills, recurring invoicesLarge B2B payments

Payment Flow Diagram

EndpointPurpose
POST /v1/collection-methodsConfigure payment channels
GET /v1/collection-methodsList collection methods
POST /v1/collection-requestsIssue an invoice
GET /v1/collection-requestsList invoices
POST /v1/paymentsRecord a payment
GET /v1/paymentsList and filter payments
POST /v1/payments/ingestIngest external payments
See Webhooks & EventsPayment lifecycle events

Business Rules

  • Billers must have at least one active collection method before creating invoices
  • Each invoice can use multiple collection methods simultaneously
  • SIMO ERV references are unique per invoice (unless allow_reuses is enabled)
  • Payment amounts in MZN (Mozambican Metical) by default
  • IVA (VAT) is tracked per invoice for tax compliance
  • The biller's NUIT and the payer's NUIT are recorded for audit purposes
  • Payments are matched by reference number for SIMO ERV, and by amount + date for interbank
  • See Invoice Lifecycle for the full invoice status flow
  • See Merchant Onboarding for the account setup process