Skip to content
HitchPay API Docs

Customer Enrollment & KYC

Delete Customer

Close a customer profile enrolled in error.

DELETE /v1/customer/:uuid

This is a soft delete: the record and its KYC trail are retained for audit purposes, but the customer stops resolving requests via the public API and can no longer be granted KYC, accounts, cards, or cross-border transfers.

Use this endpoint to

  • Close a customer profile that was enrolled by mistake or is a duplicate
  • Free up a customerid/email/phone so you can re-enroll the person correctly

Request

Path parameters

Parameter Type Required Description
uuid string Yes Customer id from Enroll Customer

Important: Any unfunded accounts the customer holds are closed with them. Accounts that have already received funds, or cards that aren't terminated, block the delete — see Errors below.


Code Samples

const response = await fetch(
  "https://sandbox.hitchpay.ng/v1/customer/CUSTOMER_UUID",
  {
    method: "DELETE",
    headers: { Authorization: "Bearer YOUR_ACCESS_TOKEN" }
  }
);

const data = await response.json();
console.log(data);
<?php

$ch = curl_init();

curl_setopt_array($ch, [
  CURLOPT_URL => "https://sandbox.hitchpay.ng/v1/customer/CUSTOMER_UUID",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "DELETE",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ]
]);

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

echo $response;
import requests

url = "https://sandbox.hitchpay.ng/v1/customer/CUSTOMER_UUID"
headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}

response = requests.delete(url, headers=headers)
print(response.json())

Response

{
  "status": "success",
  "message": "Customer deleted successfully.",
  "data": {
    "uuid": "…",
    "customerid": "your-customer-ref-001",
    "deleted": true,
    "accounts_closed": 1
  }
}

Fields

Field Type Description
uuid string Customer id
customerid string Your reference — now freed up for re-enrollment
deleted boolean Always true on success
accounts_closed number Count of unfunded accounts closed as part of this delete

Behavior notes

  • Soft delete — the record and its KYC trail are kept for audit, but the customer stops resolving over the public API.
  • The customer's customerid, email, and phone are freed up so you can re-enroll the person correctly.
  • Fires the customer.deleted webhook.
  • Money in flight is never dropped: inflows that land on an already-issued account after deletion are still credited to your wallet.

Errors

Code HTTP Meaning
UNAUTHORIZED 401 Business not found or inactive
NOT_FOUND 404 Customer not found
CUSTOMER_HAS_CARDS 409 The customer has a card that isn't terminated — terminate it first via Terminate Card
CUSTOMER_HAS_ACTIVITY 409 The customer has an account that has already received funds — contact support to close it

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