Skip to content

Feat/connector fedapay - #5

Merged
jules-mahounou merged 4 commits into
mainfrom
feat/connector-fedapay
Oct 5, 2026
Merged

jules-mahounou merged 4 commits into
mainfrom
feat/connector-fedapay

Conversation

@jules-mahounou

@jules-mahounou jules-mahounou commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

What & why

Checklist

  • Commits are signed off (git commit -s) — see DCO
  • Tests added or updated
  • If this touches routing/fallback: tests prove no double charge is possible
  • Docs and CHANGELOG.md (Unreleased) updated if behavior changed
  • No real secrets or personal data in code, tests, or fixtures

jules-mahounou and others added 4 commits September 27, 2026 01:08
The first real sandbox run confirmed authentication, transaction creation
and token generation, and that a non-activated operator fails at the push
with "Opération non autorisée", correctly mapped to ROUTE_UNSUPPORTED.

- FEDAPAY_SANDBOX_NETWORK selects the operator (mtn, moov, celtiis)
- Clear failure message when the operator is not activated
- QUIRKS.md: record what the sandbox verified

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jules Mahounou <234069818+jules-mahounou@users.noreply.github.com>
The FedaPay sandbox removed its per-operator test servers (MTN, Moov...):
every push must go to the single `momo_test` mode. Pushing to `/mtn_open`
in the sandbox fails with "Opération non autorisée", which an earlier
commit wrongly attributed to operator activation.

- Sandbox maps every network to `momo_test` by default, so application
  code is identical in sandbox and live
- Sandbox tests use the documented test numbers and wait for the final
  status: +22964000001 settles as succeeded, any other number as failed
  (declined → CUSTOMER_DECLINED). Both pass against the real API.
- QUIRKS.md corrected and updated with what the sandbox verified

Source: https://docs.fedapay.com/fr/integration-api/sending-requests#serveur-de-test

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jules Mahounou <234069818+jules-mahounou@users.noreply.github.com>
`pnpm demo` starts a small web page (Node built-in http, no framework) that
collects a sandbox mobile money payment through Payenv and follows its
status live. It masks phone numbers, refuses live keys, and shows the
webhook verification endpoint. Verified against the FedaPay sandbox:
+22964000001 settles as succeeded, another number as failed.

test(connector-fedapay): always use the documented sandbox success number,
so a leftover FEDAPAY_SANDBOX_PHONE in .env can no longer break the test.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jules Mahounou <234069818+jules-mahounou@users.noreply.github.com>
A payment accepted as pending and later declined showed
`status: failed` with `outcome: accepted` on its attempt (found while
testing the FedaPay demo). `refresh` now updates the attempt outcome
(failed / accepted), and clears the payment error once the provider
confirms an unresolved payment.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Jules Mahounou <234069818+jules-mahounou@users.noreply.github.com>
@jules-mahounou
jules-mahounou merged commit fbc8511 into main Oct 5, 2026
4 checks passed
@jules-mahounou
jules-mahounou deleted the feat/connector-fedapay branch October 5, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant