> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://apidoc-v1.maniscloud.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidoc-v1.maniscloud.com/_mcp/server.

# Register customer on PSP

POST https://api/v1/customers/%7BcustomerId%7D/psp-registration
Content-Type: application/json

- This API is used to register an existing customer on another PSP
    
- Before creating a customer on the PSP, the required fields on the PSP must be updated using the API.
    

**Path variable**

- `customerId:` Identifier of the customer
    

**Request Body**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `pspId` | string | Yes | Identifier of the payment provider (e.g., `nium`, `finmo`). |

Response Body

200 OK

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | Identifier of the customer in Manis |
| `type` | string | Customer type. Acceptable values: `INDIVIDUAL` or `COMPANY`. |
| `accountUsagePurpose` | string | Purpose of the account usage (required by Finmo). |
| `firstName` | string | Customer’s first name. |
| `lastName` | string | Customer’s last name. |
| `dob` | string | Date of birth in `YYYY-MM-DD` format. |
| `countryOfResidence` | string | Country where the customer resides (ISO 3166-1 alpha-2 code). |
| `email` | string | Customer's email address. |
| `phoneCountryCode` | string | Country code for the phone number (e.g., `+1`). |
| `phoneNumber` | string | Customer’s phone number. |
| `addressCountry` | string | Country of the address (ISO 3166-1 alpha-2 code). |
| `addressZipCode` | string | ZIP or postal code. |
| `addressCity` | string | City of the address. |
| `addressState` | string | State or province. |
| `addressStreet` | string | Street name and number. |
| `addressLocation` | string | Additional location info (e.g., building, floor). |
| `identificationType` | string | Type of ID document (e.g., `PASSPORT`, `NATIONAL_ID`). |
| `identificationValue` | string | ID number as shown in the identification document. |
| `identificationDocumentId` | string | Document ID from **Upload Customer Document API** for identification. |
| `addressProofDocumentId` | string | Document ID from **Upload Customer Document API** for address proof. |
| `companyInfo` | object | Company details block. Required when creating a company-type customer. |
| `createdAt` | date(yyyy-MM-dd'T'HH:mm:ss.SSS'Z') |  |
| `createdBy` | string |  |
| `updatedAt` | date(yyyy-MM-dd'T'HH:mm:ss.SSS'Z') |  |
| `updatedBy` | string |  |

`Comapny Information:`

| Field | Type | Description |
| --- | --- | --- |
| `name` | string | Legal name of the company. |
| `website` | string | Company website URL. |
| `registrationNumber` | string | Company registration number. |
| `incorporationCountry` | string | Country where the company is incorporated (ISO 3166-1 alpha-2 code). |
| `incorporationDate` | string | Incorporation date in `YYYY-MM-DD` format. |
| `email` | string | Company contact email. |
| `phoneCountryCode` | string | Country code for the company phone number. |
| `phoneNumber` | string | Company phone number. |
| `addressCountry` | string | Company address country. |
| `addressZipCode` | string | ZIP or postal code. |
| `addressCity` | string | City of the company address. |
| `addressState` | string | State or province. |
| `addressStreet` | string | Street address. |
| `addressLocation` | string | Additional address details (e.g., unit, building). |
| `incorporationCertificateDocumentId` | string | Document ID for the incorporation certificate (from Upload API). |
| `addressProofDocumentId` | string | Document ID for company address proof (from Upload API). |
| `createdAt` | date(yyyy-MM-dd'T'HH:mm:ss.SSS'Z') |  |
| `createdBy` | string |  |
| `updatedAt` | date(yyyy-MM-dd'T'HH:mm:ss.SSS'Z') |  |
| updatedBy | string |  |

400 BAD REQUEST - 403 FORBIDDEN - 401 UNAUTHORIZED - 500 INTERNAL ERROR

| **Field** | type |
| --- | --- |
| timestamp | date(yyyy-MM-dd'T'HH:mm:ss.SSS'Z') |
| title | string |
| type | string |
| status | number |
| soaCode | string |
| detail | string |

Reference: https://apidoc-v1.maniscloud.com/manis-unified-api-v-1-0/customer/register-customer-on-psp

## Servers

- `https:/` (https://{url}, default)
- `https:/` (https://{devurl})

## Request

### Body (application/json)

- `pspId` (string, required)

## Response

### 200

OK

- `id` (string, required)
- `dob` (date, required)
- `type` (string, required)
- `email` (string, required)
- `lastName` (string, required)
- `createdAt` (datetime, required)
- `createdBy` (string, required)
- `firstName` (string, required)
- `updatedAt` (datetime, required)
- `updatedBy` (string, required)
- `addressCity` (string, required)
- `companyInfo` (object, required)
  - `name` (string, required)
  - `email` (string, required)
  - `website` (string, required)
  - `createdAt` (datetime, required)
  - `createdBy` (string, required)
  - `updatedAt` (datetime, required)
  - `updatedBy` (string, required)
  - `addressCity` (string, required)
  - `phoneNumber` (string, required)
  - `addressState` (string, required)
  - `addressStreet` (string, required)
  - `addressCountry` (string, required)
  - `addressZipCode` (string, required)
  - `addressLocation` (string, required)
  - `phoneCountryCode` (string, required)
  - `incorporationDate` (date, required)
  - `registrationNumber` (string, required)
  - `incorporationCountry` (string, required)
- `phoneNumber` (string, required)
- `addressStreet` (string, required)
- `pspCustomerId` (string, required)
- `addressCountry` (string, required)
- `addressZipCode` (string, required)
- `addressLocation` (string, required)
- `phoneCountryCode` (string, required)
- `countryOfResidence` (string, required)

## Examples

**Request**

```json
{
  "pspId": "finmo"
}
```

**Response**

```json
{
  "id": "14f5cba4-6ea2-4bbf-aa20-593232f193d4",
  "dob": "1999-01-30",
  "type": "COMPANY",
  "email": "string101@mail.com",
  "lastName": "string",
  "createdAt": "2025-06-11T09:41:39.838Z",
  "createdBy": "7eea1a78-6e23-49e4-a6c7-31d3181edb56",
  "firstName": "string",
  "updatedAt": "2025-06-11T09:41:39.838Z",
  "updatedBy": "7eea1a78-6e23-49e4-a6c7-31d3181edb56",
  "addressCity": "string",
  "companyInfo": {
    "name": "EGS",
    "email": "string101@mail.com",
    "website": "string.com",
    "createdAt": "2025-06-11T09:41:39.838Z",
    "createdBy": "7eea1a78-6e23-49e4-a6c7-31d3181edb56",
    "updatedAt": "2025-06-11T09:41:39.838Z",
    "updatedBy": "7eea1a78-6e23-49e4-a6c7-31d3181edb56",
    "addressCity": "string",
    "phoneNumber": "920192912",
    "addressState": "string",
    "addressStreet": "string",
    "addressCountry": "US",
    "addressZipCode": "100",
    "addressLocation": "string",
    "phoneCountryCode": "+1",
    "incorporationDate": "1998-01-01",
    "registrationNumber": "11",
    "incorporationCountry": "US"
  },
  "phoneNumber": "920192912",
  "addressStreet": "string",
  "pspCustomerId": "customer_e0ca24a222bd42b390cedc0074a1c56b",
  "addressCountry": "US",
  "addressZipCode": "100",
  "addressLocation": "string",
  "phoneCountryCode": "+1",
  "countryOfResidence": "CA"
}
```

**SDK Code**

```python Customer_Register customer on PSP_example
import requests

url = "https://https/api/v1/customers/%7BcustomerId%7D/psp-registration"

payload = { "pspId": "finmo" }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Customer_Register customer on PSP_example
const url = 'https://https/api/v1/customers/%7BcustomerId%7D/psp-registration';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"pspId":"finmo"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Customer_Register customer on PSP_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://https/api/v1/customers/%7BcustomerId%7D/psp-registration"

	payload := strings.NewReader("{\n  \"pspId\": \"finmo\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Customer_Register customer on PSP_example
require 'uri'
require 'net/http'

url = URI("https://https/api/v1/customers/%7BcustomerId%7D/psp-registration")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"pspId\": \"finmo\"\n}"

response = http.request(request)
puts response.read_body
```

```java Customer_Register customer on PSP_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/api/v1/customers/%7BcustomerId%7D/psp-registration")
  .header("Content-Type", "application/json")
  .body("{\n  \"pspId\": \"finmo\"\n}")
  .asString();
```

```php Customer_Register customer on PSP_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/api/v1/customers/%7BcustomerId%7D/psp-registration', [
  'body' => '{
  "pspId": "finmo"
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Customer_Register customer on PSP_example
using RestSharp;

var client = new RestClient("https://https/api/v1/customers/%7BcustomerId%7D/psp-registration");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"pspId\": \"finmo\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Customer_Register customer on PSP_example
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["pspId": "finmo"] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://https/api/v1/customers/%7BcustomerId%7D/psp-registration")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```