> For a complete page index, fetch https://docs.transak.com/llms.txt # Submit SSN POST https://api-gateway-stg.transak.com/api/v2/kyc/ssn Content-Type: application/json **Submit SSN** is an **authenticated API** call that allows submission of a user’s **Social Security Number (SSN)** as part of the **KYC verification** process. This step is mandatory for US KYC users and is used for identity validation through Transak’s banking partner. The valid SSN input must be submitted as part of the Standard KYC flow after Personal, Address, and Purpose of Usage steps. **Note:** Any incorrect or missing SSN information will lead to KYC verification failure or delay in virtual bank creation. Reference: https://docs.transak.com/api/whitelabel/kyc/submit-ssn ## 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. - `authorization` (string, optional) — Authorization token is the accessToken received from the API -` api/v2/auth/verify` Note: This is not applicable for [Auth Reliance Flows](/features/auth-reliance) - `x-user-identifier` (string, optional) — Your authenticated user Email Id address. Note: This is applicable only for [Auth Reliance Flows](/features/auth-reliance) - `x-access-token` (string, optional) — 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) ### Body (application/json) This endpoint expects an object. - `ssn` (string, required) — social security number of the user - `quoteId` (string, required) — quote Id generated from api/v2/lookup/quotes ## Response ### 200 200 - Success - `data` (ApiV2KycSsnPostResponsesContentApplicationJsonSchemaData, required) ## Errors ### 400 Bad Request Error 400 - Bad Request - `error` (ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError, required) ### 401 Unauthorized Error 401 - Unauthorized - `error` (ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError, required) ### 404 Not Found Error 404 - User Not Found - `error` (ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError, required) ### 500 Internal Server Error 500 - Internal Server Error - `error` (ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError, required) ## Types ### ApiV2KycSsnPostResponsesContentApplicationJsonSchemaData - `status` (string, required) ### ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError - `statusCode` (integer, required) - `message` (string, required) ## Examples **Request** ```json { "ssn": "", "quoteId": "" } ``` **Response** ```json { "data": { "status": "SUBMITTED" } } ``` **SDK Code** ```python SSN Submitted import requests url = "https://api-gateway-stg.transak.com/api/v2/kyc/ssn" payload = { "ssn": "", "quoteId": "" } headers = { "x-api-key": "", "x-user-ip": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript SSN Submitted const url = 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn'; const options = { method: 'POST', headers: {'x-api-key': '', 'x-user-ip': '', 'Content-Type': 'application/json'}, body: '{"ssn":"","quoteId":""}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go SSN Submitted package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-gateway-stg.transak.com/api/v2/kyc/ssn" payload := strings.NewReader("{\n \"ssn\": \"\",\n \"quoteId\": \"\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("x-api-key", "") req.Header.Add("x-user-ip", "") 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 SSN Submitted require 'uri' require 'net/http' url = URI("https://api-gateway-stg.transak.com/api/v2/kyc/ssn") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["x-api-key"] = '' request["x-user-ip"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"ssn\": \"\",\n \"quoteId\": \"\"\n}" response = http.request(request) puts response.read_body ``` ```java SSN Submitted import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-gateway-stg.transak.com/api/v2/kyc/ssn") .header("x-api-key", "") .header("x-user-ip", "") .header("Content-Type", "application/json") .body("{\n \"ssn\": \"\",\n \"quoteId\": \"\"\n}") .asString(); ``` ```php SSN Submitted request('POST', 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn', [ 'body' => '{ "ssn": "", "quoteId": "" }', 'headers' => [ 'Content-Type' => 'application/json', 'x-api-key' => '', 'x-user-ip' => '', ], ]); echo $response->getBody(); ``` ```csharp SSN Submitted using RestSharp; var client = new RestClient("https://api-gateway-stg.transak.com/api/v2/kyc/ssn"); var request = new RestRequest(Method.POST); request.AddHeader("x-api-key", ""); request.AddHeader("x-user-ip", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"ssn\": \"\",\n \"quoteId\": \"\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift SSN Submitted import Foundation let headers = [ "x-api-key": "", "x-user-ip": "", "Content-Type": "application/json" ] let parameters = [ "ssn": "", "quoteId": "" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-gateway-stg.transak.com/api/v2/kyc/ssn")! 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() ```