SumUp Members API

Endpoints to manage account members. Members are users that have membership within merchant accounts.

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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sumup-members-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sumup-members-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: SumUp REST Checkouts Members API
  version: 1.0.0
  description: 'SumUp’s REST API operates with [JSON](https://www.json.org/json-en.html) HTTP requests and responses. The request bodies are sent through resource-oriented URLs and use the standard [HTTP response codes](https://developer.mozilla.org/docs/Web/HTTP/Status).


    You can experiment and work on your integration in a sandbox that doesn''t affect your regular data and doesn''t process real transactions. To create a sandbox merchant account visit the [dashboard](https://me.sumup.com/settings/developer). To use the sandbox when interacting with SumUp APIs [create an API](https://me.sumup.com/settings/api-keys) key and use it for [authentication](https://developer.sumup.com/api/authentication).'
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.sumup.com
  description: Production server
tags:
- name: Members
  description: Endpoints to manage account members. Members are users that have membership within merchant accounts.
  x-core-objects:
  - $ref: '#/components/schemas/Member'
  x-beta: true
paths:
  /v0.1/merchants/{merchant_code}/members:
    get:
      operationId: ListMerchantMembers
      summary: List members
      description: Lists merchant members.
      parameters:
      - name: offset
        in: query
        description: Offset of the first member to return.
        schema:
          type: integer
          example: 0
          default: 0
          minimum: 0
      - name: limit
        in: query
        description: Maximum number of members to return.
        schema:
          type: integer
          example: 10
          default: 10
          maximum: 25
          minimum: 1
      - name: scroll
        in: query
        description: Indicates to skip count query.
        schema:
          type: boolean
          example: true
          default: false
        x-document: false
      - name: email
        in: query
        description: Filter the returned members by email address prefix.
        schema:
          type: string
          example: user
      - name: user.id
        in: query
        description: Search for a member by user id.
        schema:
          type: string
          format: uuid
          example: 245b2ead-85bf-45ff-856f-311a88a5d454
      - name: status
        in: query
        description: Filter the returned members by the membership status.
        schema:
          $ref: '#/components/schemas/MembershipStatus'
      - name: roles
        in: query
        description: Filter the returned members by role.
        schema:
          type: array
          items:
            type: string
          example:
          - role_employee
          - role_accountant
        explode: true
        style: form
      - name: merchant_code
        in: path
        description: Short unique identifier for the merchant.
        required: true
        schema:
          type: string
          example: MK10CL2A
      responses:
        '200':
          description: Returns a list of Member objects.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Member'
                  total_count:
                    type: integer
                    example: 3
                required:
                - items
        '404':
          description: Merchant not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/not-found
                title: Requested resource couldn't be found.
                status: 404
                detail: The requested resource doesn't exist or does not belong to you.
      security:
      - apiKey: []
      - oauth2: []
      tags:
      - Members
      x-codegen:
        method_name: list
      x-permissions:
      - relation: merchant_read
        object_type: merchant
        object_id_param: merchant_code
      x-scopes: []
    post:
      operationId: CreateMerchantMember
      summary: Create a member
      description: Create a merchant member.
      parameters:
      - name: merchant_code
        in: path
        description: Short unique identifier for the merchant.
        required: true
        schema:
          type: string
          example: MK10CL2A
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_managed_user:
                  description: True if the user is managed by the merchant. In this case, we'll created a virtual user with the provided password and nickname.
                  type: boolean
                email:
                  description: Email address of the member to add.
                  type: string
                  format: email
                password:
                  description: Password of the member to add. Only used if `is_managed_user` is true. In the case of service accounts, the password is not used and can not be defined by the caller.
                  type: string
                  format: password
                  minLength: 8
                nickname:
                  description: Nickname of the member to add. Only used if `is_managed_user` is true. Used for display purposes only.
                  type: string
                  example: Test User
                roles:
                  description: List of roles to assign to the new member.
                  type: array
                  items:
                    type: string
                metadata:
                  $ref: '#/components/schemas/Metadata'
                attributes:
                  $ref: '#/components/schemas/Attributes'
              example:
                email: karl.berg@example.com
                roles:
                - role_employee
              required:
              - email
              - roles
      responses:
        '201':
          description: Returns the Member object if the creation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '400':
          description: Invalid request.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/bad-request
                title: Bad Request
                status: 400
                detail: Request validation failed.
        '404':
          description: Merchant not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/not-found
                title: Requested resource couldn't be found.
                status: 404
                detail: The requested resource doesn't exist or does not belong to you.
        '429':
          description: Too many invitations were sent to that user and the rate limit was exceeded. The Retry-After header indicates when the client can retry.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/too-many-requests
                title: Too Many Requests
                status: 429
                detail: Too many requests were sent. Please try again later.
      security:
      - apiKey: []
      - oauth2: []
      tags:
      - Members
      x-codegen:
        method_name: create
      x-permissions:
      - relation: members_create
        object_type: merchant
        object_id_param: merchant_code
      x-scopes: []
  /v0.1/merchants/{merchant_code}/members/{member_id}:
    get:
      operationId: GetMerchantMember
      summary: Retrieve a member
      description: Retrieve a merchant member.
      parameters:
      - name: merchant_code
        in: path
        description: Short unique identifier for the merchant.
        required: true
        schema:
          type: string
          example: MK10CL2A
      - name: member_id
        in: path
        description: The ID of the member to retrieve.
        required: true
        schema:
          type: string
          example: mem_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
      responses:
        '200':
          description: Returns the Member object for a valid identifier.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '404':
          description: Merchant or member not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/not-found
                title: Requested resource couldn't be found.
                status: 404
                detail: The requested resource doesn't exist or does not belong to you.
      security:
      - apiKey: []
      - oauth2: []
      tags:
      - Members
      x-codegen:
        method_name: get
      x-permissions:
      - relation: members_view
        object_type: merchant
        object_id_param: merchant_code
      x-scopes: []
    put:
      operationId: UpdateMerchantMember
      summary: Update a member
      description: Update the merchant member.
      parameters:
      - name: merchant_code
        in: path
        description: Short unique identifier for the merchant.
        required: true
        schema:
          type: string
          example: MK10CL2A
      - name: member_id
        in: path
        description: The ID of the member to retrieve.
        required: true
        schema:
          type: string
          example: mem_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                roles:
                  type: array
                  items:
                    type: string
                metadata:
                  $ref: '#/components/schemas/Metadata'
                attributes:
                  $ref: '#/components/schemas/Attributes'
                user:
                  description: Allows you to update user data of managed users.
                  type: object
                  properties:
                    nickname:
                      description: User's preferred name. Used for display purposes only.
                      type: string
                      example: Test User
                    password:
                      description: Password of the member to add. Only used if `is_managed_user` is true.
                      type: string
                      format: password
                      minLength: 8
              example:
                Update member's role:
                  roles:
                  - role_manager
                Update managed user:
                  user:
                    nickname: New Employee Name
      responses:
        '200':
          description: Returns the updated Member object if the update succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '400':
          description: Cannot set password or nickname for an invited user.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/bad-request
                title: Bad Request
                status: 400
                detail: Request validation failed.
        '403':
          description: Cannot change password for managed user. Password was already used before.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/forbidden
                title: Forbidden
                status: 403
                detail: You do not have permission to perform this action.
        '404':
          description: Merchant or member not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/not-found
                title: Requested resource couldn't be found.
                status: 404
                detail: The requested resource doesn't exist or does not belong to you.
        '409':
          description: Cannot update member as some data conflict with existing members.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/conflict
                title: Conflict
                status: 409
                detail: The request conflicts with the current state of the resource.
      security:
      - apiKey: []
      - oauth2: []
      tags:
      - Members
      x-codegen:
        method_name: update
      x-permissions:
      - relation: members_update
        object_type: merchant
        object_id_param: merchant_code
      x-scopes: []
    delete:
      operationId: DeleteMerchantMember
      summary: Delete a member
      description: Deletes a merchant member.
      parameters:
      - name: merchant_code
        in: path
        description: Short unique identifier for the merchant.
        required: true
        schema:
          type: string
          example: MK10CL2A
      - name: member_id
        in: path
        description: The ID of the member to retrieve.
        required: true
        schema:
          type: string
          example: mem_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
      responses:
        '200':
          description: Returns an empty response if the deletion succeeded.
        '404':
          description: Merchant or member not found.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
              example:
                type: https://developer.sumup.com/problem/not-found
                title: Requested resource couldn't be found.
                status: 404
                detail: The requested resource doesn't exist or does not belong to you.
      security:
      - apiKey: []
      - oauth2: []
      tags:
      - Members
      x-codegen:
        method_name: delete
      x-permissions:
      - relation: members_delete
        object_type: merchant
        object_id_param: merchant_code
      x-scopes: []
components:
  schemas:
    MembershipUser:
      description: Information about the user associated with the membership.
      type: object
      properties:
        id:
          description: Identifier for the End-User (also called Subject).
          type: string
          example: 44ca0f5b-813b-46e1-aee7-e6242010662e
        email:
          description: End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this value being unique, for unique identification use ID instead.
          type: string
          example: example@sumup.com
        mfa_on_login_enabled:
          description: True if the user has enabled MFA on login.
          type: boolean
          example: true
        virtual_user:
          description: True if the user is a virtual user (operator).
          type: boolean
          example: false
        service_account_user:
          description: True if the user is a service account.
          type: boolean
          example: false
        disabled_at:
          description: 'Time when the user has been disabled. Applies only to virtual users (`virtual_user: true`).'
          type: string
          format: date-time
        nickname:
          description: User's preferred name. Used for display purposes only.
          type: string
          example: Test User
        picture:
          description: URL of the End-User's profile picture. This URL refers to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image.
          type: string
          format: uri
          example: https://usercontent.sumup.com/44ca0f5b-813b-46e1-aee7-e6242010662e.png
        classic:
          $ref: '#/components/schemas/MembershipUserClassic'
      required:
      - id
      - email
      - mfa_on_login_enabled
      - virtual_user
      - service_account_user
    Member:
      description: A member is user within specific resource identified by resource id, resource type, and associated roles.
      type: object
      properties:
        id:
          description: ID of the member.
          type: string
          example: mem_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
        roles:
          description: User's roles.
          type: array
          items:
            type: string
          example:
          - role_admin
        permissions:
          description: User's permissions.
          type: array
          items:
            type: string
          example:
          - members_read
          - members_write
          - create_moto_payments
          - full_transaction_history_view
          - refund_transactions
          - create_referral
          - developer_settings_edit
          - developer_settings_access
          deprecated: true
          x-deprecation-notice: Permissions include only legacy permissions, please use roles instead. Member access is based on roles within a given resource and the permissions these roles grant.
        created_at:
          description: The timestamp of when the member was created.
          type: string
          format: date-time
          example: 2023-01-20 15:16:17+00:00
        updated_at:
          description: The timestamp of when the member was last updated.
          type: string
          format: date-time
          example: 2023-01-20 15:16:17+00:00
        user:
          $ref: '#/components/schemas/MembershipUser'
        invite:
          $ref: '#/components/schemas/Invite'
        status:
          $ref: '#/components/schemas/MembershipStatus'
        metadata:
          $ref: '#/components/schemas/Metadata'
        attributes:
          $ref: '#/components/schemas/Attributes'
      example:
        id: mem_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
        roles:
        - role_admin
        - role_owner
        permissions:
        - members_read
        - members_write
        - create_moto_payments
        - full_transaction_history_view
        - refund_transactions
        - create_referral
        - developer_settings_edit
        - developer_settings_access
        created_at: 2023-01-20 15:16:17+00:00
        updated_at: 2023-02-20 15:16:17+00:00
        user:
          id: 44ca0f5b-813b-46e1-aee7-e6242010662e
          email: example@sumup.com
          mfa_on_login_enabled: true
          virtual_user: false
          service_account_user: false
        status: accepted
      required:
      - id
      - roles
      - permissions
      - created_at
      - updated_at
      - status
      title: Member
    Invite:
      description: Pending invitation for membership.
      type: object
      properties:
        email:
          description: Email address of the invited user.
          type: string
          format: email
          example: boaty.mcboatface@sumup.com
        expires_at:
          type: string
          format: date-time
          example: 2023-01-20 15:16:17+00:00
      required:
      - email
      - expires_at
      title: Invite
    Attributes:
      description: Object attributes that are modifiable only by SumUp applications.
      type: object
      example: {}
      additionalProperties: true
    MembershipStatus:
      description: The status of the membership.
      type: string
      enum:
      - accepted
      - pending
      - expired
      - disabled
      - unknown
    Metadata:
      description: Set of user-defined key-value pairs attached to the object. Partial updates are not supported. When updating, always submit whole metadata. Maximum of 64 parameters are allowed in the object.
      type: object
      example: {}
      additionalProperties: true
      maxProperties: 64
    Problem:
      description: 'A RFC 9457 problem details object.


        Additional properties specific to the problem type may be present.'
      type: object
      properties:
        type:
          description: A URI reference that identifies the problem type.
          type: string
          format: uri
          example: https://developer.sumup.com/problem/not-found
        title:
          description: A short, human-readable summary of the problem type.
          type: string
          example: Requested resource couldn't be found.
        status:
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
          type: integer
          example: 404
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
          example: The requested resource doesn't exist or does not belong to you.
        instance:
          description: A URI reference that identifies the specific occurrence of the problem.
          type: string
          format: uri
      additionalProperties: true
      required:
      - type
      title: Problem
    MembershipUserClassic:
      description: Classic identifiers of the user.
      type: object
      properties:
        user_id:
          type: integer
          format: int32
      deprecated: true
      required:
      - user_id
  securitySchemes:
    apiKey:
      description: API keys allow you easily interact with SumUp APIs. API keys are static tokens. You can create API keys from the [Dashboard](https://me.sumup.com/settings/api-keys)
      type: http
      scheme: Bearer
    oauth2:
      type: oauth2
      description: 'SumUp supports [OAuth 2.0](https://tools.ietf.org/html/rfc6749) authentication for platforms that want to offer their services to SumUp users.


        To integrate via OAuth 2.0 you will need a client credentials that you can create in the [SumUp Dashboard](https://me.sumup.com/settings/oauth2-applications).


        To maintain security of our users, we highly recommend that you use one of the [recommended OAuth 2.0 libraries](https://oauth.net/code/) for authentication.'
      flows:
        authorizationCode:
          authorizationUrl: https://api.sumup.com/authorize
          tokenUrl: https://api.sumup.com/token
          refreshUrl: https://api.sumup.com/token
          scopes:
            payments: Make payments by creating and processing checkouts.
            transactions.history: View transactions and transaction history.
            user.profile_readonly: View user profile details.
            user.profile: View and manage your user profile.
            user.app-settings: View and manage the SumUp mobile application settings.
            payment_instruments: Manage customers and their payment instruments.
            user.payout-settings: View and manage your payout settings.
            user.subaccounts: View and manage the user profile details of your employees.
        clientCredentials:
          tokenUrl: https://api.sumup.com/token
          scopes:
            payments: Make payments by creating and processing checkouts.
            transactions.history: View transactions and transaction history.
            user.profile_readonly: View user profile details.
            user.profile: View and manage your user profile.
            user.app-settings: View and manage the SumUp mobile application settings.
            payment_instruments: Manage customers and their payment instruments.
            user.payout-settings: View and manage your payout settings.
            user.subaccounts: View and manage the user profile details of your employee.