---
title: "Create customer (REST)"
method: POST
path: "/pty/customer/v1/customers"
tags: ["Ledger API - Customers"]
---

# Create customer (REST)

`POST /pty/customer/v1/customers`

## Request

- Base URL: `https://api.uat.paymentology.com`
- URL: `https://api.uat.paymentology.com/pty/customer/v1/customers`
- Auth: HTTP bearer

<ul>
<li class="docBullet">REST-style endpoint for the same operation as <a href="https://developer.paymentology.com/bankinglive/reference/v3_pws_create_customer">Create customer (PWS)</a>. Same request body and response envelope.</li>
</ul>

## Request body

- LedgerCreateCustomerRequest
  - `api_call_unique_identifier` string, required: Unique number that must be passed at each API request. Identifier to make each API request unique
  - `client_id` integer, required: Unique identifier for the client which Paymentology will provide at outset
  - `cu_fname` string, required: Customer First Name
  - `cu_mobile` string, required: Customer Mobile Number. Format i.e 00 (country code) phone number or + (country code) phone number.
  - `cu_sname` string, required: Customer Last Name
  - `user_id` string: User Id of the Customer who triggered the API request.
  - `remarks` string: Remarks for API request
  - `cu_title` string: Customer title
  - `company` string: Customer Company
  - `cu_ref` string: Customer Ref
  - `cu_bldg_no` string: Customer building number
  - `cu_add1` string: Customer address1
  - `cu_add2` string: Customer address2
  - `cu_add3` string: Customer address3
  - `cu_pcode` string: Customer PCode
  - `cu_city` string: Customer City Name
  - `cu_country` string: Customer Country Name
  - `cu_email` string: Customer Email
  - `cu_pass_code` string: Customer Pass Code
  - `cu_lang` string: Customer Native Language
  - `cu_nationality` string: Customer Nationality
  - `cu_gender` 1 | 2 | 3: Customer Gender. Possible values are: 1=Male 2=Female 3=Other
  - `cu_alternate_email` string: Customer Alternate Email
  - `cu_state` string: Customer State
  - `cu_dob` string: Customer Date of Birth
  - `default_rule_alert_sms_severity` integer: Default rule alert sms severity
  - `default_rule_alert_email_severity` integer: Default rule alert email severity
  - `bank_customer_no` string: Bank Customer Number
  - `cu_alternate_mobile` string: Customer Alternate Mobile
  - `cu_phone_home` string: Customer Phone Home
  - `cu_id_type` string: Customer Id Type
  - `cu_id_number` string: Customer id number can be driving licence,citizenship number
  - `credit_rating` number, double: Credit rating
  - `credit_rating_source` integer: Credit rating source
  - `display_name` string: Display Name
  - `kyc_status` '1' | '2' | '3' | '4' | '5' | '6' | '7': KYC status possible options are: 1=Awaiting first verification attempt 2=KYC data submitted, Awaiting Response 3=KYC successful 4=KYC unsuccessful 5=KYC verification attempts expired 6=KYC not possible (permeant) 7=Awaiting KYC re-verification
  - `kyc_status_details` string: KYC status details. User defined text to describe the reason of status
  - `kyc_ext_reference` string: External reference id provided by KYC provider to refer last KYC attempt
  - `key_provider_name` '1' | '2' | '3': Key provider name. Possible options are: 1=Jumio (supported for now) 2=IDNow 3=Sumsub
  - `kyc_attempt_count` integer: Counter which is decremented with each KYC attempt
  - `kyc_attempt_date` string: Date with timestamp. It will contain the value when last KYC attempt was made
  - `is_main_cardholder` boolean: Indicates if the customer to be created is main cardholder or not. The possible values are true or false.

## Response `200`

Request processed. Check `header.error_id`: `0` means success. Any other value is a business error, reported with HTTP 200 and an empty `body`. Common codes: 992 (invalid account id), 993 (invalid card token), 995 (validation failed), 1043 (account does not belong to the client), 1055 (invalid program_code), 1531 (invalid customer id).

- LedgerCreateCustomerResponse
  - `header` LedgerApiHeader, required
    - `error_id` integer, required
    - `error_desc` string, required
  - `body` object, required
    - `customer_id` integer, required: Customer Id

## Other responses

- `400`: Request validation failed (missing or invalid fields, unknown fields, malformed JSON, or `client_id` not matching the access token). `header.error_id` is 400 and `header.error_desc` describes the failure.
- `401`: Missing or invalid access token. Empty body.
- `403`: Access token rejected by the API gateway (for example, expired).
- `413`: Request body too large. `header.error_id` is 413.
- `500`: Unexpected error. `header.error_id` is 900.

---

[API](https://skmtc.dev/paymentology/apis/ledger-api.md) - [All operations](https://skmtc.dev/paymentology/apis/ledger-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paymentology/apis/ledger-api/revisions/a5700c501bee?raw)
