Fiat Accounts

Fiat wallets are essentially virtual bank accounts created on demand. Each account can be linked to a reference which allows deposits made to it to be traceable to that reference.

When creating fiat wallets on Shutterscore, merchants have 3 options depending on the use case for the wallet/account.

Fiat Account Types

  1. Static Accounts

    Static accounts are accounts that are permanently assigned to a reference. This means that they are always available to be used for deposit and do not have an expiry timeframe (subject to financial laws and support from our partner banks). Once generated and assigned, they do not need to be re-generated or re-assigned. Static wallets are mostly used to collect deposits that only need to be identified by owner (user reference) and not by transaction (transaction reference). A typical example will be when your user want to fund their balance on your app.

  2. Static Dynamic Wallets

    Static Dynamic accounts are static accounts that can be used in dynamic situations. This is because when making the deposit, the user can pass a reference in the narration and that reference will be tied to the deposit. Typical examples will be in the following situations,

  • When your user can accept deposits from other users. Here a static account is assigned to the user but then other users making deposits to that user (maybe in an escrow situation) need to pass a reference in the narration that identifies their deposit.

  • When you don't want to or cannot assign unique accounts to your users but still want the ability to collect, identify and automatically provide value for their deposits. In this situation, a global static account is created for the merchant but then users will need to provide a reference in the narration to identify their deposits.

  1. Dynamic Wallets

    Dynamic wallets allow for temporary virtual accounts to be generated on a per transaction basis. That is, each account will only exist for a short period of time (not more than 1 hour) and for a particular transaction, after which the account it is marked as expired and terminated. Deposits made to an expired dynamic account are rejected and refunded.
    One wallet (user) can generate multiple dynamic accounts however, these accounts will not be usable beyond 1 hour of their creation.

Create a fiat account

Fiat accounts can only be created on an existing wallet on Shutterscore. Kindly create a wallet before proceeding to create a fiat account for deposit.

To create a fiat account on Shutterscore, you'll need to make a POST request to the Shutterscore wallets API. The request below demonstrates the process of creating a fiat account on a Shutterscore wallet.

{{baseurl}}/v1/merchant/public/wallets/{wallet_reference}
{
    "account_type": "static",
    "account_reference": "a-unique-reference",
    "currency": "NGN"
}
{
    "status": true,
    "statusCode": 201,
    "message": "wallet account created successfully",
    "data": {
        "currency": "NGN",
        "amount": null,
        "account_number": "1110024618",
        "account_name": "Shutterscore-Christian",
        "account_type": "static",
        "bank_name": "test",
        "account_reference": "a-unique-reference",
        "wallet_reference": "00087906511",
        "type": "FIAT",
        "expires_at": null,
        "address": null,
        "url": null,
        "tag": null,
        "chain": null
    }
}

The table below defines all the properties in the request body


FieldData TypeDescription
account_typeStringRequired - the fiat account type. Options are static, static_dynamic and dynamic
account_referenceStringOptional - a unique reference to the account. When not provided, system will generate one
currencyStringRequired - Currency of the account. Shutterscore wallet accounts only support NGN at the moment
amountNumberRequired only for dynamic account_type
expires_atIntegerRequired only for dynamic account_type. Number of minutes from creation before expiry. Maximum of 60.
reject_amount_criteriaStringOptional - Only applies to dynamic account_type. The amount rejection criteria to be applied.
Options are,
NOT_EQUAL (reject when amount deposited is not equal to amount set),
GREATER_THAN_ONLY(reject when amount deposited is greater than amount set),
LESS_THAN_ONLY (reject when amount deposited is less than amount set)
and NONE (No amount rejection).

Making a deposit

Generally, making a deposit to a fiat wallet account is as simple as making a payment into the bank account (bank and account number) details provided. However, based on the type of fiat wallet account, there are a couple of steps that must be observed. These steps are outlined below,

  1. Static Accounts

    No additional steps required. Just make the payment to the account details.

  2. Static Dynamic Accounts

    When making the payment, ensure to write the payment, transaction or user reference in the narration, in-between double exclamation signs. This will allow Shutterscore to return the reference to you in the deposit transaction. For example, if the transaction reference is transaction-reference, write it as !!transaction-reference!! in the payment narration field. Shutterscore will identify the opening and closing double exclamation signs and return the reference in the transaction. Please note that references in the narration are case insensitive.

  3. Dynamic Accounts

    Make the payment within the required timeframe, ensuring to pay the exact amount required. Any payment after the expiry time will be rejected. Depending on the setting, any payment less or more than the amount will also be rejected.