# 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 ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: whitelabel-api version: 1.0.0 paths: /api/v2/kyc/ssn: post: operationId: submit-ssn summary: Submit SSN description: >- **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. tags: - subpackage_kyc parameters: - name: authorization in: header description: >- Authorization token is the accessToken received from the API -` api/v2/auth/verify` required: true schema: type: string default: YOUR_USER_AUTH_TOKEN - name: x-user-identifier in: header description: >- Your authenticated user Email Id address. Note: This is applicable only for [Auth Reliance Flows](/features/auth-reliance) required: false schema: type: string default: USER_EMAIL_ID - name: x-access-token in: header description: > 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) required: false schema: type: string default: YOUR_ACCESS_TOKEN responses: '200': description: 200 - Success content: application/json: schema: $ref: '#/components/schemas/KYC_submit-ssn_Response_200' '400': description: 400 - Bad Request content: application/json: schema: $ref: '#/components/schemas/Submit-ssnRequestBadRequestError' '401': description: 401 - Unauthorized content: application/json: schema: $ref: '#/components/schemas/Submit-ssnRequestUnauthorizedError' '500': description: 500 - Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Submit-ssnRequestInternalServerError' requestBody: content: application/json: schema: type: object properties: ssn: type: string default: '123456789' description: social security number of the user quoteId: type: string default: YOUR_QUOTE_ID description: quote Id generated from api/v2/lookup/quotes required: - ssn - quoteId servers: - url: https://api-gateway-stg.transak.com components: schemas: ApiV2KycSsnPostResponsesContentApplicationJsonSchemaData: type: object properties: status: type: string required: - status title: ApiV2KycSsnPostResponsesContentApplicationJsonSchemaData KYC_submit-ssn_Response_200: type: object properties: data: $ref: >- #/components/schemas/ApiV2KycSsnPostResponsesContentApplicationJsonSchemaData required: - data title: KYC_submit-ssn_Response_200 ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError: type: object properties: statusCode: type: integer message: type: string required: - statusCode - message title: ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError Submit-ssnRequestBadRequestError: type: object properties: error: $ref: >- #/components/schemas/ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError required: - error title: Submit-ssnRequestBadRequestError Submit-ssnRequestUnauthorizedError: type: object properties: error: $ref: >- #/components/schemas/ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError required: - error title: Submit-ssnRequestUnauthorizedError Submit-ssnRequestInternalServerError: type: object properties: error: $ref: >- #/components/schemas/ApiV2KycSsnPostResponsesContentApplicationJsonSchemaError required: - error title: Submit-ssnRequestInternalServerError ``` ## SDK Code Examples ```python Success import requests url = "https://api-gateway-stg.transak.com/api/v2/kyc/ssn" headers = { "authorization": "YOUR_USER_AUTH_TOKEN", "x-user-identifier": "USER_EMAIL_ID", "x-access-token": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json" } response = requests.post(url, headers=headers) print(response.json()) ``` ```javascript Success const url = 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn'; const options = { method: 'POST', headers: { authorization: 'YOUR_USER_AUTH_TOKEN', 'x-user-identifier': 'USER_EMAIL_ID', 'x-access-token': 'YOUR_ACCESS_TOKEN', 'Content-Type': 'application/json' }, body: undefined }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Success package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api-gateway-stg.transak.com/api/v2/kyc/ssn" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("authorization", "YOUR_USER_AUTH_TOKEN") req.Header.Add("x-user-identifier", "USER_EMAIL_ID") req.Header.Add("x-access-token", "YOUR_ACCESS_TOKEN") 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 Success 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["authorization"] = 'YOUR_USER_AUTH_TOKEN' request["x-user-identifier"] = 'USER_EMAIL_ID' request["x-access-token"] = 'YOUR_ACCESS_TOKEN' request["Content-Type"] = 'application/json' response = http.request(request) puts response.read_body ``` ```java Success 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("authorization", "YOUR_USER_AUTH_TOKEN") .header("x-user-identifier", "USER_EMAIL_ID") .header("x-access-token", "YOUR_ACCESS_TOKEN") .header("Content-Type", "application/json") .asString(); ``` ```php Success request('POST', 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn', [ 'headers' => [ 'Content-Type' => 'application/json', 'authorization' => 'YOUR_USER_AUTH_TOKEN', 'x-access-token' => 'YOUR_ACCESS_TOKEN', 'x-user-identifier' => 'USER_EMAIL_ID', ], ]); echo $response->getBody(); ``` ```csharp Success using RestSharp; var client = new RestClient("https://api-gateway-stg.transak.com/api/v2/kyc/ssn"); var request = new RestRequest(Method.POST); request.AddHeader("authorization", "YOUR_USER_AUTH_TOKEN"); request.AddHeader("x-user-identifier", "USER_EMAIL_ID"); request.AddHeader("x-access-token", "YOUR_ACCESS_TOKEN"); request.AddHeader("Content-Type", "application/json"); IRestResponse response = client.Execute(request); ``` ```swift Success import Foundation let headers = [ "authorization": "YOUR_USER_AUTH_TOKEN", "x-user-identifier": "USER_EMAIL_ID", "x-access-token": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json" ] 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 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() ``` ```python KYC_submit-ssn_example import requests url = "https://api-gateway-stg.transak.com/api/v2/kyc/ssn" payload = { "ssn": "123456789", "quoteId": "YOUR_QUOTE_ID" } headers = { "authorization": "YOUR_USER_AUTH_TOKEN", "x-user-identifier": "USER_EMAIL_ID", "x-access-token": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript KYC_submit-ssn_example const url = 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn'; const options = { method: 'POST', headers: { authorization: 'YOUR_USER_AUTH_TOKEN', 'x-user-identifier': 'USER_EMAIL_ID', 'x-access-token': 'YOUR_ACCESS_TOKEN', 'Content-Type': 'application/json' }, body: '{"ssn":"123456789","quoteId":"YOUR_QUOTE_ID"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go KYC_submit-ssn_example 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\": \"123456789\",\n \"quoteId\": \"YOUR_QUOTE_ID\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("authorization", "YOUR_USER_AUTH_TOKEN") req.Header.Add("x-user-identifier", "USER_EMAIL_ID") req.Header.Add("x-access-token", "YOUR_ACCESS_TOKEN") 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 KYC_submit-ssn_example 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["authorization"] = 'YOUR_USER_AUTH_TOKEN' request["x-user-identifier"] = 'USER_EMAIL_ID' request["x-access-token"] = 'YOUR_ACCESS_TOKEN' request["Content-Type"] = 'application/json' request.body = "{\n \"ssn\": \"123456789\",\n \"quoteId\": \"YOUR_QUOTE_ID\"\n}" response = http.request(request) puts response.read_body ``` ```java KYC_submit-ssn_example 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("authorization", "YOUR_USER_AUTH_TOKEN") .header("x-user-identifier", "USER_EMAIL_ID") .header("x-access-token", "YOUR_ACCESS_TOKEN") .header("Content-Type", "application/json") .body("{\n \"ssn\": \"123456789\",\n \"quoteId\": \"YOUR_QUOTE_ID\"\n}") .asString(); ``` ```php KYC_submit-ssn_example request('POST', 'https://api-gateway-stg.transak.com/api/v2/kyc/ssn', [ 'body' => '{ "ssn": "123456789", "quoteId": "YOUR_QUOTE_ID" }', 'headers' => [ 'Content-Type' => 'application/json', 'authorization' => 'YOUR_USER_AUTH_TOKEN', 'x-access-token' => 'YOUR_ACCESS_TOKEN', 'x-user-identifier' => 'USER_EMAIL_ID', ], ]); echo $response->getBody(); ``` ```csharp KYC_submit-ssn_example using RestSharp; var client = new RestClient("https://api-gateway-stg.transak.com/api/v2/kyc/ssn"); var request = new RestRequest(Method.POST); request.AddHeader("authorization", "YOUR_USER_AUTH_TOKEN"); request.AddHeader("x-user-identifier", "USER_EMAIL_ID"); request.AddHeader("x-access-token", "YOUR_ACCESS_TOKEN"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"ssn\": \"123456789\",\n \"quoteId\": \"YOUR_QUOTE_ID\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift KYC_submit-ssn_example import Foundation let headers = [ "authorization": "YOUR_USER_AUTH_TOKEN", "x-user-identifier": "USER_EMAIL_ID", "x-access-token": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json" ] let parameters = [ "ssn": "123456789", "quoteId": "YOUR_QUOTE_ID" ] 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() ```