{"templateId":"markdown","sharedDataIds":{},"props":{"metadata":{"markdoc":{"tagList":["tabs","tab","admonition"]},"type":"markdown"},"seo":{"title":"Reefpay Docs","description":"Reefpay is the groundbreaking payment gateway that lets you integrate with the future of payments.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"onboard-a-new-client","__idx":0},"children":["Onboard a new client"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"prerequisites","__idx":1},"children":["Prerequisites"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A valid API key for your parent account — see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/how-tos/setup/obtain-credentials"},"children":["Obtain API credentials"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parent_id"]}," of the account under which the new client will be created"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"onboarding-flow","__idx":2},"children":["Onboarding flow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"https://files.modern-mermaid.live/images/1776276286307-mermaid-diagram-1776276286546.png","alt":"image"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-1-create-the-client-account","__idx":3},"children":["Step 1: Create the client account"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/clients"]}," with the client details."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["dba"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Doing-business-as name"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["parent_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["ID of the parent client or reseller account"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reseller"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["admin_contact_details.first_name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Admin first name"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["admin_contact_details.last_name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Admin last name"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["admin_contact_details.email"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Admin email address"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["admin_contact_details.phone"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Admin phone number"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["admin_contact_details.time_zone"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["IANA time zone (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["America/New_York"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"curl","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"curl -X POST \\\n  https://api.dev.paradisegateway.net/v1/clients \\\n  -H \"Content-Type: application/json\" \\\n  -H \"APIKEY: YOUR-API-KEY\" \\\n  -d '{\n    \"dba\": \"Acme Jewelry\",\n    \"parent_id\": \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n    \"type\": \"merchant\",\n    \"admin_contact_details\": {\n      \"first_name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"email\": \"john.doe@example.com\",\n      \"phone\": \"+15551234567\",\n      \"time_zone\": \"America/New_York\"\n    }\n  }'\n","lang":"shell"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import requests\n\nresp = requests.post(\n    \"https://api.dev.paradisegateway.net/v1/clients\",\n    headers={\"Content-Type\": \"application/json\", \"APIKEY\": \"YOUR-API-KEY\"},\n    json={\n        \"dba\": \"Acme Jewelry\",\n        \"parent_id\": \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n        \"type\": \"merchant\",\n        \"admin_contact_details\": {\n            \"first_name\": \"John\",\n            \"last_name\": \"Doe\",\n            \"email\": \"john.doe@example.com\",\n            \"phone\": \"+15551234567\",\n            \"time_zone\": \"America/New_York\",\n        },\n    },\n)\ndata = resp.json()\nprint(\"Client ID:\", data[\"id\"])\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"JavaScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const resp = await fetch(\n  \"https://api.dev.paradisegateway.net/v1/clients\",\n  {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n      \"APIKEY\": \"YOUR-API-KEY\",\n    },\n    body: JSON.stringify({\n      dba: \"Acme Jewelry\",\n      parent_id: \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n      type: \"merchant\",\n      admin_contact_details: {\n        first_name: \"John\",\n        last_name: \"Doe\",\n        email: \"john.doe@example.com\",\n        phone: \"+15551234567\",\n        time_zone: \"America/New_York\",\n      },\n    }),\n  }\n);\nconst data = await resp.json();\nconsole.log(\"Client ID:\", data.id);\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"using var client = new HttpClient();\nclient.DefaultRequestHeaders.Add(\"APIKEY\", \"YOUR-API-KEY\");\n\nvar payload = new\n{\n    dba = \"Acme Jewelry\",\n    parent_id = \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n    type = \"merchant\",\n    admin_contact_details = new\n    {\n        first_name = \"John\", last_name = \"Doe\",\n        email = \"john.doe@example.com\", phone = \"+15551234567\",\n        time_zone = \"America/New_York\"\n    }\n};\nvar resp = await client.PostAsJsonAsync(\n    \"https://api.dev.paradisegateway.net/v1/clients\", payload);\nConsole.WriteLine(await resp.Content.ReadAsStringAsync());\n","lang":"csharp"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Java","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"HttpClient client = HttpClient.newHttpClient();\nString body = \"\"\"\n    {\n      \"dba\": \"Acme Jewelry\",\n      \"parent_id\": \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n      \"type\": \"merchant\",\n      \"admin_contact_details\": {\n        \"first_name\": \"John\", \"last_name\": \"Doe\",\n        \"email\": \"john.doe@example.com\",\n        \"phone\": \"+15551234567\",\n        \"time_zone\": \"America/New_York\"\n      }\n    }\n    \"\"\";\nHttpRequest request = HttpRequest.newBuilder()\n    .uri(URI.create(\"https://api.dev.paradisegateway.net/v1/clients\"))\n    .header(\"Content-Type\", \"application/json\")\n    .header(\"APIKEY\", \"YOUR-API-KEY\")\n    .POST(HttpRequest.BodyPublishers.ofString(body)).build();\nHttpResponse<String> resp = client.send(request,\n    HttpResponse.BodyHandlers.ofString());\nSystem.out.println(resp.body());\n","lang":"java"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Go","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"go","header":{"controls":{"copy":{}}},"source":"payload := strings.NewReader(`{\n  \"dba\": \"Acme Jewelry\",\n  \"parent_id\": \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n  \"type\": \"merchant\",\n  \"admin_contact_details\": {\n    \"first_name\": \"John\", \"last_name\": \"Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"phone\": \"+15551234567\",\n    \"time_zone\": \"America/New_York\"\n  }\n}`)\nreq, _ := http.NewRequest(\"POST\",\n    \"https://api.dev.paradisegateway.net/v1/clients\", payload)\nreq.Header.Set(\"Content-Type\", \"application/json\")\nreq.Header.Set(\"APIKEY\", \"YOUR-API-KEY\")\nresp, _ := http.DefaultClient.Do(req)\ndefer resp.Body.Close()\nbody, _ := io.ReadAll(resp.Body)\nfmt.Println(string(body))\n","lang":"go"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"$ch = curl_init(\"https://api.dev.paradisegateway.net/v1/clients\");\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,\n    CURLOPT_HTTPHEADER => [\"Content-Type: application/json\", \"APIKEY: YOUR-API-KEY\"],\n    CURLOPT_POSTFIELDS => json_encode([\n        \"dba\" => \"Acme Jewelry\",\n        \"parent_id\" => \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n        \"type\" => \"merchant\",\n        \"admin_contact_details\" => [\n            \"first_name\" => \"John\", \"last_name\" => \"Doe\",\n            \"email\" => \"john.doe@example.com\", \"phone\" => \"+15551234567\",\n            \"time_zone\" => \"America/New_York\",\n        ],\n    ]),\n]);\necho curl_exec($ch); curl_close($ch);\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"require \"net/http\"; require \"json\"\nuri = URI(\"https://api.dev.paradisegateway.net/v1/clients\")\nreq = Net::HTTP::Post.new(uri, {\n  \"Content-Type\" => \"application/json\", \"APIKEY\" => \"YOUR-API-KEY\",\n})\nreq.body = {\n  dba: \"Acme Jewelry\",\n  parent_id: \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n  type: \"merchant\",\n  admin_contact_details: {\n    first_name: \"John\", last_name: \"Doe\",\n    email: \"john.doe@example.com\", phone: \"+15551234567\",\n    time_zone: \"America/New_York\",\n  },\n}.to_json\nresp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs resp.body\n","lang":"ruby"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response-example","__idx":4},"children":["Response example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," response returns the new client, including credentials for the client's own API access."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": \"CLIENT-3MtwBwLkdIwHu7ix28a3tqPa\",\n  \"object\": \"client\",\n  \"dba\": \"Acme Jewelry\",\n  \"parent_id\": \"CLIENT-01JMRSPCK7XVNP3KS8F2W4T6Y\",\n  \"type\": \"merchant\",\n  \"admin_contact_details\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"phone\": \"+15551234567\",\n    \"time_zone\": \"America/New_York\"\n  },\n  \"api_key\": \"KEY-...\",\n  \"encryption_keys\": { ... },\n  \"correlation_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Store credentials securely"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api_key"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["encryption_keys"]}," are returned only in the creation response. Store them in a secrets manager and provide them to the client through a secure channel."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Save the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," value — you need it in the next step."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-2-create-the-first-user","__idx":5},"children":["Step 2: Create the first user"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/users"]}," to create a user account linked to the new client."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["first_name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["User's first name"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["last_name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["User's last name"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["email"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["User's email (also used as username)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["phone"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["User's phone number"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["time_zone"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["IANA time zone"]}]}]}]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"curl","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"curl -X POST \\\n  https://api.dev.paradisegateway.net/v1/users \\\n  -H \"Content-Type: application/json\" \\\n  -H \"APIKEY: KEY-...\" \\\n  -d '{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"phone\": \"+15551234567\",\n    \"time_zone\": \"America/New_York\"\n  }'\n","lang":"shell"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"resp = requests.post(\n    \"https://api.dev.paradisegateway.net/v1/users\",\n    headers={\"Content-Type\": \"application/json\", \"APIKEY\": \"KEY-...\"},\n    json={\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"email\": \"john.doe@example.com\",\n        \"phone\": \"+15551234567\",\n        \"time_zone\": \"America/New_York\",\n    },\n)\nprint(resp.json())\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"JavaScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const resp = await fetch(\n  \"https://api.dev.paradisegateway.net/v1/users\",\n  {\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\",\n      \"APIKEY\": \"KEY-...\",\n    },\n    body: JSON.stringify({\n      first_name: \"John\",\n      last_name: \"Doe\",\n      email: \"john.doe@example.com\",\n      phone: \"+15551234567\",\n      time_zone: \"America/New_York\",\n    }),\n  }\n);\nconsole.log(await resp.json());\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"using var userClient = new HttpClient();\nuserClient.DefaultRequestHeaders.Add(\"APIKEY\", \"KEY-...\");\n\nvar userPayload = new\n{\n    first_name = \"John\", last_name = \"Doe\",\n    email = \"john.doe@example.com\", phone = \"+15551234567\",\n    time_zone = \"America/New_York\"\n};\nvar resp = await userClient.PostAsJsonAsync(\n    \"https://api.dev.paradisegateway.net/v1/users\", userPayload);\nConsole.WriteLine(await resp.Content.ReadAsStringAsync());\n","lang":"csharp"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Java","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"java","header":{"controls":{"copy":{}}},"source":"String userBody = \"\"\"\n    {\n      \"first_name\": \"John\", \"last_name\": \"Doe\",\n      \"email\": \"john.doe@example.com\",\n      \"phone\": \"+15551234567\",\n      \"time_zone\": \"America/New_York\"\n    }\n    \"\"\";\nHttpRequest userReq = HttpRequest.newBuilder()\n    .uri(URI.create(\"https://api.dev.paradisegateway.net/v1/users\"))\n    .header(\"Content-Type\", \"application/json\")\n    .header(\"APIKEY\", \"KEY-...\")\n    .POST(HttpRequest.BodyPublishers.ofString(userBody)).build();\nHttpResponse<String> userResp = client.send(userReq,\n    HttpResponse.BodyHandlers.ofString());\nSystem.out.println(userResp.body());\n","lang":"java"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Go","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"go","header":{"controls":{"copy":{}}},"source":"payload := strings.NewReader(`{\n  \"first_name\": \"John\", \"last_name\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+15551234567\",\n  \"time_zone\": \"America/New_York\"\n}`)\nreq, _ := http.NewRequest(\"POST\",\n    \"https://api.dev.paradisegateway.net/v1/users\", payload)\nreq.Header.Set(\"Content-Type\", \"application/json\")\nreq.Header.Set(\"APIKEY\", \"KEY-...\")\nresp, _ := http.DefaultClient.Do(req)\ndefer resp.Body.Close()\nbody, _ := io.ReadAll(resp.Body)\nfmt.Println(string(body))\n","lang":"go"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PHP","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"$ch = curl_init(\"https://api.dev.paradisegateway.net/v1/users\");\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,\n    CURLOPT_HTTPHEADER => [\"Content-Type: application/json\", \"APIKEY: KEY-...\"],\n    CURLOPT_POSTFIELDS => json_encode([\n        \"first_name\" => \"John\", \"last_name\" => \"Doe\",\n        \"email\" => \"john.doe@example.com\",\n        \"phone\" => \"+15551234567\",\n        \"time_zone\" => \"America/New_York\",\n    ]),\n]);\necho curl_exec($ch); curl_close($ch);\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Ruby","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"ruby","header":{"controls":{"copy":{}}},"source":"uri = URI(\"https://api.dev.paradisegateway.net/v1/users\")\nreq = Net::HTTP::Post.new(uri, {\n  \"Content-Type\" => \"application/json\", \"APIKEY\" => \"KEY-...\",\n})\nreq.body = {\n  first_name: \"John\", last_name: \"Doe\",\n  email: \"john.doe@example.com\",\n  phone: \"+15551234567\", time_zone: \"America/New_York\",\n}.to_json\nresp = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }\nputs resp.body\n","lang":"ruby"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response-example-for-creating-a-user","__idx":6},"children":["Response example for creating a user"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["201 Created"]}," response confirms the user was created."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": \"USER-3MtwBwLkdIwHu7ix28a3tqPa\",\n  \"object\": \"user\",\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"email\": \"john.doe@example.com\",\n  \"phone\": \"+15551234567\",\n  \"time_zone\": \"America/New_York\",\n  \"is_mfa_active\": false,\n  \"is_active\": true,\n  \"is_locked\": false,\n  \"correlation_id\": \"b2c3d4e5-f6a7-8901-bcde-f12345678901\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"step-3-verify-the-onboarding","__idx":7},"children":["Step 3: Verify the onboarding"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Confirm the client and user exist by retrieving them."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"shell","header":{"controls":{"copy":{}}},"source":"# Verify client\ncurl https://api.dev.paradisegateway.net/v1/clients/CLIENT-3MtwBwLkdIwHu7ix28a3tqPa \\\n  -H \"APIKEY: YOUR-API-KEY\"\n\n# Verify user\ncurl https://api.dev.paradisegateway.net/v1/users/USER-3MtwBwLkdIwHu7ix28a3tqPa \\\n  -H \"APIKEY: KEY-...\"\n","lang":"shell"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":8},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/how-tos/clients-users/add-users-client"},"children":["Add more users to the client"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/how-tos/clients-users/enable-mfa"},"children":["Enable MFA for users"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/how-tos/setup/setup-sandbox-env"},"children":["Set up the sandbox environment"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/concepts/account-hierarchy/clients-and-resellers"},"children":["About clients and resellers"]}]}]}]},"headings":[{"value":"Onboard a new client","id":"onboard-a-new-client","depth":1},{"value":"Prerequisites","id":"prerequisites","depth":2},{"value":"Onboarding flow","id":"onboarding-flow","depth":2},{"value":"Step 1: Create the client account","id":"step-1-create-the-client-account","depth":2},{"value":"Response example","id":"response-example","depth":3},{"value":"Step 2: Create the first user","id":"step-2-create-the-first-user","depth":2},{"value":"Response example for creating a user","id":"response-example-for-creating-a-user","depth":3},{"value":"Step 3: Verify the onboarding","id":"step-3-verify-the-onboarding","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"title":"Onboard a new client","shortTitle":"Onboard a client","intro":"Create a client account and its first user in two API calls. This is the foundation for multi-tenant operations — every merchant or reseller starts here.","type":"how-to","seo":{"title":""}},"lastModified":"2026-06-05T02:46:44.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/how-tos/clients-users/onboard-client","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}