Manual Deposits
Manual deposit methods require manual confirmation of deposit by Shutterscore, before the merchant's account is credited. This usually means that, a notification will have to be sent by the merchant to Shutterscore and a proof or payment will in most cases be required.
When initiating a manual deposit on Shutterscore, a number of steps are advised,
- Retrieve deposit details
- Make a deposit
- Post the deposit
- Receive confirmation via webhook
Let's look at each of these steps in detail.
1. Retrieve deposit details
Deposit details in the form of bank, crypto wallet or mobile money details are required to perform any deposit. It is important to always retrieve the correct deposit details. This is to ensure that the funds actually get to us. The request for getting the deposit details is given below.
Get deposit details
{{baseurl}}/v1/merchant/public/transactions/methods?type=deposit¤cy=NGN&operation=manual
{
"status": true,
"statusCode": 200,
"message": "deposit method retreived successfully",
"data": [
{
"type": "MANUAL",
"model": "bank",
"slug": "manual-bank-deposit",
"requirements": [
{
"label": "Account Name",
"name": "account_name",
"required": "required",
"guide": "*",
"value": "Shutterscore limited",
"render": "text"
},
{
"label": "Account Number",
"name": "account_number",
"required": "required",
"guide": "*",
"value": "3301289721",
"render": "text"
},
{
"label": "Bank Name",
"name": "bank",
"required": "required",
"guide": "*",
"value": "Shutterscore Bank",
"render": "text"
}
]
}
]
}
Once the currency is added to the query string params on the endpoint above, the deposit details are contained in data object of the response body.
The above example retrieves the bank details for NGN deposit. The label property on the requirements describes the value. For instance, considering the example above, where the label says Account Name, the value is the Bank account name of the account where the deposit will be made. Again, where the label says Bank Name, the value is the name of the bank that the deposit should be made to. The same applies to Account Number label - its value is the account Number.
Let's look at retrieving a crypto deposit details.
{{baseurl}}/v1/merchant/public/transactions/methods?type=deposit¤cy=USDT&operation=manual
{
"status": true,
"statusCode": 200,
"message": "deposit method retreived successfully",
"data": [
{
"type": "MANUAL",
"model": "crypto",
"slug": "manual-crypto-deposit",
"requirements": [
[
{
"label": "Network",
"name": "network",
"required": "required",
"guide": " ",
"value": "Tron (TRC20)",
"render": "text"
},
{
"label": "Address",
"name": "address",
"required": "required",
"guide": " ",
"value": "TRdLx31RA85uTa4bv-Q-FboQ8CUbnv8zYiRrG",
"render": "text"
},
{
"label": "Image",
"name": "image",
"required": "required",
"guide": " ",
"value": "https://res.cloudinary.com/shutterscore/trc20qr.png",
"render": "image"
}
],
[
{
"label": "Network",
"name": "network",
"required": "required",
"guide": " ",
"value": "BNB Smart Chain (BEP20)",
"render": "text"
},
{
"label": "Address",
"name": "address",
"required": "required",
"guide": "Send only USDT to this deposit address. Ensure the network is BNB Smart Chain (BEP20).",
"value": "0xe88a8fde7b9abaaa4db3eb-2-d52e4cc8c7c5a36286",
"render": "text"
},
{
"label": "Image",
"name": "image",
"required": "required",
"guide": " ",
"render": "image",
"value": "https://res.cloudinary.com/shutterscore/bep20qr.png"
}
],
[
{
"label": "Network",
"name": "network",
"required": "required",
"guide": " ",
"value": "Ethereum (ERC20)",
"render": "text"
},
{
"label": "Address",
"name": "address",
"required": "required",
"guide": " ",
"render": "text",
"value": "0xe88a8fde7b9abaaa4db-w-3ebd52e4cc8c7c5a36286"
},
{
"label": "Image",
"name": "image",
"required": "required",
"guide": " ",
"render": "image",
"value": "https://res.cloudinary.com/shutterscore/erc20qr.png"
}
],
[
{
"label": "Network",
"name": "network",
"required": "required",
"guide": " ",
"value": "Solana",
"render": "text"
},
{
"label": "Address",
"name": "address",
"required": "required",
"guide": " ",
"render": "text",
"value": "HhHCcYx7VXGYM4vBNHdJpR-Q-HE8JWz1TQrcqdrHUZHrBdu"
},
{
"label": "Image",
"name": "image",
"required": "required",
"guide": " ",
"value": "https://res.cloudinary.com/shutterscore/solanaqr.png",
"render": "image"
}
]
]
}
]
}
From the response body above, we can see that the data property is an array of arrays. Each array contains objects of fields that are expected for the payment. As explained above, each label describes its value. For example, the label Address describes the address value provided.
2. Make a deposit
After retrieving the deposit details, you should make a payment to the destination provided in the deposit details and retrieve the payment reference. Also retrieve the deposit method slug from the response object e.g manual-crypto-deposit.
3. Post the deposit
Having made the deposit, you will need to inform Shutterscore that a deposit has occurred on your account and also providing the currency, amount, deposit method and payment reference. Details on this request are given below.
{{baseurl}}/v1/merchant/public/transactions/deposit
{
"amount": 5000,
"currency": "NGN",
"reference": "utyftdgcvhjbknml",
"deposit_method": "manual-bank-deposit"
}
{
"status": true,
"statusCode": 200,
"message": "Deposit completed successfully",
"data": {
"to_amount": 5000,
"amount": 5000,
"amount_charged": 5000,
"amount_settled": 4995,
"currency": "NGN",
"to_currency": "NGN",
"from": "SELF",
"to": "SELF",
"type": "DEPOSIT",
"purpose": "DEPOSIT",
"reference": "dpt0v3h6mthtw3xzsehxvh509",
"merchant_reference": "utyftdgcvhjbknml",
"channel": "API",
"settled_at": "2022-11-01T06:04:06.506Z",
"fee_bearer": "merchant",
"fee": 5,
"destination": "main_balance",
"payment_slug": "manual-bank-deposit",
"payment_proof": null,
"status": "success",
"to_merchant": "Prime Switch Limited",
"from_amount": null,
"from_currency": null,
"trx_rate": null,
"settlement_time": null,
"settlement_date": null,
"narration": null,
"beneficiary": null,
"extra_data": null,
"reject_reason": null,
"provider_fee": null,
"provider_amount": null,
"trace_id": null,
"created_at": "2022-11-01T06:04:06.522Z",
"updated_at": "2022-11-01T06:04:06.522Z",
"from_merchant": null
}
}
Request Body
The parameters below are used to post a manual deposit
Field | Data Type | Description |
---|---|---|
amount | Number | The amount that has been deposited |
currency | String | Currency of the amount that has been deposit (3 character currency code) |
reference | String | Payment reference in the case of a FIAT currency. For crypto, it is, the Network, followed by a pipe (|) followed by the transaction hash. |
deposit_method | String | Deposit method slug |
4. Receive confirmation via Webhook
You can set your application to receive a confirmation via webhooks if provided, and email, when the deposit has been confirmed and completed on our edn. Ensure that you verify that the webhook confirmation notification is from us. Kindly read more about webhooks on Shutterscore here
Updated about 2 years ago