SumUp Roles API
Endpoints to manage custom roles. Custom roles allow you to tailor roles from individual permissions to match your needs. Once created, you can assign your custom roles to your merchant account members using the memberships.
Endpoints to manage custom roles. Custom roles allow you to tailor roles from individual permissions to match your needs. Once created, you can assign your custom roles to your merchant account members using the memberships.
openapi: 3.0.1
info:
title: SumUp REST Checkouts Roles 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: Roles
description: Endpoints to manage custom roles. Custom roles allow you to tailor roles from individual permissions to match your needs. Once created, you can assign your custom roles to your merchant account members using the memberships.
x-core-objects:
- $ref: '#/components/schemas/Role'
x-beta: true
paths:
/v0.1/merchants/{merchant_code}/roles:
get:
operationId: ListMerchantRoles
summary: List roles
description: List merchant's custom roles.
parameters:
- 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 Role objects.
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Role'
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:
- Roles
x-codegen:
method_name: list
x-permissions:
- relation: roles_list
object_type: merchant
object_id_param: merchant_code
x-scopes: []
post:
operationId: CreateMerchantRole
summary: Create a role
description: Create a custom role for the merchant. Roles are defined by the set of permissions that they grant to the members that they are assigned to.
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:
name:
description: User-defined name of the role.
type: string
example: Senior Shop Manager II
permissions:
description: User's permissions.
type: array
items:
type: string
example:
- catalog_access
- taxes_access
- members_access
maxItems: 100
metadata:
$ref: '#/components/schemas/Metadata'
description:
description: User-defined description of the role.
type: string
example: Manges the shop and the employees.
required:
- name
- permissions
responses:
'201':
description: Returns the Role object after successful custom role creation.
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
'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.
security:
- apiKey: []
- oauth2: []
tags:
- Roles
x-codegen:
method_name: create
x-permissions:
- relation: roles_create
object_type: merchant
object_id_param: merchant_code
x-scopes: []
/v0.1/merchants/{merchant_code}/roles/{role_id}:
get:
operationId: GetMerchantRole
summary: Retrieve a role
description: Retrieve a custom role by ID.
parameters:
- name: merchant_code
in: path
description: Short unique identifier for the merchant.
required: true
schema:
type: string
example: MK10CL2A
- name: role_id
in: path
description: The ID of the role to retrieve.
required: true
schema:
type: string
example: role_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
responses:
'200':
description: Returns the Role object for a valid identifier.
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
'404':
description: Merchant or role 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:
- Roles
x-codegen:
method_name: get
x-permissions:
- relation: roles_view
object_type: merchant
object_id_param: merchant_code
x-scopes: []
delete:
operationId: DeleteMerchantRole
summary: Delete a role
description: Delete a custom role.
parameters:
- name: merchant_code
in: path
description: Short unique identifier for the merchant.
required: true
schema:
type: string
example: MK10CL2A
- name: role_id
in: path
description: The ID of the role to retrieve.
required: true
schema:
type: string
example: role_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
responses:
'200':
description: Returns an empty response if the role deletion succeeded.
'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.
security:
- apiKey: []
- oauth2: []
tags:
- Roles
x-codegen:
method_name: delete
x-permissions:
- relation: roles_delete
object_type: merchant
object_id_param: merchant_code
x-scopes: []
patch:
operationId: UpdateMerchantRole
summary: Update a role
description: Update a custom role.
parameters:
- name: merchant_code
in: path
description: Short unique identifier for the merchant.
required: true
schema:
type: string
example: MK10CL2A
- name: role_id
in: path
description: The ID of the role to retrieve.
required: true
schema:
type: string
example: role_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
description: User-defined name of the role.
type: string
example: Senior Shop Manager II
permissions:
description: User's permissions.
type: array
items:
type: string
example:
- catalog_access
- taxes_access
- members_access
maxItems: 100
description:
description: User-defined description of the role.
type: string
example: Manges the shop and the employees.
example:
name: Senior Shop Manager III
permissions:
- catalog_edit
- taxes_access
- members_edit
responses:
'200':
description: Returns the updated Role object if the update succeeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
'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.
security:
- apiKey: []
- oauth2: []
tags:
- Roles
x-codegen:
method_name: update
x-permissions:
- relation: roles_update
object_type: merchant
object_id_param: merchant_code
x-scopes: []
components:
schemas:
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
Role:
description: A custom role that can be used to assign set of permissions to members.
type: object
properties:
id:
description: Unique identifier of the role.
type: string
example: role_WZsm7QTPhVrompscmPhoGTXXcrd58fr9MOhP
name:
description: User-defined name of the role.
type: string
example: Senior Shop Manager II
description:
description: User-defined description of the role.
type: string
example: Manges the shop and the employees.
permissions:
description: List of permission granted by this role.
type: array
items:
type: string
example: []
maxItems: 100
is_predefined:
description: True if the role is provided by SumUp.
type: boolean
example: true
metadata:
$ref: '#/components/schemas/Metadata'
created_at:
description: The timestamp of when the role was created.
type: string
format: date-time
example: 2023-01-20 15:16:17+00:00
updated_at:
description: The timestamp of when the role was last updated.
type: string
format: date-time
example: 2023-01-20 15:16:17+00:00
required:
- id
- name
- permissions
- is_predefined
- created_at
- updated_at
title: Role
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
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.