> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://ixopay.ferndocs.com/developer-hub/api-reference/customer-profile-api/update-profile/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://ixopay.ferndocs.com/_mcp/server. # Update a customer profile POST https://gateway.ixopay.com/api/v3/customerProfiles/{apiKey}/updateProfile Content-Type: application/json Reference: https://ixopay.ferndocs.com/developer-hub/api-reference/customer-profile-api/update-profile ## Authentication - `Authorization` header (basic auth, required) — Basic authentication of the form `Basic `. ## Request ### Path parameters - `apiKey` (string, required) — API Key of Connector ### Body (application/json) This endpoint expects an UpdateProfileRequest. - `customerData` (Customer, required) - `profileGuid` (string, optional) - `customerIdentification` (string, optional) - `preferredInstrument` (string, optional) ## Response ### 200 Update a customer profile - `success` (boolean, optional) - `profileGuid` (string, optional) - `customer` (ResponseCustomer, optional) - `changedFields` (list of string, optional) ## Types ### Customer - `firstName` (string, required) - `lastName` (string, optional) - `birthDate` (string, optional) - `gender` (string, optional) - `billingAddress1` (string, optional) - `billingAddress2` (string, optional) - `billingCity` (string, optional) - `billingPostcode` (string, optional) - `billingState` (string, optional) - `billingCountry` (string, optional) - `billingPhone` (string, optional) - `company` (string, optional) - `email` (string, optional) - `ipAddress` (string, optional) - `nationalId` (string, optional) - `extraData` (map from string to string, optional) ### ResponseCustomer - `_TYPE` (string, optional) - `billingAddress1` (string, optional) - `billingAddress2` (string, optional) - `billingCity` (string, optional) - `billingCountry` (string, optional) - `billingPhone` (string, optional) - `billingPostcode` (string, optional) - `billingState` (string, optional) - `birthDate` (string, optional) - `company` (string, optional) - `email` (string, optional) - `extraData` (map from string to string, optional) - `firstName` (string, optional) - `gender` (string, optional) - `ipAddress` (string, optional) - `lastName` (string, optional) - `nationalId` (string, optional) ## Examples **Request** ```json { "customerData": { "firstName": "John", "lastName": "Smith", "birthDate": "1970-01-01", "gender": "M", "billingAddress1": "Street", "billingAddress2": "Address", "billingCity": "Vienna", "billingPostcode": "1010", "billingState": "Vienna", "billingCountry": "AT", "billingPhone": "123456789", "company": "Company Name", "email": "john@example.com", "ipAddress": "127.0.0.1", "nationalId": "1234", "extraData": [] }, "customerIdentification": "YOUR_CUSTOMER_ID", "preferredInstrument": "pt::12345678901234567890" } ``` **Response** ```json { "success": true, "profileGuid": "CP-0000-0000-0000-0000-0000-0000", "customer": { "_TYPE": "customerData", "billingAddress1": "Street", "billingAddress2": "Address", "billingCity": "Vienna", "billingCountry": "AT", "billingPhone": "123456789", "billingPostcode": "1010", "billingState": "Vienna", "birthDate": "1970-01-01", "company": "Company Name", "email": "john@example.com", "extraData": [], "firstName": "John", "gender": "M", "ipAddress": "127.0.0.1", "lastName": "Smith", "nationalId": "1234" }, "changedFields": [ "firstName", "lastName" ] } ``` **SDK Code** ```python updateProfile_example import requests url = "https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile" payload = { "customerData": { "firstName": "John", "lastName": "Smith", "birthDate": "1970-01-01", "gender": "M", "billingAddress1": "Street", "billingAddress2": "Address", "billingCity": "Vienna", "billingPostcode": "1010", "billingState": "Vienna", "billingCountry": "AT", "billingPhone": "123456789", "company": "Company Name", "email": "john@example.com", "ipAddress": "127.0.0.1", "nationalId": "1234", "extraData": [] }, "customerIdentification": "YOUR_CUSTOMER_ID", "preferredInstrument": "pt::12345678901234567890" } headers = { "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers, auth=("", "")) print(response.json()) ``` ```javascript updateProfile_example const url = 'https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile'; const credentials = btoa(":"); const options = { method: 'POST', headers: { Authorization: `Basic ${credentials}`, 'Content-Type': 'application/json' }, body: '{"customerData":{"firstName":"John","lastName":"Smith","birthDate":"1970-01-01","gender":"M","billingAddress1":"Street","billingAddress2":"Address","billingCity":"Vienna","billingPostcode":"1010","billingState":"Vienna","billingCountry":"AT","billingPhone":"123456789","company":"Company Name","email":"john@example.com","ipAddress":"127.0.0.1","nationalId":"1234","extraData":[]},"customerIdentification":"YOUR_CUSTOMER_ID","preferredInstrument":"pt::12345678901234567890"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go updateProfile_example package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile" payload := strings.NewReader("{\n \"customerData\": {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"birthDate\": \"1970-01-01\",\n \"gender\": \"M\",\n \"billingAddress1\": \"Street\",\n \"billingAddress2\": \"Address\",\n \"billingCity\": \"Vienna\",\n \"billingPostcode\": \"1010\",\n \"billingState\": \"Vienna\",\n \"billingCountry\": \"AT\",\n \"billingPhone\": \"123456789\",\n \"company\": \"Company Name\",\n \"email\": \"john@example.com\",\n \"ipAddress\": \"127.0.0.1\",\n \"nationalId\": \"1234\",\n \"extraData\": []\n },\n \"customerIdentification\": \"YOUR_CUSTOMER_ID\",\n \"preferredInstrument\": \"pt::12345678901234567890\"\n}") req, _ := http.NewRequest("POST", url, payload) req.SetBasicAuth("", "") 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 updateProfile_example require 'uri' require 'net/http' url = URI("https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request.basic_auth("", "") request["Content-Type"] = 'application/json' request.body = "{\n \"customerData\": {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"birthDate\": \"1970-01-01\",\n \"gender\": \"M\",\n \"billingAddress1\": \"Street\",\n \"billingAddress2\": \"Address\",\n \"billingCity\": \"Vienna\",\n \"billingPostcode\": \"1010\",\n \"billingState\": \"Vienna\",\n \"billingCountry\": \"AT\",\n \"billingPhone\": \"123456789\",\n \"company\": \"Company Name\",\n \"email\": \"john@example.com\",\n \"ipAddress\": \"127.0.0.1\",\n \"nationalId\": \"1234\",\n \"extraData\": []\n },\n \"customerIdentification\": \"YOUR_CUSTOMER_ID\",\n \"preferredInstrument\": \"pt::12345678901234567890\"\n}" response = http.request(request) puts response.read_body ``` ```java updateProfile_example import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile") .basicAuth("", "") .header("Content-Type", "application/json") .body("{\n \"customerData\": {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"birthDate\": \"1970-01-01\",\n \"gender\": \"M\",\n \"billingAddress1\": \"Street\",\n \"billingAddress2\": \"Address\",\n \"billingCity\": \"Vienna\",\n \"billingPostcode\": \"1010\",\n \"billingState\": \"Vienna\",\n \"billingCountry\": \"AT\",\n \"billingPhone\": \"123456789\",\n \"company\": \"Company Name\",\n \"email\": \"john@example.com\",\n \"ipAddress\": \"127.0.0.1\",\n \"nationalId\": \"1234\",\n \"extraData\": []\n },\n \"customerIdentification\": \"YOUR_CUSTOMER_ID\",\n \"preferredInstrument\": \"pt::12345678901234567890\"\n}") .asString(); ``` ```php updateProfile_example request('POST', 'https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile', [ 'body' => '{ "customerData": { "firstName": "John", "lastName": "Smith", "birthDate": "1970-01-01", "gender": "M", "billingAddress1": "Street", "billingAddress2": "Address", "billingCity": "Vienna", "billingPostcode": "1010", "billingState": "Vienna", "billingCountry": "AT", "billingPhone": "123456789", "company": "Company Name", "email": "john@example.com", "ipAddress": "127.0.0.1", "nationalId": "1234", "extraData": [] }, "customerIdentification": "YOUR_CUSTOMER_ID", "preferredInstrument": "pt::12345678901234567890" }', 'headers' => [ 'Content-Type' => 'application/json', ], 'auth' => ['', ''], ]); echo $response->getBody(); ``` ```csharp updateProfile_example using RestSharp; using RestSharp.Authenticators; var client = new RestClient("https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile"); client.Authenticator = new HttpBasicAuthenticator("", ""); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"customerData\": {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"birthDate\": \"1970-01-01\",\n \"gender\": \"M\",\n \"billingAddress1\": \"Street\",\n \"billingAddress2\": \"Address\",\n \"billingCity\": \"Vienna\",\n \"billingPostcode\": \"1010\",\n \"billingState\": \"Vienna\",\n \"billingCountry\": \"AT\",\n \"billingPhone\": \"123456789\",\n \"company\": \"Company Name\",\n \"email\": \"john@example.com\",\n \"ipAddress\": \"127.0.0.1\",\n \"nationalId\": \"1234\",\n \"extraData\": []\n },\n \"customerIdentification\": \"YOUR_CUSTOMER_ID\",\n \"preferredInstrument\": \"pt::12345678901234567890\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift updateProfile_example import Foundation let credentials = Data(":".utf8).base64EncodedString() let headers = [ "Authorization": "Basic \(credentials)", "Content-Type": "application/json" ] let parameters = [ "customerData": [ "firstName": "John", "lastName": "Smith", "birthDate": "1970-01-01", "gender": "M", "billingAddress1": "Street", "billingAddress2": "Address", "billingCity": "Vienna", "billingPostcode": "1010", "billingState": "Vienna", "billingCountry": "AT", "billingPhone": "123456789", "company": "Company Name", "email": "john@example.com", "ipAddress": "127.0.0.1", "nationalId": "1234", "extraData": [] ], "customerIdentification": "YOUR_CUSTOMER_ID", "preferredInstrument": "pt::12345678901234567890" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://gateway.ixopay.com/api/v3/customerProfiles/apiKey/updateProfile")! 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() ```