Skip to content
HitchPay API Docs

Customer Enrollment & KYC

Enroll Customer

Enroll your customer on HitchPay for services like cross-border transfers, account numbers, cards, etc. Returns a customer_id used for all subsequent KYC and transaction calls.

POST /v1/customer/enroll

Enrolling the same customerid or email twice returns the existing customer record — no duplicate is created.


Request

Body Parameters

Parameter Type Required Description
customerid string ✅ Your internal identifier for this customer
email string ✅ Customer's email address
phone string ✅ Customer's phone number
firstname string ✅ Customer's first name
lastname string ✅ Customer's last name
dob string ✅ Date of birth in DD-MM-YYYY format
nationality string ✅ ISO 3166-1 alpha-2 country code (e.g. NG)
image string (URL) ✅ Publicly accessible URL to customer's profile photo
address.house_no integer ✅ House number
address.street string ✅ Street address
address.city string ✅ City
address.state string ✅ State or province
address.postal_code string ✅ Postal / ZIP code
address.country string ✅ ISO 3166-1 alpha-2 country code

Code Samples

const axios = require("axios");

const response = await axios.post(
  "https://sandbox.hitchpay.ng/v1/customer/enroll",
  {
    customerid: "CUST_001",
    email: "[email protected]",
    phone: "07068363556",
    firstname: "Olajide",
    lastname: "Olamide",
    dob: "12-04-1990",
    nationality: "NG",
    image: "https://storage.yourapp.com/customers/profile-abc123.jpg",
    address: {
      house_no: 2,
      street: "12 Victoria Island Road",
      city: "Lagos",
      state: "Lagos",
      postal_code: "100001",
      country: "NG"
    }
  }
);
<?php

$ch = curl_init();

curl_setopt_array($ch, [
  CURLOPT_URL => "https://sandbox.hitchpay.ng/v1/customer/enroll",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => json_encode([
    "customerid"  => "CUST_001",
    "email"       => "[email protected]",
    "phone"       => "07068363556",
    "firstname"   => "Olajide",
    "lastname"    => "Olamide",
    "dob"         => "12-04-1990",
    "nationality" => "NG",
    "image"       => "https://storage.yourapp.com/customers/profile-abc123.jpg",
    "address"     => [
      "house_no"    => 2,
      "street"      => "12 Victoria Island Road",
      "city"        => "Lagos",
      "state"       => "Lagos",
      "postal_code" => "100001",
      "country"     => "NG"
    ]
  ])
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
import requests

url = "https://sandbox.hitchpay.ng/v1/customer/enroll"

data = {
    "customerid": "CUST_001",
    "email": "[email protected]",
    "phone": "07068363556",
    "firstname": "Olajide",
    "lastname": "Olamide",
    "dob": "12-04-1990",
    "nationality": "NG",
    "image": "https://storage.yourapp.com/customers/profile-abc123.jpg",
    "address": {
        "house_no": 2,
        "street": "12 Victoria Island Road",
        "city": "Lagos",
        "state": "Lagos",
        "postal_code": "100001",
        "country": "NG"
    }
}

response = requests.post(url, json=data, headers=headers)
print(response.json())

Response

201 — Created

{
  "status": "success",
  "message": "Customer created successfully.",
  "data": {
    "uuid": "42feffe9-d625-412e-bfa5-2f3089a11735",
    "customerid": "CUST_001",
    "firstname": "Olajide",
    "lastname": "Olamide",
    "email": "[email protected]",
    "phone": "07068363556",
    "created_at": "1773591858",
    "kyc_status": "pending_kyc"
  }
}

Next Steps

After enrollment, submit KYC documents to enable the customer for cross-border transactions.

Questions? Email [email protected]. Also on GitBook.