Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ own version is independent of Monnify's API versioning.
* add paycode support — `CreatePaycodeAsync`, `GetPaycodesAsync`, `GetPaycodeAsync`, `CancelPaycodeAsync`, `GetUnmaskedPaycodeAsync` (`IMonnifyCollectionsClient`)
* add customer wallet support — `CreateWalletAsync`, `GetWalletsAsync`, `GetCustomerWalletBalanceAsync`, `GetWalletTransactionsAsync` (`IMonnifyDisbursementsClient`)

### Changed

* `ValidateAccountNumberAsync` now calls `GET /api/v2/disbursements/account/validate` instead of the `v1` path — the `v1` path still responds identically in sandbox, but `v2` is the current documented path

### Fixed

* envelope handling now tolerates endpoints (e.g. paycodes) that omit `requestSuccessful` from their response
Expand Down
2 changes: 1 addition & 1 deletion docs/COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Status legend:
| `IMonnifyDisbursementsClient.GetWalletsAsync` | `GET /api/v1/disbursements/wallet?pageNo=&pageSize=&walletReference=` | **Implemented** | 21 wallets in sandbox; `createdOn` is absent in list items but present on create response |
| `IMonnifyDisbursementsClient.GetCustomerWalletBalanceAsync` | `GET /api/v1/disbursements/wallet/balance?accountNumber=` | **Implemented**
| `IMonnifyDisbursementsClient.GetWalletTransactionsAsync` | `GET /api/v1/disbursements/wallet/transactions?accountNumber=&pageNo=&pageSize=` | **Implemented** | Balance amounts sent as large integers (e.g. 5000000000); `AllowReadingFromString` applied defensively |
| `IMonnifyVerificationClient.ValidateAccountNumberAsync` | `GET /api/v1/disbursements/account/validate?accountNumber=&bankCode=` | **Implemented** | Free on both sandbox and live |
| `IMonnifyVerificationClient.ValidateAccountNumberAsync` | `GET /api/v2/disbursements/account/validate?accountNumber=&bankCode=` | **Implemented** | Free on both sandbox and live. Sandbox-confirmed the v1 path also still responds identically, but v2 is the current documented path |
| `IMonnifyVerificationClient.MatchBvnDetailsAsync` | `POST /api/v1/vas/bvn-details-match` | **Implemented** | Bills the merchant wallet per request |
| `IMonnifyVerificationClient.MatchBvnToAccountAsync` | `POST /api/v1/vas/bvn-account-match` | **Implemented** | Bills the merchant wallet per request |
| `IMonnifyVerificationClient.VerifyNinAsync` | `POST /api/v1/vas/nin-details` | **Implemented** | Live environment only; bills the merchant wallet per request |
Expand Down
2 changes: 1 addition & 1 deletion src/Monnify/Http/MonnifyApiPaths.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ internal static class Banks

internal static class Verification
{
public const string ValidateAccountNumber = "/api/v1/disbursements/account/validate";
public const string ValidateAccountNumber = "/api/v2/disbursements/account/validate";
public const string BvnDetailsMatch = "/api/v1/vas/bvn-details-match";
public const string BvnAccountMatch = "/api/v1/vas/bvn-account-match";
public const string NinDetails = "/api/v1/vas/nin-details";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public async Task ValidateAccountNumberAsync_SendsGetWithQueryParams_AndDeserial
var result = await client.ValidateAccountNumberAsync("0123456789", "044");

Assert.Equal(HttpMethod.Get, handler.Requests[0].Method);
Assert.Equal("/api/v1/disbursements/account/validate", handler.Requests[0].RequestUri!.AbsolutePath);
Assert.Equal("/api/v2/disbursements/account/validate", handler.Requests[0].RequestUri!.AbsolutePath);
Assert.Equal("accountNumber=0123456789&bankCode=044", handler.Requests[0].RequestUri!.Query.TrimStart('?'));
Assert.Equal("Ada Lovelace", result.AccountName);
Assert.Equal("NGN", result.CurrencyCode);
Expand Down
Loading