Skip to main content
Version: Current

Payment methods, providers, and bank accounts

A payment method describes how money is received. A bank account describes where external funds are held. A payment provider connects Makronexus to an external payment channel. Bank settings connect those records to school collection and reconciliation policy.

Audience: implementers, bursars, treasury/accounting users, integration owners, security reviewers, and support analysts
Learning time: 45 minutes
Navigation: Finance → Payments & Banking → Providers & Payment Methods → Bank Settings (finance/bank-settings)
Boundary: provider availability, certification, settlement timing, fees, retries, and country support are external/configuration-dependent.

Learning outcomes

You will be able to:

  • distinguish payment method, bank account, provider, payment attempt, settlement, and reconciliation;
  • configure school bank accounts with currency and optional GL linkage;
  • register providers without exposing credentials;
  • configure default accounts/providers and collection/reconciliation settings;
  • identify exact bank-setting permissions;
  • verify provider and settlement readiness without making a live charge;
  • preserve secret and audit boundaries.

Object model

ObjectMeaning
Payment methoduser/business classification of how funds are received
Bank accountschool-owned external account, currency, identity, active/default status
Payment providerencrypted integration configuration for a gateway or channel
Bank settingsschool singleton for default account/provider, collection/payout, and reconciliation preferences
Payment attemptexternal initiation/callback/retry evidence
PaymentMakronexus incoming-funds record
Settlementexternal transfer of provider value to bank
Reconciliationevidence that external activity matches Makronexus activity

Bank-account fields

FieldMeaningControl
Bank and branch nameexternal institution identityverify official source
Account name/numberlegal/operational account identityaccount number unique per school
Currencythree-letter code, uppercasedmust match approved design
SWIFT/BICoptional international identifierverify with bank
GL account IDoptional link to Chart of Accountsuse active posting account
Default flagpreferred accountonly one default per school
Active flageligible for collectionsinactive accounts are excluded
Metadataapproved contextual valuesdo not store secrets casually

Account numbers are sensitive operational data. Display masking where the product provides it and limit access.

Provider configuration and secret handling

Supported provider-type values include Stripe, Paynow, EcoCash, InnBucks, bank transfer, mobile money, cash, and custom. This enumeration does not guarantee that every type is implemented or certified for every deployment.

Credentials are encrypted at rest using AES-256-GCM. API consumers receive redacted summaries, never plaintext credentials. Provider mutation audit entries omit request bodies to prevent credential leakage.

Never copy provider secrets into documentation or tickets

Use approved secret-management and support procedures. Logs, screenshots, audit comments, and examples must use redacted values.

School bank settings

A school settings record can select:

  • default bank account;
  • default provider;
  • reconciliation auto-match;
  • tolerance amount and currency;
  • payout enabled;
  • collection enabled;
  • metadata.

Auto-match tolerance is a control decision, not a convenience setting. Document who approved the threshold and which variance causes are acceptable.

Prerequisites

RequirementWhy it matters
Correct school selectedall resources are school-scoped
Approved bank evidenceprevents fraudulent or incorrect account setup
Currency designaccount and tolerance currencies must be intentional
GL account structureoptional bank-account link should resolve correctly
Provider contract/certificationexternal channel must be approved
Settlement designdefault destination must be known
Reconciliation policyauto-match and tolerance need control ownership
Secret owner and rotation policycredentials are high risk
Test/sandbox credentialsnever test with production secrets unnecessarily

Roles and exact permissions

ActionAbility
Create bank account or providerschool_bank_setting:create
Read account/provider/settingsschool_bank_setting:read
List accounts/providersschool_bank_setting:list
Update account/provider/settingsschool_bank_setting:update
Soft-delete account/providerschool_bank_setting:delete
View statisticsschool_bank_setting:statistics
View payments/attemptsrelevant financial_payment:* abilities
Configure posting mappingsrelevant finance_control:* abilities

The same create/update ability covers bank accounts and provider records. Operational ownership and secret access should still be separated through process controls.

Guided procedure: bank account

  1. Select the school.
  2. Open Bank Settings.
  3. Choose Add bank account.
  4. enter bank, branch, account name, account number, and currency;
  5. add SWIFT/BIC when required;
  6. select an eligible GL account where the design uses direct linkage;
  7. decide active/default status;
  8. save with authorised access;
  9. verify masked display and audit evidence.

Control: if making an account default, confirm the previous default is intentionally replaced.

Guided procedure: provider

  1. Confirm provider contract and sandbox environment.
  2. choose the verified provider type;
  3. enter display name and approved configuration;
  4. supply credentials through the protected form only;
  5. choose active/default status;
  6. save;
  7. verify the response is redacted;
  8. perform the provider’s supported connectivity/test action where available;
  9. record external certification separately.

Guided procedure: settlement and reconciliation defaults

  1. select the default active bank account;
  2. select the default active provider if used;
  3. decide whether collections are enabled;
  4. decide whether payouts are enabled;
  5. configure auto-match only with approved policy;
  6. set tolerance amount and currency;
  7. save and review audit event;
  8. open Controls Readiness and confirm bank/provider requirements.

Readiness verification

For reconciliation readiness:

  • at least one active bank account;
  • bank settings complete;
  • open accounting period.

For gateway readiness:

  • active provider;
  • default settlement bank account;
  • posting mappings.

For collection readiness, a cash book, receipt template, open period, and mappings are also required.

Worked scenario: Mupfure Learning Academy

The Harare school configures:

  • CBZ USD collection account linked to school GL account 1110-HRE;
  • a second local-currency bank account;
  • Paynow sandbox provider;
  • USD account as default settlement account;
  • collections enabled;
  • payouts disabled during initial rollout;
  • auto-match disabled until reconciliation testing is complete.

The implementation team verifies that provider responses are redacted, no secret appears in audit logs, and gateway readiness passes only after posting mappings are active.

Failure modes

SymptomLikely causeEvidence to inspectSafe actionEscalate when
Duplicate bank account erroraccount number already exists in schoolactive/soft-deleted account listreuse or correct existing recordlegitimate migration duplicate needs resolution
Account absent from collectionsinactive flag or wrong schoolaccount status/scopeactivate correct accountactive correct account remains absent
Provider saved but readiness failsinactive provider, no default settlement account, or mappings missingprovider/settings/readinesscomplete dependenciesall evidence is correct but gate fails
Credentials appear in response/logsecurity defectresponse, audit, loggingstop use and rotate secretany plaintext exposure occurs
Auto-match creates risky matchestolerance too high or wrong currencysettings and matched linesdisable/reduce and reviewhistorical incorrect matches require remediation
Default account changes unexpectedlyanother account saved as defaultaudit historyconfirm authorised changeunexplained actor/change
Provider type exists but integration failsunsupported/certification/external outageprovider guide, external statususe verified fallbackcontract says supported and sandbox still fails

Verification checklist

  • Bank identity came from an approved source.
  • Account number is unique and correctly masked.
  • Currency and optional GL link are correct.
  • Active/default flags are intentional.
  • Provider contract and environment are confirmed.
  • Credentials are encrypted/redacted and absent from audit payloads.
  • Settlement account is active.
  • Collection/payout settings match rollout scope.
  • Reconciliation tolerance is approved.
  • Posting mappings simulate correctly.
  • Gateway and reconciliation readiness pass.
  • Fallback method and escalation owner are documented.

Practice and knowledge check

Guided practice: configure one sandbox bank account and one provider in a test school, then inspect the redacted response.

Independent scenario: provider callbacks work, but gateway readiness is blocked. List the non-provider dependencies to inspect.

  1. Why is a payment method not the same as a provider?
  2. Why can a provider enum not prove availability?
  3. What happens when an account becomes default?
  4. Why are provider request bodies excluded from audit capture?
  5. What is reconciliation tolerance?
  6. Which dependencies gate online payments?
  7. What should happen after suspected credential exposure?

Answer guide: methods classify collection while providers integrate externally; certification varies; previous default is unset; secrets must not leak; tolerance defines acceptable variance for matching; provider, settlement account, mappings, period/control dependencies matter; stop, rotate, investigate, and escalate.

Next lesson

Continue to Numbering, templates, and communications.