plumter_flutter_sdk_v1 0.1.0-beta.3
plumter_flutter_sdk_v1: ^0.1.0-beta.3 copied to clipboard
Plumter Flutter SDK — a drop-in package for generating dynamic payment beneficiary fields for cross-border payment tickets, with server-driven theming.
plumter_flutter_sdk_v1 #
Plumter Flutter SDK — a self-contained, drop-in package that lets a
host app generate dynamic payment beneficiary fields for cross-border payment tickets, with server-driven theming. The public
surface is intentionally tiny: PFSdk.launch() mounts the whole flow over your
app, and you receive the outcome through callbacks.
Beta. This is a
0.1.0-beta.xpre-release. The API may change before the1.0.0stable release.
Features #
- One entry point —
PFSdk.launch()pushes a full-screen payment module. - Isolated state — runs in its own Riverpod
ProviderContainer; it never shares state with the host app. - Complete flow — routing number / SWIFT validation, beneficiary capture, review, and confirmation.
- Document upload — camera, gallery, and file-manager pick with automatic image compression and in-app image / PDF preview.
- Server-driven theming — light and dark themes resolved at runtime from Plumter's config, including fonts (see Fonts).
Getting started #
Add the beta as a dependency. Because it is a pre-release, you must opt in with a
pre-release version constraint (a plain ^0.1.0 will not resolve to a beta):
dependencies:
plumter_flutter_sdk_v1: ^0.1.0-beta.1
Then:
flutter pub get
You need a Plumter-issued authToken (a JWT). The SDK decodes it to discover the
API base URL, so no additional endpoint configuration is required.
Usage #
import 'package:plumter_flutter_sdk_v1/plumter_flutter_sdk_v1.dart';
PFSdk.launch(
context: context,
authToken: authToken, // Plumter-issued JWT
themeMode: ThemeMode.light,
onSuccess: (PFSdkResult result) {
// SDK Result.
},
onFailure: (PFSdkError error) {
// Something went wrong (e.g. PFSdkError.networkError).
},
onCancel: () {
// User dismissed the module.
},
);
Only PFSdk, PFSdkResult, and PFSdkError are exported — everything else is
internal.
Fonts #
Typography is resolved at runtime from your vendor config, so you do not configure fonts in the host app. The SDK picks a typeface in this order:
| Config | Result |
|---|---|
a family with a .ttf / .otf URL |
downloaded and cached |
| a family with any other URL | fetched from Google Fonts by family name |
| a family with no URL | assumed already installed on the device |
| no family at all | Lato, a free Google Font |
No typeface is bundled with this package; everything is fetched at runtime. Licensing for any font you point the config at is yours to hold.
Font loading never blocks the flow. Fetching is bounded by a five-second timeout, and a fetch that fails or stalls falls back to the platform's system font rather than holding the screen — the payment flow renders either way.
Additional information #
- Maintaining this package? ARCHITECTURE.md records the design decisions, route and callback lifetime, error isolation, state scoping and what breaks if each is changed.
- Homepage: https://plumter.com
- Issues & source: https://bitbucket.org/plumterworkspace/plumter-flutter-sdk
- Licensing enquiries: legal@plumter.com
Licensed under the MIT License.