> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.mangopay.com/api-reference/users/update-legal-user/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # Update a Legal User PUT https://api.sandbox.mangopay.com/v2.01/{ClientId}/users/legal/{UserId} Content-Type: application/json **Caution - Deprecated endpoint** The legacy User endpoints are deprecated. This endpoint will stop working and return an error after **Dec 15, 2025**. These endpoints were made redundant by the equivalent SCA-enabled endpoints during the introduction of SCA. Instead of calling this endpoint to change the `UserCategory` from `PAYER` to `OWNER`, your platform must call [PUT Categorize a Legal User](/api-reference/users/categorize-legal-user). You must also redirect the user on the `PendingUserAction.RedirectUrl` returned so they can [enroll in SCA](/guides/sca/users#transition-a-payer-to-owner). If you are not changing the `UserCategory`, then call the [PUT Update a Legal User (SCA)](/api-reference/users/update-legal-user-sca) endpoint instead of this deprecated endpoint. [SCA re-enrollment](/guides/sca/users#re-enroll-an-enrolled-owner) is required if your platform changes the `Email`, `PhoneNumber`, or `PhoneNumberCountry`. **Caution – Modification may cause KYC/B verification downgrade** If `KYCLevel` is `REGULAR`, modifying the following values triggers a [verification downgrade](/guides/users/verification/downgrade) to `LIGHT`: * `LegalRepresentativeFirstName` * `LegalRepresentativeLastName` * `LegalRepresentativeBirthday` * `LegalRepresentativeNationality` * `LegalPersonType` **Note – Country-based restrictions apply to users** Due to Mangopay's [country restrictions](/guides/users/country-restrictions), it is not possible to use blocked countries as the following: * `HeadquartersAddress.Country` * `LegalRepresentativeNationality` * `LegalRepresentativeCountryOfResidence` * `LegalRepresentativeAddress.Country` Update a Legal User Reference: https://docs.mangopay.com/api-reference/users/update-legal-user ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. If your platform is using a [proxy](/guides/sca/proxy-management) to take SCA-triggering action on behalf of users, you also need to integrate [mTLS authentication](/guides/sca/platform) and use the `api-mtls` base URL. ## Servers - `https://api.sandbox.mangopay.com` (Sandbox, default) - `https://api.mangopay.com` (Production) - `https://api-mtls.sandbox.mangopay.com` (mTLS Sandbox) - `https://api-mtls.mangopay.com` (mTLS Production) ## Request ### Path parameters - `ClientId` (string, required) — Platform's API account identifier, associated with the API key. - `UserId` (string, required) — The unique identifier of the user. ### Body (application/json) This endpoint expects an UpdateALegalUserRequest. - `UserCategory` (string, required) — **Allowed values:** `PAYER`, `OWNER` The [category](/guides/users/categories) of the user: - `PAYER` – User who can only make pay-ins to their wallets and transfers to other wallets (as well as refunds for pay-ins and transfers). - `OWNER` – User who can also receive transfers to their wallets. Owners are able to request [KYC verification](/guides/users/verification), which if successful gives them the `KYCLevel` of `REGULAR` and the ability to request payouts. - `TermsAndConditionsAccepted` (boolean, required) — Whether the user has accepted Mangopay's terms and conditions (as defined by your contract, see the [T&Cs guide](/guides/users/terms) for details). Must be `true` if `UserCategory` is `OWNER`. - `LegalPersonType` (string, optional) — **Allowed values:** BUSINESS, PARTNERSHIP, ORGANIZATION, SOLETRADER The type of legal user. For information on which `LegalPersonType` to use for a particular local legal structure, see the verification requirements. **Caution:** Modification of the `LegalPersonType` may result in a verification downgrade. - `Name` (string, optional) — Max. length: 255 characters The registered legal name of the entity. The `Name` value should be the one registered with the relevant national authority. - `Email` (string, optional) — Format: A valid email address The email address for the entity. - `HeadquartersAddress` (Address_SubPropsRequired, optional) — The postal address. - `CompanyNumber` (string, optional) — Required if `UserCategory` is `OWNER` and `LegalPersonType` is `BUSINESS`. Returned `null` if `UserCategory` is `PAYER`. The registration number of the entity, assigned by the relevant national authority. For information on the expected format for a specific country, see the [Company number](/guides/users/verification/company-number) guide. To validate the format of a number before submitting documents for verification, use [POST Validate the format of User data](/api-reference/user-data-format/validate-user-data-format). - `LegalRepresentativeAddress` (Address_SubPropsRequired, optional) — The postal address. - `LegalRepresentativeFirstName` (string, optional) — _Min length: 1; max. length: 100_ The first name of the entity's legal representative. - `LegalRepresentativeLastName` (string, optional) — _Min length: 1; max. length: 100_ The last name of the entity's legal representative. - `LegalRepresentativeEmail` (string, optional) — Format: A valid email address The email address of the entity's legal representative. Returned `null` if `UserCategory` is `PAYER`. - `LegalRepresentativeBirthday` (integer, optional) — Required if `UserCategory` is `OWNER`. Returned `null` if `UserCategory` is `PAYER`. The date of birth of the entity's legal representative. **Note:** This is a Unix timestamp in UTC. Ensure you convert your timezone to UTC to avoid midnight being interpreted as the day before. - `LegalRepresentativeNationality` (string, optional) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) Required if `UserCategory` is `OWNER`. Returned `null` if `UserCategory` is `PAYER`. The nationality of the entity's legal representative. - `LegalRepresentativeCountryOfResidence` (string, optional) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) Required if `UserCategory` is `OWNER`. Returned `null` if `UserCategory` is `PAYER`. The country of residence of the entity's legal representative. - `Tag` (string, optional) — Max. length: 255 characters Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`. ## Response ### 200 Success - `HeadquartersAddress` (Address, optional) — The postal address. - `LegalRepresentativeAddress` (Address, optional) — The postal address. - `Name` (string, optional) — Max. length: 255 characters The registered legal name of the entity. The `Name` value should be the one registered with the relevant national authority. - `LegalPersonType` (string, optional) — **Returned values:** BUSINESS, PARTNERSHIP, ORGANIZATION, SOLETRADER The type of legal user. For information on which `LegalPersonType` to use for a particular local legal structure, see the verification requirements. **Caution:** Modification of the `LegalPersonType` may result in a verification downgrade. - `LegalRepresentativeFirstName` (string, optional) — Min. length: 1; max. length: 100 The first name of the entity's legal representative. - `LegalRepresentativeLastName` (string, optional) — Min. length: 1; max. length: 100 The last name of the entity's legal representative. - `LegalRepresentativeEmail` (string, optional) — Format: A valid email address The email address of the entity's legal representative. Returned `null` if `UserCategory` is `PAYER`. - `LegalRepresentativeBirthday` (integer, optional) — The date of birth of the entity's legal representative. Returned `null` if `UserCategory` is `PAYER`. **Note:** This is a Unix timestamp in UTC. Ensure you convert your timezone to UTC to avoid midnight being interpreted as the day before. - `LegalRepresentativeNationality` (string, optional) — Returned `null` if `UserCategory` is `PAYER`. The nationality of the entity's legal representative. - `LegalRepresentativeCountryOfResidence` (string, optional) — Returned `null` if `UserCategory` is `PAYER`. The country of residence of the entity's legal representative. - `ProofOfRegistration` (string, optional) — The `Id` of the KYC Document whose `Type` is `REGISTRATION_PROOF` if validated for the user. If no registration proof is validated, then this value is `null`. - `ShareholderDeclaration` (string, optional) — The `Id` of the KYC Document whose `Type` is `SHAREHOLDERS_DECLARATION` if validated for the user. If no Shareholder Declaration is validated, then this value is `null`. - `Statute` (string, optional) — The `Id` of the KYC Document whose `Type` is `ARTICLES_OF_ASSOCIATION` if validated for the user. If no articles of association document is validated, then this value is `null`. - `LegalRepresentativeProofOfIdentity` (string, optional) — The `Id` of the KYC Document whose `Type` is `IDENTITY_PROOF` if validated for the user. If no identity proof is validated, then this value is `null`. - `CompanyNumber` (string, optional) — Required if `UserCategory` is `OWNER` and `LegalPersonType` is `BUSINESS`. Returned `null` if `UserCategory` is `PAYER`. The registration number of the entity, assigned by the relevant national authority. For information on the expected format for a specific country, see the [Company number](/guides/users/verification/company-number) guide. To validate the format of a number before submitting documents for verification, use [POST Validate the format of User data](/api-reference/user-data-format/validate-user-data-format). - `Id` (string, optional) — Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details) The unique identifier of the object. - `Tag` (string, optional) — Max. length: 255 characters Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: `"{\"id_1\":AB123,\"id_2\":DE456}"`. - `CreationDate` (integer, optional) — Unix timestamp (UTC) of the date and time the object was created. - `PersonType` (string, optional) — **Returned values:** NATURAL, LEGAL The type of the user: - `NATURAL` – Natural users are individuals (natural persons). - `LEGAL` – Legal users are legal entities (legal persons) like companies, non-profits, and sole proprietors. The `PersonType` is defined by the endpoint used to create the user and can't be modified. - `Email` (string, optional) — Format: A valid email address The email address for the entity. - `KYCLevel` (string, optional) — **Default value:** `LIGHT` **Returned values:** `LIGHT`, `REGULAR` The verification status of the user set by Mangopay: - `LIGHT` – Unverified, assigned by default to all users. - `REGULAR` – Verified, meaning the user has successfully completed the verification process and had the necessary documents validated by Mangopay. Only users whose `UserCategory` is `OWNER` can submit verification documents for validation. Only users whose `KYCLevel` is `REGULAR` can request payouts. - `TermsAndConditionsAccepted` (boolean, optional) — Whether the user has accepted Mangopay's terms and conditions (as defined by your contract, see the [T&Cs guide](/guides/users/terms) for details). Must be `true` if `UserCategory` is `OWNER`. - `TermsAndConditionsAcceptedDate` (integer, optional) — Unix timestamp (UTC) of the date and time the `TermsAndConditionsAccepted` value was set to `true`. Returned `null` if `UserCategory` is `PAYER`. - `UserCategory` (string, optional) — **Possible values:** `PAYER`, `OWNER`, `PLATFORM` The [category](/guides/users/categories) of the user: - `PAYER` – User who can only make pay-ins to their wallets and transfers to other wallets (as well as refunds for pay-ins and transfers). - `OWNER` – User who can also receive transfers to their wallets. Owners are able to request [KYC verification](/guides/users/verification), which if successful gives them the `KYCLevel` of `REGULAR` and the ability to request payouts. - `PLATFORM` – Single specific user that represents the platform. The `PLATFORM` value is only assigned by Mangopay and may be used as part of the validated workflow implemented by the platform. - `UserStatus` (string, optional) — **Returned values:** ACTIVE, CLOSED Internal use only. This field can only be used and updated by Mangopay teams. ## Errors ### 400 Bad Request Error Bad Request - `Message` (string, optional) — Description of the error. - `Type` (string, optional) — The category of the error. - `Id` (string, optional) — Unique identifier of the error instance, useful when contacting Mangopay for support. - `Date` (double, optional) — Unix timestamp (UTC) of the date and time the error was triggered. - `errors` (map from string to string, optional, nullable) — Object containing one or more field-level errors. ## Types ### Address_SubPropsRequired The postal address. - `AddressLine1` (string, required) — The first line of the address. - `City` (string, required) — The city of the address. - `PostalCode` (string, required) — The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces. - `Country` (string, required) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) The country of the address. - `AddressLine2` (string, optional) — The second line of the address. - `Region` (string, optional) — Required if `Country` is US, CA, or MX. The region of the address. ### Address The postal address. - `AddressLine1` (string, optional) — The first line of the address. - `AddressLine2` (string, optional) — The second line of the address. - `City` (string, optional) — The city of the address. - `Region` (string, optional) — Required if `Country` is US, CA, or MX. The region of the address. - `PostalCode` (string, optional) — The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces. - `Country` (string, optional) — Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats)) The country of the address. ## Examples ### Payer **Request** ```json { "body": { "Tag": "New tag", "TermsAndConditionsAccepted": false, "UserCategory": "PAYER" } } ``` **Response** ```json { "HeadquartersAddress": { "AddressLine1": null, "AddressLine2": null, "City": null, "Region": null, "PostalCode": null, "Country": null }, "LegalRepresentativeAddress": { "AddressLine1": "34 rue des Entreprises", "AddressLine2": "Appartement 14", "City": "Paris", "Region": "Île-de-France", "PostalCode": "75001", "Country": "FR" }, "Name": "Best Business", "LegalPersonType": "BUSINESS", "LegalRepresentativeFirstName": "Alex", "LegalRepresentativeLastName": "Smith", "LegalRepresentativeEmail": null, "LegalRepresentativeBirthday": null, "LegalRepresentativeNationality": null, "LegalRepresentativeCountryOfResidence": null, "ProofOfRegistration": null, "ShareholderDeclaration": null, "Statute": null, "LegalRepresentativeProofOfIdentity": null, "CompanyNumber": null, "Id": "user_m_01JHX2YFX51HSR8R2HJ8ABSEFF", "Tag": "New tag", "CreationDate": 1670863988, "PersonType": "LEGAL", "Email": "best.business@example.com", "KYCLevel": "LIGHT", "TermsAndConditionsAccepted": false, "TermsAndConditionsAcceptedDate": null, "UserCategory": "PAYER", "UserStatus": "ACTIVE" } ``` **SDK Code** ```python Payer from pprint import pprint import mangopay mangopay.client_id = 'your-client-id' mangopay.apikey = 'your-api-key' from mangopay.api import APIRequest handler = APIRequest(sandbox=True) from mangopay.resources import LegalUser legal_user = LegalUser( id = '210602889', # ID of legal user to update legal_person_type = 'SOLETRADER' # Add elements with update details ) update_legal_user = legal_user.save() pprint(update_legal_user) ``` ```javascript Payer const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-client-id', clientApiKey: 'your-api-key', }) let myLegalUser = { Id: 'user_m_01HYJVHY77NDDM97TQP57W87MH', HeadquartersAddress: { AddressLine1: '57 Main Road', AddressLine2: null, City: 'London', PostalCode: 'NW1 4RG', Country: 'GB', }, LegalRepresentativeAddress: { AddressLine1: '35 London Road', AddressLine2: null, City: 'London', PostalCode: 'NW1 0AA', Country: 'GB', }, Name: 'Executive Consulting', LegalPersonType: 'BUSINESS', LegalRepresentativeFirstName: 'Juliana', LegalRepresentativeLastName: 'Dunn', LegalRepresentativeEmail: 'juliana.dunn@example.com', LegalRepresentativeBirthday: 188301600, LegalRepresentativeNationality: 'GB', LegalRepresentativeCountryOfResidence: 'GB', CompanyNumber: '12345678', Tag: 'Created using the Mangopay NodeJS SDK', Email: 'executive.consulting@example.com', TermsAndConditionsAccepted: true, UserCategory: 'OWNER', PersonType: 'LEGAL', } const updateLegalUser = async (legalUser) => { return await mangopay.Users.update(legalUser) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } updateLegalUser(myLegalUser) ``` ```java Payer import com.mangopay.MangoPayApi; import com.mangopay.core.Address; import com.mangopay.entities.User; import com.mangopay.entities.UserLegal; import java.lang.reflect.Field; public class UpdateLegalUser { public static void main(String[] args) throws Exception { MangoPayApi mangopay = new MangoPayApi(); mangopay.getConfig().setClientId("your-client-id"); mangopay.getConfig().setClientPassword("your-api-key"); UserLegal myUser = mangopay.getUserApi().getLegal("user_m_01HRS7PQEGE4YGCM1AZK1ENTGE"); myUser.setName("C. Dickinson"); myUser.setEmail("best@dickinson.com"); User updateUser = mangopay.getUserApi().update(myUser); System.out.println(String.format("id: %s", updateUser.getId())); printObjectFields(updateUser); } private static void printObjectFields(Object obj) { Class objClass = obj.getClass(); Field[] fields = objClass.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); try { Object value = field.get(obj); if (value instanceof Address) { System.out.println(field.getName() + ": "); printObjectFields(value); } else { System.out.println(field.getName() + ": " + value); } } catch (IllegalAccessException e) { e.printStackTrace(); } } } } ``` ```csharp Payer using MangoPay.SDK; using MangoPay.SDK.Entities.PUT; using Newtonsoft.Json; class Program { static async Task Main(string[] args) { MangoPayApi api = new MangoPayApi(); api.Config.ClientId = "your-client-id"; api.Config.ClientPassword = "your-api-key"; var userId = "user_m_01J2V0P9B1WCX46GEBDWCTXNQ0"; var myUser = new UserLegalPutDTO { TermsAndConditionsAccepted = true, Tag = "Updated using the Mangopay .NET SDK" }; var updateNaturalUser = await api.Users.UpdateLegalAsync(myUser, userId); string prettyPrint = JsonConvert.SerializeObject(updateNaturalUser, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Payer Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $userId = 'user_m_01HYJVHY77NDDM97TQP57W87MH'; $user = $api->Users->Get($userId); $user->Name = 'Smith corp'; $user->Email = 'smithupdated@example.com'; $user->LegalPersonType = \MangoPay\LegalPersonType::Business; $address = new \MangoPay\Address(); $address->AddressLine1 = 'Rue des plantes'; $address->AddressLine2 = '2nd floor'; $address->City = 'Paris'; $address->Country = 'FR'; $address->PostalCode = '75000'; $address->Region = 'IDF'; $user->HeadquartersAddress = $address; $user->LegalRepresentativeAddress = $address; $user->LegalRepresentativeFirstName = 'Alex'; $user->LegalRepresentativeLastName = 'Smith'; $user->LegalRepresentativeEmail = 'asmith@example.com'; $user->LegalRepresentativeBirthday = mktime(0, 0, 0, 12, 21, 1975); $user->LegalRepresentativeNationality = 'FR'; $user->LegalRepresentativeCountryOfResidence = 'FR'; $user->CompanyNumber = 'LU123456'; $user->Tag = 'Updated using Mangopay PHP SDK'; $user->TermsAndConditionsAccepted = true; $user->UserCategory = 'Owner'; $response = $api->Users->Update($user); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby Payer require 'mangopay' MangoPay.configure do |client| client.preproduction = true client.client_id = 'your-client-id' client.client_apiKey = 'your-api-key' client.log_file = File.join(Dir.pwd, 'mangopay.log') end def updateLegalUser(legalUserId, legalUserObject) begin response = MangoPay::LegalUser.update(legalUserId, legalUserObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to update User: #{error.message}" puts "Error details: #{error.details}" return false end end myLegalUser = { Id: '194338122', HeadquartersAddress: { AddressLine1: '57 Main Road', AddressLine2: 'PB 456', City: 'London', PostalCode: 'NW1 4RG', Country: 'GB', }, LegalRepresentativeAddress: { AddressLine1: '35 London Road', City: 'London', PostalCode: 'NW1 0AA', Country: 'GB', }, Name: 'Executive Consulting', LegalPersonType: 'BUSINESS', LegalRepresentativeFirstName: 'Juliana', LegalRepresentativeLastName: 'Dunn', LegalRepresentativeEmail: 'juliana.dunn@example.com', LegalRepresentativeBirthday: 188301600, LegalRepresentativeNationality: 'GB', LegalRepresentativeCountryOfResidence: 'GB', CompanyNumber: '12345678', Tag: 'Updated using the Mangopay Ruby SDK', Email: 'executive.consulting@example.com', TermsAndConditionsAccepted: true, UserCategory: 'OWNER', PersonType: 'LEGAL' } updateLegalUser(myLegalUser[:Id], myLegalUser) ``` ### Owner **Request** ```json { "body": { "CompanyNumber": "123456789", "HeadquartersAddress": { "AddressLine1": "34 rue des Entreprises", "AddressLine2": "Batiment B", "City": "Paris", "Country": "FR", "PostalCode": "75001", "Region": "Île-de-France" }, "LegalRepresentativeBirthday": 652117514, "LegalRepresentativeCountryOfResidence": "FR", "LegalRepresentativeEmail": "alex.smith@example.com", "LegalRepresentativeNationality": "FR", "TermsAndConditionsAccepted": true, "UserCategory": "OWNER" } } ``` **Response** ```json { "HeadquartersAddress": { "AddressLine1": "34 rue des Entreprises", "AddressLine2": "Batiment B", "City": "Paris", "Region": "Île-de-France", "PostalCode": "75001", "Country": "FR" }, "LegalRepresentativeAddress": { "AddressLine1": "3 rue de la Cité", "AddressLine2": "Appartement 7", "City": "Paris", "Region": "Île-de-France", "PostalCode": "75004", "Country": "FR" }, "Name": "Best Business", "LegalPersonType": "BUSINESS", "LegalRepresentativeFirstName": "Alex", "LegalRepresentativeLastName": "Smith", "LegalRepresentativeEmail": "alex.smith@example.com", "LegalRepresentativeBirthday": 652117514, "LegalRepresentativeNationality": "FR", "LegalRepresentativeCountryOfResidence": "FR", "ProofOfRegistration": null, "ShareholderDeclaration": null, "Statute": null, "LegalRepresentativeProofOfIdentity": null, "CompanyNumber": "123456789", "Id": "user_m_01JHX2YFX51HSR8R2HJ8ABSEFF", "Tag": "Created using MANGOPAY API Collection Postman", "CreationDate": 1670864174, "PersonType": "LEGAL", "Email": "best.business@example.com", "KYCLevel": "LIGHT", "TermsAndConditionsAccepted": true, "TermsAndConditionsAcceptedDate": 1670864174, "UserCategory": "OWNER", "UserStatus": "ACTIVE" } ``` **SDK Code** ```python Owner from pprint import pprint import mangopay mangopay.client_id = 'your-client-id' mangopay.apikey = 'your-api-key' from mangopay.api import APIRequest handler = APIRequest(sandbox=True) from mangopay.resources import LegalUser legal_user = LegalUser( id = '210602889', # ID of legal user to update legal_person_type = 'SOLETRADER' # Add elements with update details ) update_legal_user = legal_user.save() pprint(update_legal_user) ``` ```javascript Owner const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-client-id', clientApiKey: 'your-api-key', }) let myLegalUser = { Id: 'user_m_01HYJVHY77NDDM97TQP57W87MH', HeadquartersAddress: { AddressLine1: '57 Main Road', AddressLine2: null, City: 'London', PostalCode: 'NW1 4RG', Country: 'GB', }, LegalRepresentativeAddress: { AddressLine1: '35 London Road', AddressLine2: null, City: 'London', PostalCode: 'NW1 0AA', Country: 'GB', }, Name: 'Executive Consulting', LegalPersonType: 'BUSINESS', LegalRepresentativeFirstName: 'Juliana', LegalRepresentativeLastName: 'Dunn', LegalRepresentativeEmail: 'juliana.dunn@example.com', LegalRepresentativeBirthday: 188301600, LegalRepresentativeNationality: 'GB', LegalRepresentativeCountryOfResidence: 'GB', CompanyNumber: '12345678', Tag: 'Created using the Mangopay NodeJS SDK', Email: 'executive.consulting@example.com', TermsAndConditionsAccepted: true, UserCategory: 'OWNER', PersonType: 'LEGAL', } const updateLegalUser = async (legalUser) => { return await mangopay.Users.update(legalUser) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } updateLegalUser(myLegalUser) ``` ```java Owner import com.mangopay.MangoPayApi; import com.mangopay.core.Address; import com.mangopay.entities.User; import com.mangopay.entities.UserLegal; import java.lang.reflect.Field; public class UpdateLegalUser { public static void main(String[] args) throws Exception { MangoPayApi mangopay = new MangoPayApi(); mangopay.getConfig().setClientId("your-client-id"); mangopay.getConfig().setClientPassword("your-api-key"); UserLegal myUser = mangopay.getUserApi().getLegal("user_m_01HRS7PQEGE4YGCM1AZK1ENTGE"); myUser.setName("C. Dickinson"); myUser.setEmail("best@dickinson.com"); User updateUser = mangopay.getUserApi().update(myUser); System.out.println(String.format("id: %s", updateUser.getId())); printObjectFields(updateUser); } private static void printObjectFields(Object obj) { Class objClass = obj.getClass(); Field[] fields = objClass.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); try { Object value = field.get(obj); if (value instanceof Address) { System.out.println(field.getName() + ": "); printObjectFields(value); } else { System.out.println(field.getName() + ": " + value); } } catch (IllegalAccessException e) { e.printStackTrace(); } } } } ``` ```csharp Owner using MangoPay.SDK; using MangoPay.SDK.Entities.PUT; using Newtonsoft.Json; class Program { static async Task Main(string[] args) { MangoPayApi api = new MangoPayApi(); api.Config.ClientId = "your-client-id"; api.Config.ClientPassword = "your-api-key"; var userId = "user_m_01J2V0P9B1WCX46GEBDWCTXNQ0"; var myUser = new UserLegalPutDTO { TermsAndConditionsAccepted = true, Tag = "Updated using the Mangopay .NET SDK" }; var updateNaturalUser = await api.Users.UpdateLegalAsync(myUser, userId); string prettyPrint = JsonConvert.SerializeObject(updateNaturalUser, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Owner Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $userId = 'user_m_01HYJVHY77NDDM97TQP57W87MH'; $user = $api->Users->Get($userId); $user->Name = 'Smith corp'; $user->Email = 'smithupdated@example.com'; $user->LegalPersonType = \MangoPay\LegalPersonType::Business; $address = new \MangoPay\Address(); $address->AddressLine1 = 'Rue des plantes'; $address->AddressLine2 = '2nd floor'; $address->City = 'Paris'; $address->Country = 'FR'; $address->PostalCode = '75000'; $address->Region = 'IDF'; $user->HeadquartersAddress = $address; $user->LegalRepresentativeAddress = $address; $user->LegalRepresentativeFirstName = 'Alex'; $user->LegalRepresentativeLastName = 'Smith'; $user->LegalRepresentativeEmail = 'asmith@example.com'; $user->LegalRepresentativeBirthday = mktime(0, 0, 0, 12, 21, 1975); $user->LegalRepresentativeNationality = 'FR'; $user->LegalRepresentativeCountryOfResidence = 'FR'; $user->CompanyNumber = 'LU123456'; $user->Tag = 'Updated using Mangopay PHP SDK'; $user->TermsAndConditionsAccepted = true; $user->UserCategory = 'Owner'; $response = $api->Users->Update($user); print_r($response); } catch(MGPResponseException $e) { print_r($e); } catch(MGPException $e) { print_r($e); } ``` ```ruby Owner require 'mangopay' MangoPay.configure do |client| client.preproduction = true client.client_id = 'your-client-id' client.client_apiKey = 'your-api-key' client.log_file = File.join(Dir.pwd, 'mangopay.log') end def updateLegalUser(legalUserId, legalUserObject) begin response = MangoPay::LegalUser.update(legalUserId, legalUserObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to update User: #{error.message}" puts "Error details: #{error.details}" return false end end myLegalUser = { Id: '194338122', HeadquartersAddress: { AddressLine1: '57 Main Road', AddressLine2: 'PB 456', City: 'London', PostalCode: 'NW1 4RG', Country: 'GB', }, LegalRepresentativeAddress: { AddressLine1: '35 London Road', City: 'London', PostalCode: 'NW1 0AA', Country: 'GB', }, Name: 'Executive Consulting', LegalPersonType: 'BUSINESS', LegalRepresentativeFirstName: 'Juliana', LegalRepresentativeLastName: 'Dunn', LegalRepresentativeEmail: 'juliana.dunn@example.com', LegalRepresentativeBirthday: 188301600, LegalRepresentativeNationality: 'GB', LegalRepresentativeCountryOfResidence: 'GB', CompanyNumber: '12345678', Tag: 'Updated using the Mangopay Ruby SDK', Email: 'executive.consulting@example.com', TermsAndConditionsAccepted: true, UserCategory: 'OWNER', PersonType: 'LEGAL' } updateLegalUser(myLegalUser[:Id], myLegalUser) ```