> 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/create-legal-user/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.mangopay.com/_mcp/server. # Create a Legal User POST https://api.sandbox.mangopay.com/v2.01/{ClientId}/users/legal 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 for user creation, your platform must call [POST Create a Legal User (SCA)](/api-reference/users/create-legal-user-sca). **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` Create a Legal User Reference: https://docs.mangopay.com/api-reference/users/create-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. ### Body (application/json) This endpoint expects a CreateALegalUserRequest. - `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, required) — **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, required) — 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, required) — Format: A valid email address The email address for the entity. - `LegalRepresentativeFirstName` (string, required) — _Min length: 1; max. length: 100_ The first name of the entity's legal representative. - `LegalRepresentativeLastName` (string, required) — _Min length: 1; max. length: 100_ The last name of the entity's legal representative. - `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). - `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. - `LegalRepresentativeAddress` (Address_SubPropsRequired, optional) — The postal address. - `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. ## 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": { "Email": "best.business@example.com", "LegalPersonType": "BUSINESS", "LegalRepresentativeAddress": { "AddressLine1": "3 rue de la Cité", "AddressLine2": "Appartement 7", "City": "Paris", "Country": "FR", "PostalCode": "75004", "Region": "Île-de-France" }, "LegalRepresentativeFirstName": "Alex", "LegalRepresentativeLastName": "Smith", "Name": "Best Business", "Tag": "Created using Mangopay API Postman collection", "TermsAndConditionsAccepted": false, "UserCategory": "PAYER" } } ``` **Response** ```json { "HeadquartersAddress": { "AddressLine1": null, "AddressLine2": null, "City": null, "Region": null, "PostalCode": null, "Country": null }, "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": null, "LegalRepresentativeBirthday": null, "LegalRepresentativeNationality": null, "LegalRepresentativeCountryOfResidence": null, "ProofOfRegistration": null, "ShareholderDeclaration": null, "Statute": null, "LegalRepresentativeProofOfIdentity": null, "CompanyNumber": null, "Id": "user_m_01JHX3QCQ38ZC0S52Y1TNGHGAN", "Tag": "Created using Mangopay API Postman collection", "CreationDate": 1737217520, "PersonType": "LEGAL", "Email": "best.business@example.com", "KYCLevel": "LIGHT", "TermsAndConditionsAccepted": false, "TermsAndConditionsAcceptedDate": null, "UserCategory": "PAYER", "UserStatus": "ACTIVE", "PhoneNumber": null, "PhoneNumberCountry": null } ``` **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 from mangopay.utils import Address legal_user = LegalUser( headquarters_address = Address( address_line_1 = '45 Main Road', city = 'London', postal_code = 'NW1 4RG', country = 'GB' ), legal_representative_address = Address( address_line_1 = '35 London Road', city = 'London', postal_code = 'NW1 0AA', country = 'GB' ), name = 'Executive Consulting', legal_person_type = 'BUSINESS', legal_representative_first_name = 'Juliana', legal_representative_last_name = 'Dunn', legal_representative_email = 'juliana.dunn@example.com', legal_representative_birthday = 188301600, legal_representative_nationality = 'GB', legal_representative_country_of_residence = 'GB', company_number = '12345678', tag = 'Created with Mangopay Python SDK', email = 'executive.consulting@example.com', terms_and_conditions_accepted = True, user_category = 'OWNER' ) create_legal_user=legal_user.save() pprint(create_legal_user) ``` ```javascript Payer const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-example-client-id', clientApiKey: 'your-mangopay-api-key', }) let myLegalUser = { HeadquartersAddress: { AddressLine1: '45 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', LegalSca: false, } const createLegalUser = async (legalUser) => { return await mangopay.Users.create(legalUser) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } createLegalUser(myLegalUser) ``` ```java Payer import com.mangopay.MangoPayApi; import com.mangopay.core.Address; import com.mangopay.entities.User; import com.mangopay.entities.UserLegal; import com.mangopay.core.enumerations.UserCategory; import com.mangopay.core.enumerations.CountryIso; import com.mangopay.core.enumerations.LegalPersonType; import java.lang.reflect.Field; public class CreateLegalUser { 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 user = new UserLegal(); Address headquartersAddress = new Address(); Address legalRepAddress = new Address(); headquartersAddress.setAddressLine1("34 rue des Entreprises"); headquartersAddress.setAddressLine2("Batiment B"); headquartersAddress.setCity("Paris"); headquartersAddress.setRegion("Île-de-France"); headquartersAddress.setPostalCode("75001"); headquartersAddress.setCountry(CountryIso.FR); legalRepAddress.setAddressLine1("12032 Wiza Way"); legalRepAddress.setAddressLine2("Mitchell Drive"); legalRepAddress.setCity("Paris"); legalRepAddress.setRegion("Île-de-France"); legalRepAddress.setPostalCode("75001"); legalRepAddress.setCountry(CountryIso.FR); user.setName("Best Business"); user.setLegalPersonType(LegalPersonType.BUSINESS); user.setLegalRepresentativeFirstName("Cedrik"); user.setLegalRepresentativeLastName("Dickinson"); user.setLegalRepresentativeEmail("cedrik.dickinson@example.com"); user.setLegalRepresentativeBirthday((long) 652117514); user.setLegalRepresentativeNationality(CountryIso.FR); user.setLegalRepresentativeCountryOfResidence(CountryIso.FR); user.setHeadquartersAddress(headquartersAddress); user.setLegalRepresentativeAddress(legalRepAddress); user.setCompanyNumber("652398741"); user.setEmail("best.business@best.com"); user.setTermsAndConditionsAccepted(true); user.setTag("Created with the Mangopay Java SDK"); user.setUserCategory(UserCategory.OWNER); User createUser = mangopay.getUserApi().create(user); System.out.println(String.format("id: %s", createUser.getId())); printObjectFields(createUser); } 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; using MangoPay.SDK.Core.Enumerations; using MangoPay.SDK.Entities.POST; 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 myUser = new UserLegalOwnerPostDTO { HeadquartersAddress = new Address { AddressLine1 = "17 Rue de la République", City = "Paris", Region = "Île-de-France", PostalCode = "75001", Country = CountryIso.FR }, LegalRepresentativeAddress = new Address { AddressLine1 = "12032 Wiza Way", City = "Paris", Region = "Île-de-France", PostalCode = "75001", Country = CountryIso.FR }, Name = "Dedicated Notion", LegalPersonType = LegalPersonType.BUSINESS, LegalRepresentativeFirstName = "Derek", LegalRepresentativeLastName = "Nelson", LegalRepresentativeEmail = "derek.nelson@dedicatednotion.com", LegalRepresentativeBirthday = new DateTime(1980, 3, 15), LegalRepresentativeNationality = CountryIso.FR, LegalRepresentativeCountryOfResidence = CountryIso.FR, CompanyNumber = "325698745", Email = "dedicatednotion@dedicatednotion.com", Tag = "Created using the Mangopay .NET SDK" }; var createLegalUser = await api.Users.CreateOwnerAsync(myUser); string prettyPrint = JsonConvert.SerializeObject(createLegalUser, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Payer Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $user = new \MangoPay\UserLegal(); $user->Name = 'Smith corp'; $user->Email = 'smith@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 = 'Created using Mangopay PHP SDK'; $user->TermsAndConditionsAccepted = true; $user->UserCategory = 'Owner'; $response = $api->Users->Create($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 createLegalUser(legalUserObject) begin response = MangoPay::LegalUser.create(legalUserObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to create User: #{error.message}" puts "Error details: #{error.details}" return false end end myLegalUser = { HeadquartersAddress: { AddressLine1: '59 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' } createLegalUser(myLegalUser) ``` ### Owner **Request** ```json { "body": { "CompanyNumber": "123456789", "Email": "best.business@example.com", "HeadquartersAddress": { "AddressLine1": "34 rue des Entreprises", "AddressLine2": "Batiment B", "City": "Paris", "Country": "FR", "PostalCode": "75001", "Region": "Île-de-France" }, "LegalPersonType": "BUSINESS", "LegalRepresentativeAddress": { "AddressLine1": "3 rue de la Cité", "AddressLine2": "Appartement 7", "City": "Paris", "Country": "FR", "PostalCode": "75004", "Region": "Île-de-France" }, "LegalRepresentativeBirthday": 652117514, "LegalRepresentativeCountryOfResidence": "FR", "LegalRepresentativeEmail": "alex.smith@example.com", "LegalRepresentativeFirstName": "Alex", "LegalRepresentativeLastName": "Smith", "LegalRepresentativeNationality": "FR", "Name": "Best Business", "Tag": "Created using Mangopay API Postman collection", "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_01JHX3FQ7K0WB275T1BZ1SPZMF", "Tag": "Created using Mangopay API Postman collection", "CreationDate": 1737217268, "PersonType": "LEGAL", "Email": "best.business@example.com", "KYCLevel": "LIGHT", "TermsAndConditionsAccepted": true, "TermsAndConditionsAcceptedDate": 1737217268, "UserCategory": "OWNER", "UserStatus": "ACTIVE", "PhoneNumber": null, "PhoneNumberCountry": null } ``` **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 from mangopay.utils import Address legal_user = LegalUser( headquarters_address = Address( address_line_1 = '45 Main Road', city = 'London', postal_code = 'NW1 4RG', country = 'GB' ), legal_representative_address = Address( address_line_1 = '35 London Road', city = 'London', postal_code = 'NW1 0AA', country = 'GB' ), name = 'Executive Consulting', legal_person_type = 'BUSINESS', legal_representative_first_name = 'Juliana', legal_representative_last_name = 'Dunn', legal_representative_email = 'juliana.dunn@example.com', legal_representative_birthday = 188301600, legal_representative_nationality = 'GB', legal_representative_country_of_residence = 'GB', company_number = '12345678', tag = 'Created with Mangopay Python SDK', email = 'executive.consulting@example.com', terms_and_conditions_accepted = True, user_category = 'OWNER' ) create_legal_user=legal_user.save() pprint(create_legal_user) ``` ```javascript Owner const mangopayInstance = require('mangopay4-nodejs-sdk') const mangopay = new mangopayInstance({ clientId: 'your-example-client-id', clientApiKey: 'your-mangopay-api-key', }) let myLegalUser = { HeadquartersAddress: { AddressLine1: '45 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', LegalSca: false, } const createLegalUser = async (legalUser) => { return await mangopay.Users.create(legalUser) .then((response) => { console.info(response) return response }) .catch((err) => { console.log(err) return false }) } createLegalUser(myLegalUser) ``` ```java Owner import com.mangopay.MangoPayApi; import com.mangopay.core.Address; import com.mangopay.entities.User; import com.mangopay.entities.UserLegal; import com.mangopay.core.enumerations.UserCategory; import com.mangopay.core.enumerations.CountryIso; import com.mangopay.core.enumerations.LegalPersonType; import java.lang.reflect.Field; public class CreateLegalUser { 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 user = new UserLegal(); Address headquartersAddress = new Address(); Address legalRepAddress = new Address(); headquartersAddress.setAddressLine1("34 rue des Entreprises"); headquartersAddress.setAddressLine2("Batiment B"); headquartersAddress.setCity("Paris"); headquartersAddress.setRegion("Île-de-France"); headquartersAddress.setPostalCode("75001"); headquartersAddress.setCountry(CountryIso.FR); legalRepAddress.setAddressLine1("12032 Wiza Way"); legalRepAddress.setAddressLine2("Mitchell Drive"); legalRepAddress.setCity("Paris"); legalRepAddress.setRegion("Île-de-France"); legalRepAddress.setPostalCode("75001"); legalRepAddress.setCountry(CountryIso.FR); user.setName("Best Business"); user.setLegalPersonType(LegalPersonType.BUSINESS); user.setLegalRepresentativeFirstName("Cedrik"); user.setLegalRepresentativeLastName("Dickinson"); user.setLegalRepresentativeEmail("cedrik.dickinson@example.com"); user.setLegalRepresentativeBirthday((long) 652117514); user.setLegalRepresentativeNationality(CountryIso.FR); user.setLegalRepresentativeCountryOfResidence(CountryIso.FR); user.setHeadquartersAddress(headquartersAddress); user.setLegalRepresentativeAddress(legalRepAddress); user.setCompanyNumber("652398741"); user.setEmail("best.business@best.com"); user.setTermsAndConditionsAccepted(true); user.setTag("Created with the Mangopay Java SDK"); user.setUserCategory(UserCategory.OWNER); User createUser = mangopay.getUserApi().create(user); System.out.println(String.format("id: %s", createUser.getId())); printObjectFields(createUser); } 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; using MangoPay.SDK.Core.Enumerations; using MangoPay.SDK.Entities.POST; 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 myUser = new UserLegalOwnerPostDTO { HeadquartersAddress = new Address { AddressLine1 = "17 Rue de la République", City = "Paris", Region = "Île-de-France", PostalCode = "75001", Country = CountryIso.FR }, LegalRepresentativeAddress = new Address { AddressLine1 = "12032 Wiza Way", City = "Paris", Region = "Île-de-France", PostalCode = "75001", Country = CountryIso.FR }, Name = "Dedicated Notion", LegalPersonType = LegalPersonType.BUSINESS, LegalRepresentativeFirstName = "Derek", LegalRepresentativeLastName = "Nelson", LegalRepresentativeEmail = "derek.nelson@dedicatednotion.com", LegalRepresentativeBirthday = new DateTime(1980, 3, 15), LegalRepresentativeNationality = CountryIso.FR, LegalRepresentativeCountryOfResidence = CountryIso.FR, CompanyNumber = "325698745", Email = "dedicatednotion@dedicatednotion.com", Tag = "Created using the Mangopay .NET SDK" }; var createLegalUser = await api.Users.CreateOwnerAsync(myUser); string prettyPrint = JsonConvert.SerializeObject(createLegalUser, Formatting.Indented); Console.WriteLine(prettyPrint); } } ``` ```php Owner Config->ClientId = 'your-client-id'; $api->Config->ClientPassword = 'your-api-key'; $api->Config->TemporaryFolder = 'tmp/'; try { $user = new \MangoPay\UserLegal(); $user->Name = 'Smith corp'; $user->Email = 'smith@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 = 'Created using Mangopay PHP SDK'; $user->TermsAndConditionsAccepted = true; $user->UserCategory = 'Owner'; $response = $api->Users->Create($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 createLegalUser(legalUserObject) begin response = MangoPay::LegalUser.create(legalUserObject) puts response return response rescue MangoPay::ResponseError => error puts "Failed to create User: #{error.message}" puts "Error details: #{error.details}" return false end end myLegalUser = { HeadquartersAddress: { AddressLine1: '59 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' } createLegalUser(myLegalUser) ```