cheki 1.5.0
cheki: ^1.5.0 copied to clipboard
Dart client for cheki, the free Ethiopian receipt verifier. Verify CBE, Telebirr, BOA, M-Pesa, Dashen, Awash, Siinqee, eBirr and ZamZam transfer receipts.
Changelog #
1.5.0 #
- Responses are decoded as UTF-8 from the bytes, and
httpmust be 1.4.0 or newer (older versions decodedapplication/jsonwithout a charset as latin1, garbling Amharic names and messages). Requires Dart 3.4+, ashttp1.4.0 does. - Retries only where safe, the same rule as every cheki SDK:
GETon a network error or 5xx;verifyon a network error or a 429/503 with aRetry-Afterof at most 60 s;verifyBatchonly on a 429/503 with a shortRetry-After. A geo-blocked 502, a 5xx on a POST, a timeout and an error markedretryable: falseare never retried. BankInfo.beta(true for M-Pesa and ZamZam),VerifyResult.orderId(CBE Birr) andVerifyResult.fallbackUrlon failed batch items.getReceiptUrl('zamzam', ...)rejects an id that is not digits only.ChekiClient.recommendedBatchChunk(15) for long lists.- Shorter pubspec description (pub.dev's 60 to 180 characters).
1.4.1 #
- First release on pub.dev. Versions match the other cheki SDKs (npm
cheki-verify, PyPIcheki, Packagistcheki/cheki, Gogithub.com/1RB/cheki/sdks/go). ChekiClientfor the hosted API at https://cheki.et:verify,verifyBatch(max 20),getBanks,getHealthandgetReceiptUrl.- 65 s per attempt and at most one retry (network error, 5xx or 429, honouring
Retry-After); typed exceptions for rate limits and API errors. isVerifiedis the only success signal: it is true only when the bank confirmed the receipt.- No
dart:ioimport, so it also builds for Flutter web.