LogoLogo
  • GET STARTED
    • Integration Guide
    • Quick Start
  • Webhooks
    • Webhooks
      • Register a webhook
      • Webhook notification
      • Verify webhook
  • Payment APIs
    • Collect Payments
      • Virtual Accounts
        • Create a single-use virtual account
        • Create a multi-use virtual account
        • Update a virtual account
        • Delete a virtual account
        • List all virtual accounts
        • Get details of a virtual account
      • Digital Wallets
        • Create a wallet
        • List all wallets
        • Get details of a wallet
        • Transfer between wallets
        • Transfer to business
        • Sweep wallet balances
        • Get wallet balance
      • Customers
        • Create a customer
        • List all customers
        • Get customer details
      • Invoices
        • Create an invoice
        • Edit invoice
        • Resend invoice
        • List all invoices
        • Get invoice details
    • Make Payments
      • Request OTP to initiate payout
      • Get a list of registered banks
      • Get Wallet Balance
      • Verify account number
      • Initiate a payout
      • Get all transactions
      • Get details of a transaction
      • Recipients
        • Create a recipient
        • List all recipient
        • Get a recipient's details
        • Delete a recipient
        • Get recipients summary
    • Duplo Checkout
      • Checkout Redirect
        • Generate a checkout URL
      • Checkout SDK
      • Verify checkout transaction
    • Make Payments v2
      • Initiate a Payout v2
      • Resend OTP
      • Process Payout
      • Get details of a Transaction v2
Powered by GitBook
On this page
  • URI
  • Sample request
  • Duplo Response

Was this helpful?

  1. Payment APIs
  2. Collect Payments
  3. Customers

Create a customer

Create a new customer

When you create a customer via the API, and the bvn is present a digital wallet is automatically created for that customer. If the customer is not a person the you can specify the add_wallet query params if you want a wallet attached to the customer.

URI

POST

https://api.tryduplo.com/v1/wallets/customers?add_wallet={BOOLEAN_VALUE}

Header

Authorization string

set value to Bearer SECRET_KEY

Query Param

add_wallet boolean

Adds a wallet to a customer on the creation of a customer when value is true.

Body Param

business_id string required

Merchant Business ID

first_name string required

Customer's first name

last_name string required

Customer's last name

phone_number string required

Customer's phone number

email string required

Customer's email address

bvn string

Customer's bank verification number

preferred_banks array

List of customer's preferred banks

Sample request

curl --location --request POST 'https://api.tryduplo.com/v1/wallets/customers' \
--header 'Authorization: Bearer dp_live_856879df3e6ecdb14a918e24bba6d480e0564a4eabfdba938fc23b820ac905e54bac25a71dbcdef66c97b8c72ca7e16576857261f2f16f5335ca5024620b14268823a7d78922cfdd97cefc61050139fd92a7a0c580552ccadbbec642d2ff8d35a09225c7ec4fd1e347b' \
--header 'Content-Type: application/json' \
--data-raw '{
    "business_id": "{YOUR VALUE}",
    "first_name": "Jammie",
    "last_name": "Fox",
    "email": "jamefox@yopmail.com",
    "phone_number": "08151740868",
    "business_id": "7e728-74a7-41ce-8a05-310e3e2eba4c",
    "bvn": "22330672110",
    "preferred_banks": [
        { 
            "bank_code": "111", 
            "bank_name": "Wema Bank", 
            "id": "wema" 
        }
    ]
}'
var axios = require('axios');
var data = JSON.stringify({
  "business_id": "{YOUR_NAME}",
  "first_name": "Jammie",
  "last_name": "Fox",
  "email": "jamefox@yopmail.com",
  "phone_number": "08051740868",
  "business_id": "7e7e0728-74a7-41ce-8a05-e3e2eba4c",
  "bvn": "2233067210",
  "preferred_banks": [
    {
      "bank_code": "111",
      "bank_name": "Wema Bank",
      "id": "wema"
    }
  ]
});

var config = {
  method: 'post',
  url: 'https://api.tryduplo.com/v1/wallets/customers',
  headers: { 
    'Authorization': 'Bearer dp_live_856879df3e6ecdb14a918e24bba6d480e0564a4eadba938fc23b820ac905e54bac25a71dbcdef66c97b8c72ca7e16cf03a576857335ca5024620b14268823a7d78922cfdd97cefc61050139fd92a7a0c5840e016050552ccadbbec642d2ff8d35a09225c7ec4fd1e347b', 
    'Content-Type': 'application/json'
  },
  data: data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.tryduplo.com/v1/wallets/customers',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "business_id": "{YOUR_NAME}",
    "first_name": "Jammie",
    "last_name": "Fox",
    "email": "jamefox@yopmail.com",
    "phone_number": "08051740861",
    "business_id": "7e7e07-74a7-41ce-8a05-310e3e2eba4c",
    "bvn": "2233067110",
    "preferred_banks": [
        { 
            "bank_code": "111", 
            "bank_name": "Wema Bank", 
            "id": "wema" 
        }
    ]
}',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer dp_live_856879df3e6ecdb14a918e24bba6d480e0564a4eabfdba938fc23b820ac905e54bac25a71dbcdef66c97b8c72ca7e16cf016f5335ca5024620b14268823a7d78922cfdd97cefc61050139fd92a7a0c5840e016050552ccadbbec642d2ff8d09225c7ec4fd1e347b',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Duplo Response

{
    "data": {
        "wallets": [
            {
                "currency": "NGN",
                "ledger_balance": 0,
                "available_balance": 0,
                "opening_balance": 0,
                "closing_balance": 0,
                "is_master": false,
                "bank_accounts": [
                    {
                        "_id": "63d8b3084e6de5000dee6c3d",
                        "provider": {
                            "id": "wema",
                            "bank_code": "111",
                            "bank_name": "Wema Bank",
                            "is_prefix": true,
                            "requires_bvn": false,
                            "prefixes": [
                                "809"
                            ],
                            "fixed_amount_prefixes": [
                                "841"
                            ],
                            "default": true
                        },
                        "account_number": "8090025677",
                        "account_name": "Jammie Fox"
                    }
                ],
                "status": "Active",
                "notes": [],
                "business_id": "986acd67-b306-4642-87aa-99ba512b2601",
                "wallet_ref": "wal_vkIXjqrHwKgl",
                "created_at": "2023-01-31T06:19:52.000Z",
                "email": "jamefox@yopmail.com",
                "metadata": "{}",
                "updated_at": "2023-01-31T06:19:52.329Z",
                "customer": "63d8b307dfbff6000d03d817"
            }
        ],
        "first_name": "Jammie",
        "last_name": "Fox",
        "email": "jamefox@yopmail.com",
        "phone_number": "08051740860",
        "business_id": "986acd67-b306-4642-87aa-99ba512b2601",
        "customer_ref": "cus_4GR7iiAfUaRU",
        "created_at": "2023-01-31T06:19:51.555Z",
        "updated_at": "2023-01-31T06:19:52.316Z"
    },
    "errors": {},
    "message": "Request successful"
}
PreviousCustomersNextList all customers

Last updated 1 year ago

Was this helpful?