Skip to content

[Feature]: Stellar transaction reconciler and explorer #145

Description

@memplethee-lab

Feature Request

Problem Statement

There is no robust mechanism to reconcile on-chain Stellar transactions with internal invoices and ledger entries. This causes manual reconciliation work, delays in payout confirmation, and potential accounting mismatches.

Proposed Solution

Build a Stellar Transaction Reconciler and Explorer feature that:

  • Streams confirmed Stellar transactions (via Horizon or webhooks) and correlates them with internal invoices using payment references and memos.
  • Implements reconciliation rules, marking invoices as paid, partial, or failed with a detailed audit trail.
  • Offers API endpoints for manual lookup: /reconcile/stellar/tx/:txid and /reconcile/stellar/invoice/:invoiceId and an admin dashboard endpoint to list unmatched transactions.
  • Supports automated retries for transient failures and manual reconciliation tools for accounting teams.

Acceptance criteria:

  • Streaming ingestion of Stellar ledger events implemented and tested on testnet.
  • Reconciliation logic correctly marks invoices as paid when matching transactions are found (with tests for full, partial, and unmatched cases).
  • Endpoints for lookup implemented and documented.
  • Audit logs kept for each reconciliation decision and accessible via API.

Alternatives Considered

  • Manual accounting reconciliation (rejected: slow and error-prone).
  • Third-party reconciliation services (rejected: cost and privacy).

Additional Context

This will appeal to Stellar team members and finance stakeholders; tightly coupling reconciler with the payment module will enable near-real-time accounting.

Implementation Ideas (Optional)

  • Use memo fields and idempotency keys to match transactions to invoices. Persist matches in a Reconciliation table and expose a small admin REST UI.

Would you be willing to contribute?

  • Yes, I'd like to submit a PR for this feature
  • I can help with testing
  • I can help with documentation
  • I'd rather let someone else work on this

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions