> For a complete page index, fetch https://docs.transak.com/llms.txt # Onboard User (Auth Reliance) POST https://api-gateway-stg.transak.com/api/v2/user/onboard The **Onboard User** API is used to create or fetch a user. This API is applicable only for [**Auth Reliance Flows**](/features/auth-reliance). Pass the authenticated user's identifier in `x-user-identifier` and the partner access token in `x-access-token`. | Scenario | Behavior | | --- | --- | | New user | Creates the user and returns the KYC status. | | Existing user | Returns the existing user details and KYC status. | Reference: https://docs.transak.com/api/whitelabel/user/onboard-user-auth-reliance ## Request ### Headers - `x-user-ip` (string, required) — End user's originating IP. More details [here](/guides/mandatory-security-changes#user-ip-header-in-apis) - `x-api-key` (string, required) — Partner API Key present in Transak Dashboard. - `x-user-identifier` (string, required) — Your authenticated user Email Id address. Note: This is applicable only for [Auth Reliance Flows](/features/auth-reliance) - `x-access-token` (string, required) — Your Partner Access Token. Please refer [here](/guides/how-to-create-partner-access-token) for a tutorial on generating your access token. Note: This is applicable only for [Auth Reliance Flows](/features/auth-reliance) ## Response ### 200 200 - Success - `data` (ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaData, required) ### 201 201 - Success New User - `data` (ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaData, required) ## Errors ### 401 Unauthorized Error 401 - Unauthorized - `error` (ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaError, required) ### 500 Internal Server Error 500 - Internal Server Error - `error` (ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaError, required) ## Types ### ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaData - `partnerUserId` (string, required) - `email` (string, required) - `status` (string, required) - `kyc` (ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaDataKyc, required) ### ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaError - `statusCode` (integer, required) - `message` (string, required) ### ApiV2UserOnboardPostResponsesContentApplicationJsonSchemaDataKyc - `status` (string, required) - `type` (string, required) ## Examples ### Success Existing User **Response** ```json { "data": { "partnerUserId": "2e0dqwe4a-f0cc-46f8-b965-231d9bccb3da", "email": "test@gmail.com", "status": "ACTIVE", "kyc": { "status": "APPROVED", "type": "STANDARD" } } } ``` **SDK Code** ```python Success Existing User import requests url = "https://api-gateway-stg.transak.com/api/v2/user/onboard" headers = { "x-access-token": "", "x-api-key": "", "x-user-identifier": "test@gmail.com", "x-user-ip": "" } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript Success Existing User const url = 'https://api-gateway-stg.transak.com/api/v2/user/onboard'; const options = { method: 'POST', headers: { 'x-access-token': '', 'x-api-key': '', 'x-user-identifier': 'test@gmail.com', 'x-user-ip': '' } }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Success Existing User package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api-gateway-stg.transak.com/api/v2/user/onboard" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("x-access-token", "") req.Header.Add("x-api-key", "") req.Header.Add("x-user-identifier", "test@gmail.com") req.Header.Add("x-user-ip", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Success Existing User require 'uri' require 'net/http' url = URI("https://api-gateway-stg.transak.com/api/v2/user/onboard") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-access-token"] = '' request["x-api-key"] = '' request["x-user-identifier"] = 'test@gmail.com' request["x-user-ip"] = '' response = http.request(request) puts response.read_body ``` ```java Success Existing User import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-gateway-stg.transak.com/api/v2/user/onboard") .header("x-access-token", "") .header("x-api-key", "") .header("x-user-identifier", "test@gmail.com") .header("x-user-ip", "") .asString(); ``` ```php Success Existing User request('POST', 'https://api-gateway-stg.transak.com/api/v2/user/onboard', [ 'headers' => [ 'x-access-token' => '', 'x-api-key' => '', 'x-user-identifier' => 'test@gmail.com', 'x-user-ip' => '', ], ]); echo $response->getBody(); ``` ```csharp Success Existing User using RestSharp; var client = new RestClient("https://api-gateway-stg.transak.com/api/v2/user/onboard"); var request = new RestRequest(Method.POST); request.AddHeader("x-access-token", ""); request.AddHeader("x-api-key", ""); request.AddHeader("x-user-identifier", "test@gmail.com"); request.AddHeader("x-user-ip", ""); IRestResponse response = client.Execute(request); ``` ```swift Success Existing User import Foundation let headers = [ "x-access-token": "", "x-api-key": "", "x-user-identifier": "test@gmail.com", "x-user-ip": "" ] let request = NSMutableURLRequest(url: NSURL(string: "https://api-gateway-stg.transak.com/api/v2/user/onboard")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers 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() ``` ### Success New User **Response** ```json { "data": { "partnerUserId": "2e0dqwe4a-f0cc-46f8-b965-231d9bccb3da", "email": "test@gmail.com", "status": "ACTIVE", "kyc": { "status": "NOT_SUBMITTED", "type": "" } } } ``` **SDK Code** ```python Success New User import requests url = "https://api-gateway-stg.transak.com/api/v2/user/onboard" headers = { "x-access-token": "", "x-api-key": "", "x-user-identifier": "test@gmail.com", "x-user-ip": "" } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript Success New User const url = 'https://api-gateway-stg.transak.com/api/v2/user/onboard'; const options = { method: 'POST', headers: { 'x-access-token': '', 'x-api-key': '', 'x-user-identifier': 'test@gmail.com', 'x-user-ip': '' } }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Success New User package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api-gateway-stg.transak.com/api/v2/user/onboard" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("x-access-token", "") req.Header.Add("x-api-key", "") req.Header.Add("x-user-identifier", "test@gmail.com") req.Header.Add("x-user-ip", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Success New User require 'uri' require 'net/http' url = URI("https://api-gateway-stg.transak.com/api/v2/user/onboard") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-access-token"] = '' request["x-api-key"] = '' request["x-user-identifier"] = 'test@gmail.com' request["x-user-ip"] = '' response = http.request(request) puts response.read_body ``` ```java Success New User import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-gateway-stg.transak.com/api/v2/user/onboard") .header("x-access-token", "") .header("x-api-key", "") .header("x-user-identifier", "test@gmail.com") .header("x-user-ip", "") .asString(); ``` ```php Success New User request('POST', 'https://api-gateway-stg.transak.com/api/v2/user/onboard', [ 'headers' => [ 'x-access-token' => '', 'x-api-key' => '', 'x-user-identifier' => 'test@gmail.com', 'x-user-ip' => '', ], ]); echo $response->getBody(); ``` ```csharp Success New User using RestSharp; var client = new RestClient("https://api-gateway-stg.transak.com/api/v2/user/onboard"); var request = new RestRequest(Method.POST); request.AddHeader("x-access-token", ""); request.AddHeader("x-api-key", ""); request.AddHeader("x-user-identifier", "test@gmail.com"); request.AddHeader("x-user-ip", ""); IRestResponse response = client.Execute(request); ``` ```swift Success New User import Foundation let headers = [ "x-access-token": "", "x-api-key": "", "x-user-identifier": "test@gmail.com", "x-user-ip": "" ] let request = NSMutableURLRequest(url: NSURL(string: "https://api-gateway-stg.transak.com/api/v2/user/onboard")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers 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() ```