Skip to main content
A transaction in Save App represents any financial event that affects the group fund or a member’s standing. Every transaction starts in PENDING status and must be approved by all active admins before it is reflected in the group balance and the member’s credit score. This two-step model ensures that every movement of funds has been verified by the group leadership.

Transaction types

Record a transaction

Any authenticated user can record a transaction. Admins can record on behalf of any member by name; regular members are limited to recording against their own account.
Response
Pass a unique idempotency_key when submitting transactions from a mobile app. If a network timeout causes you to retry, the API will return the original transaction record rather than creating a duplicate charge. Use a key that includes the member name, date, and a unique counter, for example "contrib-amara-202501-001".
The paymentMethod field is a free-form string. Common values used across Save App groups include "mobile_money" and "cash", but you may use any label that matches your group’s reconciliation process.

View transactions

Retrieve transactions with optional filters. Members only see their own transactions; admins see all transactions in the group.
The startDate and endDate query parameters accept Unix timestamps in milliseconds. For example, 1704067200000 represents 2024-01-01T00:00:00Z. Convert your date to milliseconds by multiplying a seconds-based Unix timestamp by 1000.
Response

Admin approval workflow

Transactions require unanimous approval from all active admins before they take effect. Each admin independently calls the approve endpoint; the API tracks progress and executes the transaction automatically once the final admin approves.
Before unanimous approval (waiting for more admins):
After unanimous approval (all admins have voted):

What happens on approval

When the final admin’s vote triggers execution, the API performs these side effects automatically based on the transaction type:

Credit score and timing

For contribution transactions, the API checks whether the payment was made before or after the active cycle’s contribution_due_date:
  • On time — the member’s credit score is increased (default +5 points)
  • Late — the member’s credit score is decreased (default −10 points)
Only PENDING transactions can be approved. Attempting to approve a transaction with any other status will return a 400 error.

TransactionEntity response fields