Flutter SDK

The MoneyHash Flutter SDK allows developers to integrate MoneyHash payment processing into their mobile applications. With this SDK, you can easily accept customer payments, manage subscriptions, and send payouts in your Flutter apps.

Prerequisites

Before integrating MoneyHash with the Flutter SDK, ensure you have completed the following steps:

  1. Get Started with MoneyHash to access your own Organization.
  2. Create an Account within your Organization.
  3. Connect providers to your new Account.
  4. Set up your Payment Defaults.
  5. Obtain your API keys from the dashboard to make API calls.

Installing

To install MoneyHash's Flutter SDK, Run the following in your terminal:

flutter pub add moneyhash_payment

This will add a line like this to your package's pubspec.yaml with the package including the latest version:

dependencies:
moneyhash_payment: ^{{latest_version}}

Additional Requirements for Android

To use the MoneyHash SDK on Android, you must include the following activities in your AndroidManifest.xml file:

<activity android:name="com.moneyhash.sdk.android.payment.PaymentActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>
<activity android:name="com.moneyhash.sdk.android.payout.PayoutActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"/>

To ensure these activities are displayed in full-screen mode, you can define a custom style in your styles.xml file, as shown below:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

Integration

After installing the MoneyHash Flutter SDK, you can start integrating it into your Flutter application. The integration involves several key steps:

Step 1: Create an Intent

Before initiating any payment or payout process, you need to get the intent id that created by you server. An Intent represents a payment or payout operation that you plan to perform.

Ensure you receive and store the intentId from the your server response, as you will need it in subsequent steps.

Step 2: Create a MoneyHash Instance

Import the MoneyHash SDK in your Dart code and create an instance of MoneyHashSDK.

import 'package:moneyhash/moneyhash.dart';

final MoneyHashSDK moneyHashSDK = MoneyHashSDK();

Step 3: Set the Public API Key

Set your public API key to authenticate your SDK instance. Obtain your public API key from the MoneyHash Dashboard under your Account settings. For more information on obtaining your public API key, see the MoneyHash Authentication Documentation.

moneyHashSDK.setPublicKey("your_public_api_key");

Step 4: Get Intent Details

Retrieve the details of the intent that was created earlier by your server. This will provide you with the current state of the intent and other relevant information.

try {
  final intentDetails = await moneyHashSDK.getIntentDetails(
    "<intent_id>",
    IntentType.payment, // or IntentType.payout
  );
  print(intentDetails);
} catch (e) {
  print("Error retrieving intent details: $e");
}

Refer to the IntentDetails model for a complete list of available properties.


Basic Concepts


Overview of MoneyHash APIs

For a detailed guide to all available APIs in the MoneyHash SDK for Flutter, including parameters, return types, and usage examples, refer to the following documentation:

This includes methods for handling payments, retrieving intent details, submitting forms, and more.


Overview of MoneyHash Models

The MoneyHash SDK for Flutter features various models to represent data structures like intents, payment methods, transactions, and card information. For comprehensive details on these models, including their properties and usage within the SDK, see the Models Documentation.


Migrating from Previous Versions

If you are currently using MoneyHash SDK version 2.0 and wish to upgrade to version 2.1, please refer to our Migration Guide. The guide provides detailed instructions on updating your codebase to be compatible with the latest SDK version.


Questions and Issues

Please provide any feedback or report issues via a GitHub Issue.