Onboard clients in Banqup
This API recipe enables partners to create and invite clients (business customers of partners/accountants) to their Banqup partner space. Once the clients have been added and they have successfully onboarded on Banqup, they can be managed directly within the platform, allowing accountants to access client data and collaborate on document processing.
Prerequisites
- 'Client manager' role assigned, which allows you to create, edit, and manage clients, but does not grant access to the documents and other data of the client.
partnerSpaceId: ThespaceIdof the partner to which the client is assigned.
Step 1: Create client
Endpoint: /workspace/partner/v1/spaces/{partnerSpaceId}/clients
Path parameter:
partnerSpaceId
Requires a JSON request body (see
curlexample below).
Parameter details:
| Parameter | Description | Notes |
|---|---|---|
templateName | Applies the preset template of your choice to ensure standard baseline configurations for new clients. Automatically configures: • Team members (accounting partners only); can also be added later • Subscription type and payer (client or partner) • Integration apps | Uses the default template if parameter is omitted or the template name is invalid. Settings can still be adjusted after creation, per client. |
eInvoicingMandated | Set to true to automatically activate the Peppol e-invoicing connector upon client creation. | French Clients: Connector is auto-configured with an activation date of September 01, 2026. |
curl -L 'https://{{serverURL}}/workspace/partner/v1/spaces/{spaceId}/clients' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
--data-raw '
{
"name": "My Client3",
"identifiers": {
"vat": "BE0400503991"
},
"addresses": {
"main": {
"streetName": "Nitzsche Lodge",
"house": "80728",
"postalCode": "3110",
"city": "Fernandahaven",
"country": "Belgium",
"countryCode": "BE",
"postBox": "PO123"
}
},
"metadata" : {
"templateName" : "my_template",
"eInvoicingMandated" : true
},
"contacts": [
{
"firstName": "John",
"lastName": "D.",
"mobile": "+32497666003",
"email": "john.d@example.com",
"language": "en"
}
]
}'
Successful response: Save the clientId returned in the response for further use.
{
"id": "0945d170-7d4e-469c-8f67-3190d7686ba7",
"name": "My Client3",
"identifiers": {
"vat": "BE0400503991"
},
"addresses": {
"main": {
"streetName": "Nitzsche Lodge",
"buildingNumber": "80728",
"postalCode": "3110",
"city": "Fernandahaven",
"country": "Belgium",
"countryCode": "BE",
"postBox": "PO123"
}
},
"metadata": {
"templateName": "my_template",
"eInvoicingMandated": true
},
"contacts": [
{
"id": "49483db6-7b90-429b-a70c-387781bb92e3",
"firstName": "John",
"lastName": "D.",
"mobile": "+32497666003",
"email": "john.d@example.com",
"language": "en"
}
],
"status": "DRAFT",
"spaceExtensions": []
}
Step 2: Invite client
Endpoint: workspace/partner/api/v1/spaces/{spaceId}/clients:bulkInvite
Path parameter:
spaceId
Requires a JSON request body (see
curlexample below).
curl -L 'https://{{serverURL}}/workspace/partner/api/v1/spaces/{spaceId}/clients:bulkInvite' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-d '{
"clientIds": [
"0945d170-7d4e-469c-8f67-3190d7686ba7"
],
"invitationMessage": "I'd like to invite you to join Banqup."
}'
Successful response: The client has been sent an invitation email.
{
"taskId": "b9d553b9-f94f-3836-b3ba-37531a4f137e",
"total": 1
}
If the client did not receive the invitation email or their invitation link expired, you can safely re-trigger this step.
Step 3: View client details
Endpoint: /workspace/partner/v1/spaces/{partnerSpaceId}/clients/{clientId}
Path parameters:
partnerSpaceIdclientId
curl -L 'https://{{serverURL}}/workspace/partner/v1/spaces/{partnerSpaceId}/clients/{clientId}' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_TOKEN'
Successful response:
{
"id": "0945d170-7d4e-469c-8f67-3190d7686ba7",
"name": "My Client3",
"identifiers": {
"vat": "BE0400503991"
},
"addresses": {
"main": {
"streetName": "Nitzsche Lodge",
"buildingNumber": "80728",
"postalCode": "3110",
"city": "Fernandahaven",
"country": "Belgium",
"countryCode": "BE",
"postBox": "PO123"
}
},
"metadata": {
"billing": {
"plans": [
"premium_accountant_50-YjwJKcj6iqZqouUC"
],
"promoCodes": [],
"ownerSpaceId": "f0173ece-116d-4508-a371-cad32887564c",
"payForClients": true,
"customerGroups": [
"itaa_customers-rXBJRi64hax1J9MJ"
],
"periodQuantity": 1
},
"invitationMessage": "I'd like to invite you to join Banqup.",
"eInvoicingMandated": true,
"accountingIntegrations": [
"bbbf654e-0a37-4aa9-88c4-e6dab292c96e"
]
},
"contacts": [
{
"id": "49483db6-7b90-429b-a70c-387781bb92e3",
"firstName": "John",
"lastName": "D.",
"mobile": "+32497666003",
"email": "john.d@example.com",
"language": "en"
}
],
"status": "INVITED",
"spaceExtensions": []
}