Monta
Monta API

Retrieve users

GET
https://partner-api.monta.com
/api/v1/users

Required scope: users:read
Organization authorization: supported

Retrieve users › query Parameters

page
​integer · int32

page number to retrieve (starts with 0)

Default: 0
perPage
​integer · int32

number of items per page (between 1 and 100, default 10)

Default: 10
email
​string · email

filter user by email

phone
​string · phone

filter user by phone

includeDeleted
​boolean

Set to 'true' to include deleted users, 'false' otherwise

Default: false
fromUpdatedAt
​string · date-time

Filter to retrieve users where updatedAt >= fromUpdatedAt (ISO8601: yyyy-MM-ddTHH:mm:ssZ)

Retrieve users › Responses

List of users that match the criteria

​User[] · required
​MontaPage.Meta · required

Create a user

POST
https://partner-api.monta.com
/api/v1/users

Required scope: users:write
Organization authorization: supported

If the email or phone matches an existing Monta user, that user is linked to your application and returned with 201; the profile fields in the request are not applied to it. Use PATCH /users/{userId} to update an existing user's profile.

Create a user › Request Body

countryId
​integer · int64 · required

Country Id of the user

Example: 1
email
​string | null · email

Email address of the user. Required unless phone is provided. Without an email, phone must match an existing Monta user, which is then linked to your application; a new user can't be created without an email.

Example: example@monta.com
phone
​string | null · pattern: ^\+[1-9]\d{1,14}$

Phone number of the user in E.164 format

Example: +4512345678
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
sendWelcomeEmail
​boolean

Controls whether a welcome email is sent to the user after creation. For new users, the email includes a link to set their password. For existing users, the email welcomes them to the operator's platform.

Example: false
language
​string | null · maxLength: 10

User preferred language

Example: en
legalEmail
​string | null · email · minLength: 1

User legal email address

Example: legal@example.com
address1
​string | null · maxLength: 255

User address line 1

Example: Strandboulevarden 122
address2
​string | null · maxLength: 255

User address line 2

Example: Apt 4B
address3
​string | null · maxLength: 255

User address line 3

Example: 5. sal
zip
​string | null · maxLength: 20

User zip/postal code

Example: 2100
city
​string | null · maxLength: 255

User city

Example: Copenhagen
province
​string | null · maxLength: 255

User province/state

Example: Capital Region
isEmailOrPhoneProvided
​boolean

Create a user › Responses

user with provided id

id
​integer · int64 · required

Id of the user

Example: 10
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
email
​string | null

Email of the user

Example: john.doe@example.com
legalEmail
​string | null

Legal email of the user (certified e-mail)

Example: legal@ut.com
phone
​string | null

Phone number of the user

Example: +1234567890
profileImageUrl
​string | null

URL of the profile image

Example: https://example.com/profile.jpg
​object

Address of the user

language
​string | null

Preferred language of the user

Example: en
termsReadAt
​string | null · date-time

Timestamp when the user read the terms

Example: 2023-06-21T15:03:14Z
taxIdentificationNumber
​string | null

Personal tax number if set for the user

Example: X12345678A
vatNumber
​string | null

VAT number which is the company tax id

Example: IT07643520567
recipientCode
​string | null

The recipient code used for e-invoicing

Example: 2021-10-001
createdAt
​string | null · date-time

Timestamp when the user was created

Example: 2023-06-21T15:03:14Z
updatedAt
​string | null · date-time

Timestamp when the user was last updated

Example: 2023-06-21T15:03:14Z
deletedAt
​string | null · date-time

Timestamp when the user was deleted

Example: 2023-06-21T15:03:14Z
emailVerifiedAt
​string | null · date-time

Timestamp when the email was verified

Example: 2023-06-21T15:03:14Z
phoneVerifiedAt
​string | null · date-time

Timestamp when the phone was verified

Example: 2023-06-21T15:03:14Z
marketingEmailsAcceptedAt
​string | null · date-time

Timestamp when the user accepted the marketing emails

Example: 2023-06-21T15:03:14Z
defaultTeamId
​integer | null · int64

ID of the default team for the user

Example: 10
isGuest
​boolean | null

Indicates whether this user is a guest (ad-hoc) user who has not yet completed registration

Example: false
nationalId
​string | null

National identification number. Returned only when configured per operator

Example: 123456-7890
hasPaymentCard
​boolean | null

Whether this user has at least one saved card, including expired cards. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true
hasValidPaymentCard
​boolean | null

Whether this user has at least one saved card that has not expired. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true

Send the welcome email to users

POST
https://partner-api.monta.com
/api/v1/users/welcome-email

Sends the welcome email to up to 100 of your users, so you can choose when they receive it. Each user is processed independently and gets its own result. A user who already got the welcome email is skipped, so a repeated or retried call never sends it twice; set force to send it again. Users that are not yours or have no email fail without affecting the others. Required scope: users:write
Organization authorization: supported

Send the welcome email to users › Request Body

​SendWelcomeEmailItem[] · minItems: 1 · maxItems: 100 · required

Users to send the welcome email to (between 1 and 100, no duplicates)

force
​boolean

Send again to users who already got the welcome email. By default they are skipped, so repeating a call is safe

Example: false
Default: false

Send the welcome email to users › Responses

Result per requested user

​WelcomeEmailItemResult[] · required

One result per requested user, in request order

​object · required

Number of users per result status


Retrieve a user

GET
https://partner-api.monta.com
/api/v1/users/{userId}

Required scope: users:read
Organization authorization: supported
Optional scope: wallet-transactions:read adds hasPaymentCard and hasValidPaymentCard to the response

Retrieve a user › path Parameters

userId
​integer · int64 · required

Retrieve a user › Responses

user with provided id

id
​integer · int64 · required

Id of the user

Example: 10
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
email
​string | null

Email of the user

Example: john.doe@example.com
legalEmail
​string | null

Legal email of the user (certified e-mail)

Example: legal@ut.com
phone
​string | null

Phone number of the user

Example: +1234567890
profileImageUrl
​string | null

URL of the profile image

Example: https://example.com/profile.jpg
​object

Address of the user

language
​string | null

Preferred language of the user

Example: en
termsReadAt
​string | null · date-time

Timestamp when the user read the terms

Example: 2023-06-21T15:03:14Z
taxIdentificationNumber
​string | null

Personal tax number if set for the user

Example: X12345678A
vatNumber
​string | null

VAT number which is the company tax id

Example: IT07643520567
recipientCode
​string | null

The recipient code used for e-invoicing

Example: 2021-10-001
createdAt
​string | null · date-time

Timestamp when the user was created

Example: 2023-06-21T15:03:14Z
updatedAt
​string | null · date-time

Timestamp when the user was last updated

Example: 2023-06-21T15:03:14Z
deletedAt
​string | null · date-time

Timestamp when the user was deleted

Example: 2023-06-21T15:03:14Z
emailVerifiedAt
​string | null · date-time

Timestamp when the email was verified

Example: 2023-06-21T15:03:14Z
phoneVerifiedAt
​string | null · date-time

Timestamp when the phone was verified

Example: 2023-06-21T15:03:14Z
marketingEmailsAcceptedAt
​string | null · date-time

Timestamp when the user accepted the marketing emails

Example: 2023-06-21T15:03:14Z
defaultTeamId
​integer | null · int64

ID of the default team for the user

Example: 10
isGuest
​boolean | null

Indicates whether this user is a guest (ad-hoc) user who has not yet completed registration

Example: false
nationalId
​string | null

National identification number. Returned only when configured per operator

Example: 123456-7890
hasPaymentCard
​boolean | null

Whether this user has at least one saved card, including expired cards. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true
hasValidPaymentCard
​boolean | null

Whether this user has at least one saved card that has not expired. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true

Update a user

PATCH
https://partner-api.monta.com
/api/v1/users/{userId}

Updates user information. At least one field must be provided. Required scope: users:write
Organization authorization: supported

Update a user › path Parameters

userId
​integer · int64 · required

Update a user › Request Body

email
​string | null · email · minLength: 1

User email address

Example: user@example.com
phone
​string | null · pattern: ^\+[1-9]\d{1,14}$

User phone number in E.164 format

Example: +4512345678
firstName
​string | null · maxLength: 255

User first name

Example: John
lastName
​string | null · maxLength: 255

User last name

Example: Doe
language
​string | null · maxLength: 10

User preferred language

Example: en
legalEmail
​string | null · email · minLength: 1

User legal email address

Example: legal@example.com
address1
​string | null · maxLength: 255

User address line 1

Example: Strandboulevarden 122
address2
​string | null · maxLength: 255

User address line 2

Example: Apt 4B
address3
​string | null · maxLength: 255

User address line 3

Example: 5. sal
zip
​string | null · maxLength: 20

User zip/postal code

Example: 2100
city
​string | null · maxLength: 255

User city

Example: Copenhagen
province
​string | null · maxLength: 255

User province/state

Example: Capital Region
marketingEmailsAccepted
​boolean | null

Set or withdraw the user's marketing email consent for your application. false withdraws it immediately. true requests it: if your application requires double opt-in, Monta emails the user a confirmation link and marketingEmailsAcceptedAt is only set once they confirm; otherwise it is set immediately.

Example: false

Update a user › Responses

User updated

id
​integer · int64 · required

Id of the user

Example: 10
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
email
​string | null

Email of the user

Example: john.doe@example.com
legalEmail
​string | null

Legal email of the user (certified e-mail)

Example: legal@ut.com
phone
​string | null

Phone number of the user

Example: +1234567890
profileImageUrl
​string | null

URL of the profile image

Example: https://example.com/profile.jpg
​object

Address of the user

language
​string | null

Preferred language of the user

Example: en
termsReadAt
​string | null · date-time

Timestamp when the user read the terms

Example: 2023-06-21T15:03:14Z
taxIdentificationNumber
​string | null

Personal tax number if set for the user

Example: X12345678A
vatNumber
​string | null

VAT number which is the company tax id

Example: IT07643520567
recipientCode
​string | null

The recipient code used for e-invoicing

Example: 2021-10-001
createdAt
​string | null · date-time

Timestamp when the user was created

Example: 2023-06-21T15:03:14Z
updatedAt
​string | null · date-time

Timestamp when the user was last updated

Example: 2023-06-21T15:03:14Z
deletedAt
​string | null · date-time

Timestamp when the user was deleted

Example: 2023-06-21T15:03:14Z
emailVerifiedAt
​string | null · date-time

Timestamp when the email was verified

Example: 2023-06-21T15:03:14Z
phoneVerifiedAt
​string | null · date-time

Timestamp when the phone was verified

Example: 2023-06-21T15:03:14Z
marketingEmailsAcceptedAt
​string | null · date-time

Timestamp when the user accepted the marketing emails

Example: 2023-06-21T15:03:14Z
defaultTeamId
​integer | null · int64

ID of the default team for the user

Example: 10
isGuest
​boolean | null

Indicates whether this user is a guest (ad-hoc) user who has not yet completed registration

Example: false
nationalId
​string | null

National identification number. Returned only when configured per operator

Example: 123456-7890
hasPaymentCard
​boolean | null

Whether this user has at least one saved card, including expired cards. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true
hasValidPaymentCard
​boolean | null

Whether this user has at least one saved card that has not expired. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true

Delete a user

DELETE
https://partner-api.monta.com
/api/v1/users/{userId}

Required scope: users:delete
Organization authorization: supported

Delete a user › path Parameters

userId
​integer · int64 · required

Delete a user › Responses

User successfully deleted

No data returned

Retrieve charge-points for a user

GET
https://partner-api.monta.com
/api/v1/users/{userId}/charge-points

Required scope: users:read
Organization authorization: supported

Retrieve charge-points for a user › path Parameters

userId
​integer · int64 · required

Retrieve charge-points for a user › query Parameters

page
​integer · int32

page number to retrieve (starts with 0)

Default: 0
perPage
​integer · int32

number of items per page (between 1 and 100, default 10)

Default: 10

Retrieve charge-points for a user › Responses

List of charge-points owned by the user

​ChargePoint[] · required
​MontaPage.Meta · required

Retrieve charges for a user

GET
https://partner-api.monta.com
/api/v1/users/{userId}/charges

Required scope: users:read
Organization authorization: supported

Retrieve charges for a user › path Parameters

userId
​integer · int64 · required

Retrieve charges for a user › query Parameters

page
​integer · int32

page number to retrieve (starts with 0)

Default: 0
perPage
​integer · int32

number of items per page (between 1 and 100, default 10)

Default: 10

Retrieve charges for a user › Responses

List of charges for the user

​Charge[] · required
​MontaPage.Meta · required

Update contact information for a user

PATCH
https://partner-api.monta.com
/api/v1/users/{userId}/contacts

Updates email and/or phone for a user. At least one field must be provided. Required scope: users:write
Organization authorization: supported

Availability: This endpoint is not available by default. It must be explicitly enabled for your operator account upon request. Please contact your Monta Business Partner to request access to this feature.

Update contact information for a user › path Parameters

userId
​integer · int64 · required

Update contact information for a user › Request Body

email
​string | null · email

User email address

Example: user@example.com
phone
​string | null · pattern: ^\+[1-9]\d{1,14}$

User phone number in E.164 format

Example: +4512345678

Update contact information for a user › Responses

User contact information updated

id
​integer · int64 · required

Id of the user

Example: 10
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
email
​string | null

Email of the user

Example: john.doe@example.com
legalEmail
​string | null

Legal email of the user (certified e-mail)

Example: legal@ut.com
phone
​string | null

Phone number of the user

Example: +1234567890
profileImageUrl
​string | null

URL of the profile image

Example: https://example.com/profile.jpg
​object

Address of the user

language
​string | null

Preferred language of the user

Example: en
termsReadAt
​string | null · date-time

Timestamp when the user read the terms

Example: 2023-06-21T15:03:14Z
taxIdentificationNumber
​string | null

Personal tax number if set for the user

Example: X12345678A
vatNumber
​string | null

VAT number which is the company tax id

Example: IT07643520567
recipientCode
​string | null

The recipient code used for e-invoicing

Example: 2021-10-001
createdAt
​string | null · date-time

Timestamp when the user was created

Example: 2023-06-21T15:03:14Z
updatedAt
​string | null · date-time

Timestamp when the user was last updated

Example: 2023-06-21T15:03:14Z
deletedAt
​string | null · date-time

Timestamp when the user was deleted

Example: 2023-06-21T15:03:14Z
emailVerifiedAt
​string | null · date-time

Timestamp when the email was verified

Example: 2023-06-21T15:03:14Z
phoneVerifiedAt
​string | null · date-time

Timestamp when the phone was verified

Example: 2023-06-21T15:03:14Z
marketingEmailsAcceptedAt
​string | null · date-time

Timestamp when the user accepted the marketing emails

Example: 2023-06-21T15:03:14Z
defaultTeamId
​integer | null · int64

ID of the default team for the user

Example: 10
isGuest
​boolean | null

Indicates whether this user is a guest (ad-hoc) user who has not yet completed registration

Example: false
nationalId
​string | null

National identification number. Returned only when configured per operator

Example: 123456-7890
hasPaymentCard
​boolean | null

Whether this user has at least one saved card, including expired cards. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true
hasValidPaymentCard
​boolean | null

Whether this user has at least one saved card that has not expired. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true

Set the default team for a user

PUT
https://partner-api.monta.com
/api/v1/users/{userId}/default-team

Assigns an existing private team as this user's default team. The team must be owned by this user, belong to the operator (or any of its sub-operators), and not currently be another user's default. Required scope: users:write
Organization authorization: supported

Set the default team for a user › path Parameters

userId
​integer · int64 · required

Set the default team for a user › Request Body

teamId
​integer · int64 · required

Id of an existing private team owned by the operator (or one of its sub-operators) to assign as the user's default team

Example: 12345

Set the default team for a user › Responses

User with default team assigned

id
​integer · int64 · required

Id of the user

Example: 10
firstName
​string | null

First name of the user

Example: John
lastName
​string | null

Last name of the user

Example: Doe
email
​string | null

Email of the user

Example: john.doe@example.com
legalEmail
​string | null

Legal email of the user (certified e-mail)

Example: legal@ut.com
phone
​string | null

Phone number of the user

Example: +1234567890
profileImageUrl
​string | null

URL of the profile image

Example: https://example.com/profile.jpg
​object

Address of the user

language
​string | null

Preferred language of the user

Example: en
termsReadAt
​string | null · date-time

Timestamp when the user read the terms

Example: 2023-06-21T15:03:14Z
taxIdentificationNumber
​string | null

Personal tax number if set for the user

Example: X12345678A
vatNumber
​string | null

VAT number which is the company tax id

Example: IT07643520567
recipientCode
​string | null

The recipient code used for e-invoicing

Example: 2021-10-001
createdAt
​string | null · date-time

Timestamp when the user was created

Example: 2023-06-21T15:03:14Z
updatedAt
​string | null · date-time

Timestamp when the user was last updated

Example: 2023-06-21T15:03:14Z
deletedAt
​string | null · date-time

Timestamp when the user was deleted

Example: 2023-06-21T15:03:14Z
emailVerifiedAt
​string | null · date-time

Timestamp when the email was verified

Example: 2023-06-21T15:03:14Z
phoneVerifiedAt
​string | null · date-time

Timestamp when the phone was verified

Example: 2023-06-21T15:03:14Z
marketingEmailsAcceptedAt
​string | null · date-time

Timestamp when the user accepted the marketing emails

Example: 2023-06-21T15:03:14Z
defaultTeamId
​integer | null · int64

ID of the default team for the user

Example: 10
isGuest
​boolean | null

Indicates whether this user is a guest (ad-hoc) user who has not yet completed registration

Example: false
nationalId
​string | null

National identification number. Returned only when configured per operator

Example: 123456-7890
hasPaymentCard
​boolean | null

Whether this user has at least one saved card, including expired cards. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true
hasValidPaymentCard
​boolean | null

Whether this user has at least one saved card that has not expired. Only returned on the single user read, and only when the consumer also has the wallet-transactions:read scope. Always null on user lists; null when the lookup failed.

Example: true

Request export of user data

POST
https://partner-api.monta.com
/api/v1/users/{userId}/export-data

Triggers a GDPR data export for the user. Limited to once per month. Required scope: users:write
Organization authorization: supported

Request export of user data › path Parameters

userId
​integer · int64 · required

Request export of user data › Responses

Export request submitted

No data returned

Retrieve teams for a user

GET
https://partner-api.monta.com
/api/v1/users/{userId}/teams

Required scope: users:read
Organization authorization: supported

Retrieve teams for a user › path Parameters

userId
​integer · int64 · required

Retrieve teams for a user › query Parameters

page
​integer · int32

page number to retrieve (starts with 0)

Default: 0
perPage
​integer · int32

number of items per page (between 1 and 100, default 10)

Default: 10

Retrieve teams for a user › Responses

List of teams the user belongs to

​Team[] · required
​MontaPage.Meta · required