Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/hipay-ubo-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
version: '0.3'
title: HiPay Marketplace Ubo API
description: "\nThe implementation of HiPay Marketplace involves establishing connections between your marketplace platform and HiPay based on a simple integration through a set of APIs.\n\n## Account creation:\n\n 1) The agent checks the e-mail availability with the [Is-available API](#/user-account/post_user-account_is-available).\n\n 2) The agent creates a HiPay account for merchants using the [User-account API](#/user-account/post_user-account).\n\n 3) The agent sends us the account number and the identification/KYC information using the [Identification API](#/identification/post_Identification). HiPay validates the identification/KYC information within three days and sends the agent a notification confirming that the merchant is fully operational.\n\n## Bank account information submission:\n\nPlease note that it is possible to submit bank account information any time between account creation and withdrawal requests.\nTo register a HiPay account bank information, use the [Bank-info API.](#/bank-info/post_user-account)\n\n## Fund allocation:\n\nFund allocation is only possible if the merchant's account is validated by HiPay.\n\nAll the funds are held in escrow before being deposited on the technical account.\n\nThe [Transfer API](#/transfer/post_transfer]) is then used to allocate funds from the technical account to the merchant's account.\nThe [Transfer API](#/transfer/post_transfer]) allows transfer requests to be made on the agent’s behalf or on the behalf of a third party.\n\nThe technical account is therefore a monitoring tool that provides a clear view of fund allocation (fund remittance, refunds, chargebacks).\n\n## Withdrawal requests:\n\nWithdrawal is only possible if the merchant's account AND banking informations are validated by HiPay.\n\nOnce funds are allocated, there are two withdrawal possibilities:\n\n - Whenever a transaction is made – please note that this option is not recommended by HiPay,\n - Whenever a withdrawal request is made by the merchant – for example, every ten days, depending on the agent.\n\nWhen agents want to do a withdrawal, they need to check the merchant’s account balance with the [Balance API.](#/balance/get_user-account)\n\n - In case of a zero balance, funds must be allocated with the [Transfer API](#/transfer/post_transfer]).\n - If the balance equals the amount of the allocated funds, a fund withdrawal request can be made with the [Withdrawal API](#/withdrawal/post_withdrawal). (The Withdrawal API allows for a withdrawal request to transfer money to the merchant’s bank account and also to the partner’s bank account.)\n - There must be a zero balance in the end.\n\n## Marketplace live testing:\n\nThis documentation describes the Marketplace API parameters and response fields and allows you to test the platform in real time.\n\n## Marketplace API base URLs:\n\n| Environment | Base URL |\n| --- | --- |\n| Test | https://test-professional.hipay.com/api/ |\n| Production | https://professional.hipay.com/api/ |\n\n## Authentication:\n\nAll requests to the HiPay Marketplace API require you to authenticate yourself using the HTTP *Basic Authentication* to convey your identity. Your API credentials can be found in [your Test HiPay Professional back office](https://test-merchant.hipaywallet.com/login). Most HTTP clients (including web browsers) have built-in support for HTTP Basic Authentication. If not, the following header must be included in all HTTP requests.\n\n`Authorization: Basic base64(\"<API login>:<API password>\")`\n"
servers:
- url: https://test-professional.hipay.com/api
tags:
- name: ubo
description: Manage your Ultimate Beneficial Ownerships (UBO)
paths:
/ubo.{_format}:
post:
description: '
### Information
This is the second step of UBO statement submission.
- 1 UBO = 1 shareholders with >25% of capital or voting rights)
- The document uploaded can''t exceed 15MO.'
operationId: post_Ubo
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'201':
description: Success response
content:
application/json:
schema:
properties:
code:
description: Status code of the answer. 0 => Ubo successfully created
format: int32
type: integer
message:
description: Description of the answer.
type: string
ubo_statement_id:
description: Id of the UBO statement.
format: int32
type: integer
ubo_id:
description: Id of this UBO.
format: int32
type: integer
'400':
description: Validation failed.
'401':
description: Authentication failed.
'403':
description: Forbidden.
'500':
description: Server Error.
summary: Declare UBO
tags:
- ubo
security:
- basicAuth: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
title:
type: integer
enum:
- 1
- 2
- 3
default: 1
description: 'Civility title of owner account : `1` : Mr, `2` : Mrs, `3` : Miss.'
first_name:
type: string
description: First name of this UBO
last_name:
type: string
description: Last name of this UBO
address:
type: string
description: Street address
zip_code:
type: string
description: The zip or postal code
city:
type: string
description: City
address_country:
type: string
description: The country code. This two-letter country code complies with ISO 3166-1
position:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
default: 1
description: '`1` : CEO, `2` : COO, `3` : CFO, `4` : Shareholder, `5` : Administrator, `6` : Other, `7` : Company manager'
position_detail:
type: string
description: If position is OTHER this parameter is needed
decision_maker:
type: integer
enum:
- 0
- 1
default: 0
description: '`1` if this beneficial ower is a decision maker, `0` otherwise'
pep:
type: integer
enum:
- 0
- 1
default: 0
description: '`1` if this beneficial ower is a politicaly exposed, `0` otherwise'
id_number:
type: string
description: The identification number of the ID document (identification_file)
date_of_birth:
type: string
default: '1965-11-12'
description: Birth date of account owner. Ex. '1965-11-12' for November 12, 1965
place_of_birth:
type: string
description: Birth city of account owner.
country_of_birth:
type: string
description: Country of birth - This two-letter country code complies with ISO 3166-1
nationality:
type: string
description: Nationality - This two-letter country code complies with ISO 3166-1
share:
type: integer
default: 25
description: Percentage of shares owned by this UBO (25% minimum)
id_document[file]:
type: string
description: Passport or ID card - File to upload (jpg, gif, png, pdf)
format: binary
id_document_back[file]:
type: string
description: Back of file to upload (jpg, gif, png, pdf). Required for id cards in Belgium and Italy
format: binary
required:
- title
- first_name
- last_name
- address
- zip_code
- city
- address_country
- position
- decision_maker
- pep
- id_number
- date_of_birth
- place_of_birth
- country_of_birth
- nationality
- share
- id_document[file]
/ubo/{id}.{_format}:
delete:
description: '
### Information
Delete an UBO'
operationId: delete_ubo
x-disableTryItOut: true
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- in: path
name: id
description: Id of the UBO.
required: true
schema:
type: string
default: 0
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'200':
description: 'Success response : UBO has been deleted.'
content:
application/json:
schema:
properties:
code:
description: Status code of the answer. 0 => Ubo successfully deleted.
format: int32
type: integer
message:
description: Description of the answer.
type: string
'401':
description: Authentication failed.
'403':
description: Forbidden.
summary: Delete an UBO
tags:
- ubo
security:
- basicAuth: []
/ubo/legal-representative.{_format}:
post:
description: "\n### Information\n This is the second step of UBO statement submission, only in case the legal representative declared for the user space is also a UBO.\n\n- 1 UBO = 1 shareholders with >25% of capital or voting rights)\n- The document uploaded can't exceed 15MO.\n- Civility, address and position informations will be retrieved from the user space's professional informations.\n- ID Document (and its backside if it is needed) will be retrieved from the uploaded KYC (identification) documents for the user space. if they are already uploaded. Otherwise, they can be uploaded here and handled like a KYC, both identifying the user space and this UBO.\n- As there can only be one legal representive per user space, only one UBO/legal representative can be declared."
operationId: post_Ubo-legal-representative
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'201':
description: Success response
content:
application/json:
schema:
properties:
code:
description: Status code of the answer.
format: int32
type: integer
message:
description: Description of the answer.
type: string
ubo_statement_id:
description: Id of the UBO statement.
format: int32
type: integer
ubo_id:
description: Id of this UBO.
format: int32
type: integer
'400':
description: Validation failed.
'401':
description: Authentication failed.
'403':
description: Forbidden.
'500':
description: Server Error.
summary: Declare UBO as legal representative
tags:
- ubo
security:
- basicAuth: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
decision_maker:
type: integer
enum:
- 0
- 1
default: 0
description: '`1` if this beneficial ower is a decision maker, `0` otherwise'
id_number:
type: string
description: The identification number of the ID document (identification_file)
pep:
type: integer
enum:
- 0
- 1
default: 0
description: '`1` if this beneficial ower is a politicaly exposed, `0` otherwise'
date_of_birth:
type: string
default: '1965-11-12'
description: Birth date of account owner. Ex. '1965-11-12' for November 12, 1965
place_of_birth:
type: string
description: Birth city of account owner.
country_of_birth:
type: string
description: Country of birth - This two-letter country code complies with ISO 3166-1
nationality:
type: string
description: Nationality - This two-letter country code complies with ISO 3166-1
share:
type: integer
default: 25
description: Percentage of shares owned by this UBO (25% minimum)
id_document[file]:
type: string
description: Passport or ID card - File to upload (jpg, gif, png, pdf)
format: binary
id_document_back[file]:
type: string
description: Back of file to upload (jpg, gif, png, pdf). Required for id cards in Belgium and Italy
format: binary
required:
- decision_maker
- id_number
- pep
- date_of_birth
- place_of_birth
- country_of_birth
- nationality
- share
/ubo/ubo-statement.{_format}:
delete:
description: "\n### Information\n If you initiate an UBO statement with a wrong number of UBO, and if you don't send all the UBO, You can delete this UBO statement and start a new one. If an UBO statement has been submitted (status WAITING or UPDATED), you can't delete it."
operationId: delete_ubo-statement
x-disableTryItOut: true
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'200':
description: Success response UBO statement has been deleted.
content:
application/json:
schema:
properties:
code:
description: Status code of the answer.
format: int32
type: integer
message:
description: Description of the answer.
type: string
'401':
description: Authentication failed.
'403':
description: Forbidden.
summary: Delete a UBO statement
tags:
- ubo
security:
- basicAuth: []
get:
description: "\n### Information\n Get the list of all UBOs and documents for a user-space. If an UBO is refused, you should send us a new UBO with https://professional.hipay.com/api/ubo."
operationId: get_ubo-statement
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'200':
description: Success response
content:
application/json:
schema:
properties:
code:
description: Status code of the answer.
format: int32
type: integer
message:
description: Description of the answer.
type: string
user_space_id:
description: User space id.
type: integer
ubo_statement_id:
description: Id of the UBO statement.
type: integer
ubo_statement_status_code:
description: '0: new, 1: waiting, 2: to check, 3: validated, 4: rejected, 5: updated.'
type: integer
ubo_statement_status:
description: Text version of ubo_statement_status_code..
type: string
ubo:
description: List of UBO.
type: array
items:
type: object
properties:
id:
description: ID of the UBO.
format: int32
type: integer
status_code:
description: '0: new, 1: waiting, 2: to check, 3: identified, 4: rejected, 5: deleted, 6: updated.'
type: integer
status_label:
description: Text version of ubo[status_code].
type: string
documents:
description: List of the UBO.
type: array
items:
type: object
properties:
id:
description: ID of the UBO Document
format: int32
type: integer
status_code:
description: '0: new, 1: waiting, 2: validated, 3: refused, 4: deleted, 11: to check.'
type: integer
status_label:
description: Text version of ubo[status_code].
type: string
type_code:
description: '1: Passport or ID card, 2: Proof of address.'
type: integer
type_label:
description: Text version of ubo[type_code].
type: string
status_refused_code:
description: "\tIf an UBO is refused (status_code = 3), this is the reason. -1: Without detail, 1: Invalid date, 2: Unreadable, 3: Missing information, 4: Other, 6: Invalid document type."
type: string
status_refused_label:
description: Text version of ubo[status_refused_code].
type: string
'400':
description: Validation failed.
'401':
description: Authentication failed.
summary: Get a UBO statement. Get the list of all UBOs and documents for a user-space. If an UBO is refused, you should send us a new UBO with https://professional.hipay.com/api/ubo
tags:
- ubo
security:
- basicAuth: []
post:
description: "\n### Information\n This is the first step of UBO statement submission. An UBO statement is a list of UBO (Ultimate Beneficial Owners).\n\n - Be sure to have all the data before starting an UBO statement.\n - 1 UBO = 1 shareholder with >25% of capital or voting rights)"
operationId: post_ubo-statement
parameters:
- in: path
name: _format
required: true
schema:
type: string
enum:
- json
- xml
default: json
- description: Account ID if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-id
schema:
type: integer
- description: Account login (email) if operations must be made on an account other than yours (you must have specific rights on this account).
in: header
name: php-auth-subaccount-login
schema:
type: string
responses:
'201':
description: Success response
content:
application/json:
schema:
properties:
code:
description: Status code of the answer.
format: int32
type: integer
message:
description: Description of the answer.
type: string
ubo_statement_id:
description: Id of the UBO statement.
type: integer
'400':
description: Validation failed.
'401':
description: Authentication failed.
summary: Create a UBO statement
tags:
- ubo
security:
- basicAuth: []
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
nb_ubo:
type: integer
default: 0
description: 'How many UBO do you have to declare ? * `0` : no UBO to declare * maximum of `4` UBOs'
required:
- nb_ubo
components:
securitySchemes:
basicAuth:
type: http
scheme: basic