From ef59f06625d9d113b09aaaddc39256f33c2095f2 Mon Sep 17 00:00:00 2001 From: Kilian Saffran Date: Tue, 12 Mar 2019 19:39:30 +0100 Subject: [PATCH] auto commit on 2019-03-12 19:39 --- dev/DKS.json | 1 + dev/paypal_cert_pem.txt | 22 + dev/swagger.json | 4903 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 4926 insertions(+) create mode 100644 dev/DKS.json create mode 100644 dev/paypal_cert_pem.txt create mode 100644 dev/swagger.json diff --git a/dev/DKS.json b/dev/DKS.json new file mode 100644 index 0000000..af6ce19 --- /dev/null +++ b/dev/DKS.json @@ -0,0 +1 @@ +{"id":"CCEPF4L2","name":"DKS","client_id":"_0kL29n-LnzUatj4b_uBz88vdUAh","client_secret":"43bde832c453cb2877deceec2242a012b80dff4628fbb1a5c43f5745b1d56981","application_type":"web","redirect_uris":["https://www.dks.lu/sumuppayement.cgi"],"cors_uris":["https://www.dks.lu"]} \ No newline at end of file diff --git a/dev/paypal_cert_pem.txt b/dev/paypal_cert_pem.txt new file mode 100644 index 0000000..4639da3 --- /dev/null +++ b/dev/paypal_cert_pem.txt @@ -0,0 +1,22 @@ +live_api +-----BEGIN CERTIFICATE----- +MIIDgzCCAuygAwIBAgIBADANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMx +CzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQ +YXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9h +cGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20wHhcNMDQwMjEzMTAxMzE1 +WhcNMzUwMjEzMTAxMzE1WjCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYw +FAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEG +A1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0B +CQEWDXJlQHBheXBhbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMFH +Tt38RMxLXJyO2SmS+Ndl72T7oKJ4u4uw+6awntALWh03PewmIJuzbALScsTS4sZo +S1fKciBGoh11gIfHzylvkdNe/hJl66/RGqrj5rFb08sAABNTzDTiqqNpJeBsYs/c +2aiGozptX2RlnBktH+SUNpAajW724Nv2Wvhif6sFAgMBAAGjge4wgeswHQYDVR0O +BBYEFJaffLvGbxe9WT9S1wob7BDWZJRrMIG7BgNVHSMEgbMwgbCAFJaffLvGbxe9 +WT9S1wob7BDWZJRroYGUpIGRMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex +FjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMw +EQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3 +DQEJARYNcmVAcGF5cGFsLmNvbYIBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB +BQUAA4GBAIFfOlaagFrl71+jq6OKidbWFSE+Q4FqROvdgIONth+8kSK//Y/4ihuE +4Ymvzn5ceE3S/iBSQQMjyvb+s2TWbQYDwcp129OPIbD9epdr4tJOUNiSojw7BHwY +RiPh58S1xGlFgHFXwrEBb3dgNbMUa+u4qectsMAXpVHnD9wIyfmH +-----END CERTIFICATE----- diff --git a/dev/swagger.json b/dev/swagger.json new file mode 100644 index 0000000..7506f6f --- /dev/null +++ b/dev/swagger.json @@ -0,0 +1,4903 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "SumUp REST API", + "version": "1.0.0", + "contact": { + "email": "integration@sumup.com" + }, + "description": "# Authentication\n\n" + }, + "servers": [ + { + "url": "https://api.sumup.com/{version}", + "description": "Production server", + "variables": { + "version": { + "enum": [ + "v0.1", + "v1.0" + ], + "default": "v0.1", + "description": "Version of the API." + } + } + } + ], + "tags": [ + { + "name": "Checkouts", + "description": "View and manage payment checkouts." + }, + { + "name": "Customers", + "description": "View and manage saved customers and their payment instruments." + }, + { + "name": "Transactions", + "description": "View transactions." + }, + { + "name": "Payouts", + "description": "View list of transactions and payouts." + }, + { + "name": "Refunds", + "description": "Refund a transaction." + }, + { + "name": "Receipts", + "description": "View receipts." + }, + { + "name": "Account Details", + "description": "Account Details." + }, + { + "name": "Personal Account", + "description": "Personal Account." + }, + { + "name": "Merchant Account", + "description": "Manage merchant account." + }, + { + "name": "Subaccounts", + "description": "Manage subaccounts." + } + ], + "paths": { + "/checkouts": { + "post": { + "summary": "Create a checkout", + "description": "Creates a new payment checkout resource.", + "tags": [ + "Checkouts" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/CheckoutCreate" + }, + "responses": { + "201": { + "$ref": "#/components/responses/CheckoutCreate" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorExtended" + }, + "examples": { + "Missing_Parameter": { + "description": "A required parameter is missing.", + "value": { + "message": "Validation error", + "error_code": "MISSING", + "param": "pay_to_email" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Existing_Checkout": { + "description": "A resource with the specified parameters already exists on the server.", + "value": { + "error_code": "DUPLICATED_CHECKOUT", + "message": "Checkout with this checkout reference and pay to email already exists" + } + } + } + } + } + } + } + }, + "get": { + "summary": "List checkouts", + "description": "Lists checkout resources according to specified criteria.", + "tags": [ + "Checkouts" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/CheckoutReference" + }, + { + "$ref": "#/components/parameters/ClientTransactionID" + }, + { + "$ref": "#/components/parameters/MerchantCode" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/CheckoutList" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/checkouts/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/CheckoutID" + } + ], + "get": { + "summary": "Retrieve a checkout", + "description": "Retrieves an identified checkout resource.", + "tags": [ + "Checkouts" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Checkout" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + }, + "put": { + "summary": "Process a checkout", + "description": "Processes an identified checkout resource with the specified payment instrument and create a transaction.", + "tags": [ + "Checkouts" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/CheckoutProcess" + }, + "responses": { + "200": { + "$ref": "#/components/responses/CheckoutProcess" + }, + "400": { + "$ref": "#/components/responses/ErrorBadRequest" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + }, + "409": { + "$ref": "#/components/responses/ErrorConflict" + } + } + }, + "delete": { + "summary": "Deactivate a checkout", + "description": "Deactivates an identified checkout resource.", + "tags": [ + "Checkouts" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Checkout" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + }, + "409": { + "$ref": "#/components/responses/ErrorConflict" + } + } + } + }, + "/customers": { + "post": { + "summary": "Create a customer", + "description": "Creates a new saved customer resource.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/CustomerCreate" + }, + "responses": { + "201": { + "$ref": "#/components/responses/CustomerCreate" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Existing_Customer": { + "description": "A resource with the specified identifier already exists on the server.", + "value": { + "message": "Customer already exists", + "error_code": "CUSTOMER_ALREADY_EXISTS" + } + } + } + } + } + } + } + } + }, + "/customers/{customer_id}": { + "parameters": [ + { + "$ref": "#/components/parameters/CustomerID" + } + ], + "get": { + "summary": "Retrieve a customer", + "description": "Retrieves an identified saved customer resource.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Customer" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + }, + "put": { + "summary": "Update a customer", + "description": "Updates an identified saved customer resource.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/CustomerUpdate" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Customer" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + } + }, + "/customers/{customer_id}/payment-instruments": { + "parameters": [ + { + "$ref": "#/components/parameters/CustomerID" + } + ], + "post": { + "summary": "Create a payment instrument", + "description": "Creates and activates a new payment instrument resource by saving a payment card for an identified customer.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/PaymentInstrument" + }, + "responses": { + "201": { + "$ref": "#/components/responses/PaymentInstrumentCreate" + }, + "400": { + "$ref": "#/components/responses/ErrorBadRequest" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Checkout_Processed": { + "description": "The maximum number of payment instruments per customer is reached. Currently, the maximum allowed number is 4.", + "value": { + "error_code": "MAX_INSTRUMENT_COUNT", + "message": "Max number of payment instruments on file reached" + } + } + } + } + } + } + } + }, + "get": { + "summary": "List payment instruments", + "description": "Lists all payment instrument resources that are saved for an identified customer.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/PaymentInstrumentList" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + } + }, + "/customers/{customer_id}/payment-instruments/{token}": { + "parameters": [ + { + "$ref": "#/components/parameters/CustomerID" + }, + { + "$ref": "#/components/parameters/Token" + } + ], + "delete": { + "summary": "Deactivate a payment instrument", + "description": "Deactivates an identified card payment instrument resource for a customer.", + "tags": [ + "Customers" + ], + "security": [ + { + "accessToken": [ + "payment_instruments" + ] + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/NoBodyResponse" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + } + }, + "/me/refund/{txn_id}": { + "parameters": [ + { + "$ref": "#/components/parameters/TxnID" + } + ], + "post": { + "summary": "Refund a transaction", + "description": "Refunds an identified transaction either in full or partially.", + "tags": [ + "Refunds" + ], + "security": [ + { + "accessToken": [ + "payments" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/Refund" + }, + "responses": { + "204": { + "$ref": "#/components/responses/NoBodyResponse" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Transaction_Not_Refundable": { + "description": "The state of the identified transaction resource does not permit the requested operation.", + "value": { + "error_code": "CONFLICT", + "message": "The transaction is not refundable in its current state" + } + } + } + } + } + } + } + } + }, + "/me/transactions": { + "get": { + "summary": "Retrieve a transaction", + "description": "Retrieves the full details of an identified transaction. The transaction resource is identified by a query parameter and *one* of following parameters is required:\n * `id`\n * `internal_id`\n * `transaction_code`\n", + "tags": [ + "Transactions" + ], + "security": [ + { + "accessToken": [ + "transactions.history" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/TransactionID" + }, + { + "$ref": "#/components/parameters/TransactionInternalID" + }, + { + "$ref": "#/components/parameters/TransactionCode" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Transaction" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + } + }, + "/me/transactions/history": { + "get": { + "summary": "List transactions", + "description": "Lists detailed history of all transactions associated with the merchant account.", + "tags": [ + "Transactions" + ], + "security": [ + { + "accessToken": [ + "transactions.history" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/TransactionCode" + }, + { + "$ref": "#/components/parameters/OrderFilter" + }, + { + "$ref": "#/components/parameters/LimitFilter" + }, + { + "$ref": "#/components/parameters/UserIDFilter" + }, + { + "$ref": "#/components/parameters/UsersFilter" + }, + { + "$ref": "#/components/parameters/StatusesFilter" + }, + { + "$ref": "#/components/parameters/PaymentTypesFilter" + }, + { + "$ref": "#/components/parameters/TypesFilter" + }, + { + "$ref": "#/components/parameters/ChangesSinceFilter" + }, + { + "$ref": "#/components/parameters/NewestTimeFilter" + }, + { + "$ref": "#/components/parameters/NewestRefFilter" + }, + { + "$ref": "#/components/parameters/OldestTimeFilter" + }, + { + "$ref": "#/components/parameters/OldestRefFilter" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/TransactionList" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me": { + "get": { + "summary": "Retrieve an account", + "description": "Returns user account information.", + "tags": [ + "Account Details" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/MerchantAccount" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/MerchantAccount" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me/accounts": { + "post": { + "summary": "Create a subaccount", + "tags": [ + "Subaccounts" + ], + "security": [ + { + "accessToken": [ + "user.subaccounts" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/SubaccountPayload" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Subaccount" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + } + } + }, + "get": { + "summary": "List subaccounts", + "tags": [ + "Subaccounts" + ], + "security": [ + { + "accessToken": [ + "user.subaccounts" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Subaccounts" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Subaccounts" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + } + } + } + }, + "/me/accounts/{operator_code}": { + "put": { + "summary": "Update a subaccount", + "tags": [ + "Subaccounts" + ], + "security": [ + { + "accessToken": [ + "user.subaccounts" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Subaccount" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/SubaccountPayload" + }, + "responses": { + "200": { + "$ref": "#/components/responses/Subaccount" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + }, + "delete": { + "summary": "Deactivate a subaccount", + "tags": [ + "Subaccounts" + ], + "security": [ + { + "accessToken": [ + "user.subaccounts" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/Subaccount" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Subaccount" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "404": { + "$ref": "#/components/responses/ErrorNotFound" + } + } + } + }, + "/me/financials/payouts": { + "get": { + "summary": "List payouts", + "description": "Lists ordered payouts for the merchant account.", + "tags": [ + "Payouts" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "parameters": [ + { + "in": "path", + "name": "start_date", + "description": "Start date (in ISO8601 format).", + "required": true, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "in": "path", + "name": "end_date", + "description": "End date (in ISO8601 format).", + "required": true, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "in": "path", + "name": "format", + "required": false, + "schema": { + "type": "string", + "enum": [ + "json", + "csv" + ] + } + }, + { + "in": "path", + "name": "limit", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "in": "path", + "name": "order", + "required": false, + "schema": { + "type": "string", + "enum": [ + "desc", + "asc" + ] + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/FinancialPayouts" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me/financials/transactions": { + "get": { + "summary": "List transactions", + "description": "Lists a less detailed history of all transactions associated with the merchant account.", + "tags": [ + "Payouts" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "parameters": [ + { + "in": "path", + "name": "start_date", + "required": true, + "description": "Start date (in ISO8601 format).", + "schema": { + "type": "string", + "format": "date" + } + }, + { + "in": "path", + "name": "end_date", + "description": "End date (in ISO8601 format).", + "required": true, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "in": "path", + "name": "format", + "required": false, + "schema": { + "type": "string", + "enum": [ + "json", + "csv" + ] + } + }, + { + "in": "path", + "name": "limit", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "in": "path", + "name": "order", + "required": false, + "schema": { + "type": "string", + "enum": [ + "desc", + "asc" + ] + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/FinancialTransactions" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me/personal-profile": { + "put": { + "summary": "Create a profile", + "description": "Add personal profile data for an user.", + "tags": [ + "Personal Account" + ], + "security": [ + { + "accessToken": [ + "user.profile" + ] + } + ], + "parameters": [], + "requestBody": { + "$ref": "#/components/requestBodies/PersonalProfile" + }, + "responses": { + "200": { + "$ref": "#/components/responses/PersonalProfile" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorExtended" + }, + "examples": { + "Missing_Parameter": { + "description": "A required parameter is missing.", + "value": { + "message": "Validation error", + "error_code": "MISSING", + "param": "date_of_birth" + } + }, + "Invalid_Parameter": { + "description": "A supplied parameter is not valid.", + "value": { + "message": "Validation error", + "error_code": "INVALID", + "param": "national_id" + } + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Existing_Personal_Profile": { + "description": "A resource with the specified identifier already exists on the server.", + "value": { + "message": "Resource already exists", + "error_code": "ALREADY_EXISTS" + } + } + } + } + } + } + } + }, + "get": { + "summary": "Retrieve a profile", + "description": "Retrives personal profile data.", + "tags": [ + "Personal Account" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "parameters": [], + "responses": { + "200": { + "$ref": "#/components/responses/PersonalProfile" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me/merchant-profile": { + "put": { + "summary": "Create a profile", + "description": "Creates merchant profile.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.profile" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/MerchantProfile" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MerchantProfile" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Existing_Personal_Profile": { + "description": "A resource with the specified identifier already exists on the server.", + "value": { + "message": "Resource already exists", + "error_code": "ALREADY_EXISTS" + } + } + } + } + } + } + } + }, + "get": { + "summary": "Retrieve a profile", + "description": "Retrieves merchant profile data.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/MerchantProfile" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + } + } + } + }, + "/me/merchant-profile/doing-business-as": { + "put": { + "summary": "Update DBA", + "description": "Creates or Updates Doing Business As profile.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.profile" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/DoingBusinessAs" + }, + "responses": { + "200": { + "$ref": "#/components/responses/DoingBusinessAs" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "merchant_account_missing": { + "value": { + "error_code": "merchant_account_missing", + "message": "Operation cannot be applied on missing merchant profile. Create merchant profile first." + } + } + } + } + } + } + } + }, + "get": { + "summary": "Retrieve DBA", + "description": "Retrieves Doing Business As profile.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.profile", + "user.profile_readonly" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/DoingBusinessAs" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + }, + "/me/merchant-profile/bank-accounts": { + "post": { + "summary": "Create a bank account", + "description": "Add bank account to the merchant profile.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.payout-settings" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/BankAccounts" + }, + "responses": { + "200": { + "$ref": "#/components/responses/BankAccounts" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "merchant_account_missing": { + "value": { + "error_code": "merchant_account_missing", + "message": "Operation cannot be applied on missing merchant profile. Create merchant profile first." + } + }, + "max_number_of_bank_accounts_exceeded": { + "value": { + "error_code": "max_number_of_bank_accounts_exceeded", + "message": "User has exceeded the max number of bank accounts." + } + }, + "cannot_add_bank_account": { + "value": { + "error_code": "cannot_add_bank_account", + "message": "User has a pending bank account verification." + } + } + } + } + } + } + } + }, + "get": { + "summary": "List bank accounts", + "description": "Retrives bank accounts of the merchant.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.payout-settings", + "user.profile", + "user.profile_readonly" + ] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/BankAccounts" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/BankAccounts" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + } + } + } + }, + "/me/merchant-profile/settings": { + "get": { + "summary": "List settings", + "description": "Retrieves merchant settings.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.payout-settings" + ] + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/MerchantSettings" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + } + } + }, + "put": { + "summary": "Update settings", + "description": "Update merchant settings.", + "tags": [ + "Merchant Account" + ], + "security": [ + { + "accessToken": [ + "user.payout-settings" + ] + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/MerchantSettings" + }, + "responses": { + "200": { + "$ref": "#/components/responses/MerchantSettings" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + }, + "403": { + "$ref": "#/components/responses/ErrorForbidden" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "merchant_account_missing": { + "value": { + "error_code": "merchant_account_missing", + "message": "Operation cannot be applied on missing merchant profile. Create merchant profile first." + } + } + } + } + } + } + } + } + }, + "/receipts/:id": { + "get": { + "summary": "Retrieve receipt details", + "description": "Retrieves receipt specific data for a transaction.", + "tags": [ + "Receipts" + ], + "security": [ + { + "accessToken": [] + } + ], + "servers": [ + { + "url": "https://api.sumup.com/v1.0" + } + ], + "parameters": [ + { + "in": "query", + "name": "id", + "description": "SumUp unique transaction ID or transaction code, e.g. TS7HDYLSKD.", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "mid", + "description": "Merchant code.", + "required": true, + "type": "string" + }, + { + "in": "query", + "name": "tx_event_id", + "description": "The ID of the transaction event (refund).", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/Receipts" + }, + "400": { + "$ref": "#/components/responses/ErrorNotFound" + }, + "401": { + "$ref": "#/components/responses/ErrorNotAuthorized" + } + } + } + } + }, + "components": { + "schemas": { + "Account": { + "type": "object", + "decription": "Account information.", + "properties": { + "username": { + "type": "string", + "description": "Type of the account." + }, + "type": { + "type": "string", + "description": "The role of the user.", + "enum": [ + "normal", + "operator" + ] + } + } + }, + "Address": { + "type": "object", + "description": "Account's personal address information.", + "properties": { + "city": { + "type": "string", + "description": "City name from the address." + }, + "country": { + "type": "string", + "description": "Country name from the address." + }, + "line1": { + "type": "string", + "description": "First line of the address with details of the street name and number." + }, + "line2": { + "type": "string", + "description": "Second line of the address with details of the building, unit, apartment, and floor numbers." + }, + "postal_code": { + "type": "string", + "description": "Postal code from the address." + }, + "state": { + "type": "string", + "description": "State name or abbreviation from the address." + } + } + }, + "AddressWithDetails": { + "type": "object", + "description": "Details of the registered address.", + "required": [ + "address_line1", + "city", + "country", + "post_code" + ], + "properties": { + "address_line1": { + "type": "string", + "description": "Address line 1" + }, + "address_line2": { + "type": "string", + "description": "Address line 2" + }, + "city": { + "type": "string", + "description": "City" + }, + "country": { + "type": "string", + "description": "Country ISO 3166-1 code" + }, + "region_id": { + "type": "number", + "description": "Country region id" + }, + "region_name": { + "type": "string", + "description": "Region name" + }, + "region_code": { + "type": "string", + "description": "Region code" + }, + "post_code": { + "type": "string", + "description": "Postal code" + }, + "landline": { + "type": "string", + "description": "Landline number" + }, + "first_name": { + "type": "string", + "description": "undefined" + }, + "last_name": { + "type": "string", + "description": "undefined" + }, + "company": { + "type": "string", + "description": "undefined" + }, + "country_details": { + "$ref": "#/components/schemas/CountryDetails" + }, + "timeoffset_details": { + "$ref": "#/components/schemas/TimeoffsetDetails" + }, + "state_id": { + "type": "string", + "description": "undefined" + } + } + }, + "AddressPayload": { + "type": "object", + "description": "Account's personal address", + "required": [ + "address_line1", + "city", + "country", + "post_code" + ], + "properties": { + "address_line1": { + "type": "string", + "description": "Address line 1" + }, + "address_line2": { + "type": "string", + "description": "Address line 2" + }, + "city": { + "type": "string", + "description": "City" + }, + "country": { + "type": "string", + "description": "Country ISO 3166-1 code" + }, + "region_id": { + "type": "number", + "description": "Country region id" + }, + "region_name": { + "type": "string", + "description": "Country region name" + }, + "post_code": { + "type": "string", + "description": "Postal code" + }, + "landline": { + "type": "string", + "description": "Landline number" + }, + "first_name": { + "type": "string", + "description": "First name" + }, + "last_name": { + "type": "string", + "description": "Last name" + }, + "company": { + "type": "string", + "description": "Company name" + } + } + }, + "AppSettings": { + "type": "object", + "description": "Mobile app settings", + "properties": { + "checkout_preference": { + "type": "string", + "description": "Checkout preference" + }, + "include_vat": { + "type": "boolean", + "description": "Include vat." + }, + "manual_entry_tutorial": { + "type": "boolean", + "description": "Manual entry tutorial." + }, + "mobile_payment_tutorial": { + "type": "boolean", + "description": "Mobile payment tutorial." + }, + "tax_enabled": { + "type": "boolean", + "description": "Tax enabled." + }, + "mobile_payment": { + "type": "string", + "description": "Mobile payment." + }, + "reader_payment": { + "type": "string", + "description": "Reader payment." + }, + "cash_payment": { + "type": "string", + "description": "Cash payment." + }, + "advanced_mode": { + "type": "string", + "description": "Advanced mode." + }, + "expected_max_transaction_amount": { + "type": "number", + "description": "Expected max transaction amount." + }, + "bitcoin_payment": { + "type": "string", + "description": "Bitcoin payment." + }, + "manual_entry": { + "type": "string", + "description": "Manual entry." + }, + "terminal_mode_tutorial": { + "type": "boolean", + "description": "Terminal mode tutorial." + }, + "tipping": { + "type": "string", + "description": "Tipping." + }, + "tip_rates": { + "type": "array", + "description": "Tip rates.", + "items": { + "type": "number", + "format": "float" + } + }, + "barcode_scanner": { + "type": "string", + "description": "Barcode scanner." + }, + "referral": { + "type": "string", + "description": "Referral." + } + } + }, + "BankAccount": { + "type": "object", + "properties": { + "bank_code": { + "type": "string", + "description": "Bank code" + }, + "branch_code": { + "type": "string", + "description": "Branch code" + }, + "swift": { + "type": "string", + "description": "SWIFT code" + }, + "account_number": { + "type": "string", + "description": "Account number" + }, + "iban": { + "type": "string", + "description": "IBAN" + }, + "account_type": { + "type": "string", + "description": "Type of the account" + }, + "account_category": { + "type": "string", + "description": "Account category - business or personal" + }, + "account_holder_name": { + "type": "string" + }, + "status": { + "type": "string", + "description": "Status in the verification process" + }, + "primary": { + "type": "boolean", + "description": "The primary bank account is the one used for settlemnts" + }, + "created_at": { + "type": "string", + "description": "Creation date of the bank account" + }, + "bank_name": { + "type": "string", + "description": "Bank name" + } + } + }, + "BankAccountPayload": { + "type": "object", + "required": [ + "account_holder_name", + "iban", + "swift" + ], + "properties": { + "bank_code": { + "type": "string", + "description": "Bank code" + }, + "branch_code": { + "type": "string", + "description": "Branch code" + }, + "account_number": { + "type": "string", + "description": "Account number" + }, + "iban": { + "type": "string", + "description": "IBAN" + }, + "swift": { + "type": "string", + "description": "SWIFT code" + }, + "account_type": { + "type": "string", + "description": "Type of the account.", + "enum": [ + "CURRENT", + "SAVINGS" + ] + }, + "account_holder_name": { + "type": "string", + "description": "Account holder name" + }, + "check_digit": { + "type": "string", + "description": "Check digit" + }, + "primary": { + "type": "boolean", + "description": "Determines if this bank account will be primary. Default is false" + }, + "status": { + "type": "string", + "description": "Determines the bank account status.", + "enum": [ + "OPEN" + ] + }, + "account_category": { + "type": "string", + "description": "Determines if this bank account is business or personal.", + "enum": [ + "PERSONAL", + "BUSINESS" + ] + } + } + }, + "BusinessOwners": { + "type": "array", + "description": "Account's business address information", + "items": { + "type": "object", + "properties": { + "first_name": { + "type": "string", + "description": "BO's first name" + }, + "last_name": { + "type": "string", + "description": "BO's last name of the user" + }, + "date_of_birth": { + "type": "string", + "description": "Date of birth" + }, + "mobile_phone": { + "type": "string", + "description": "Mobile phone number" + }, + "landline": { + "type": "string", + "description": "BO's Landline" + }, + "ownership": { + "type": "number", + "description": "Ownership percentage" + } + } + } + }, + "Card": { + "type": "object", + "description": "Details of the payment card.", + "properties": { + "name": { + "type": "string", + "description": "Name of the cardholder as it appears on the payment card.", + "writeOnly": true, + "example": "FIRSTNAME LASTNAME" + }, + "number": { + "type": "string", + "description": "Number of the payment card (without spaces).", + "writeOnly": true, + "example": "1234567890123456" + }, + "expiry_year": { + "type": "string", + "description": "Year from the expiration time of the payment card. Accepted formats are `YY` and `YYYY`.", + "writeOnly": true, + "minLength": 2, + "maxLength": 4, + "example": "2023" + }, + "expiry_month": { + "type": "string", + "description": "Month from the expiration time of the payment card. Accepted format is `MM`.", + "writeOnly": true, + "enum": [ + "01", + "02", + "03", + "04", + "05", + "06", + "07", + "08", + "09", + "10", + "11", + "12" + ] + }, + "cvv": { + "type": "string", + "description": "Three-digit card verification value (security code) of the payment card.", + "writeOnly": true, + "maxLength": 3, + "minLength": 3, + "example": "123" + }, + "last_4_digits": { + "type": "string", + "description": "Last 4 digits of the payment card number.", + "readOnly": true, + "minLength": 4, + "maxLength": 4, + "example": "3456" + }, + "type": { + "type": "string", + "description": "Issuing card network of the payment card.", + "readOnly": true, + "enum": [ + "AMEX", + "CUP", + "DINERS", + "DISCOVER", + "ELO", + "ELV", + "HIPERCARD", + "JCB", + "MAESTRO", + "MASTERCARD", + "VISA", + "VISA_ELECTRON", + "VISA_VPAY", + "UNKNOWN" + ] + } + }, + "required": [ + "name", + "number", + "expiry_month", + "expiry_year", + "cvv", + "last_4_digits", + "type" + ] + }, + "Checkout": { + "type": "object", + "description": "Details of the payment checkout.", + "properties": { + "checkout_reference": { + "type": "string", + "description": "Unique ID of the payment checkout specified by the client application when creating the checkout resource." + }, + "amount": { + "type": "number", + "format": "float", + "description": "Amount of the payment." + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "pay_to_email": { + "type": "string", + "format": "email", + "description": "Email address of the registered user (merchant) to whom the payment is made." + }, + "pay_from_email": { + "type": "string", + "format": "email", + "description": "Email address of the registered user (merchant) who is making the payment." + }, + "description": { + "type": "string", + "description": "Short description of the payment." + }, + "return_url": { + "type": "string", + "format": "uri", + "description": "URL to which the SumUp platform sends the processing status of the payment checkout." + }, + "id": { + "type": "string", + "description": "Unique ID of the checkout resource.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "Currrent status of the checkout.", + "readOnly": true, + "enum": [ + "PENDING", + "FAILED", + "PAID" + ] + }, + "date": { + "type": "string", + "format": "date-time", + "description": "Date and time of the creation of the payment checkout.", + "readOnly": true + }, + "valid_until": { + "type": "string", + "format": "date-time", + "description": "Date and time of the checkout expiration before which the client application needs to send a processing request. If no value is present, the checkout does not have an expiration time.", + "readOnly": true, + "nullable": true + }, + "transactions": { + "type": "array", + "description": "List of transactions related to the payment.", + "readOnly": true, + "uniqueItems": true, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/TransactionMixinBase" + }, + { + "$ref": "#/components/schemas/TransactionMixinCheckout" + } + ] + } + } + }, + "required": [ + "checkout_reference", + "amount", + "currency", + "pay_to_email", + "id", + "status", + "date", + "transactions" + ] + }, + "CheckoutProcessMixin": { + "type": "object", + "description": "Details of the payment instrument for processing the checkout.", + "properties": { + "payment_type": { + "type": "string", + "description": "Type of payment instrument used for processing the checkout.", + "enum": [ + "card" + ] + }, + "installments": { + "type": "integer", + "description": "Number of installments for deferred payments. Available only to merchant users in Brazil.", + "minimum": 1, + "maximum": 12 + } + }, + "required": [ + "payment_type" + ] + }, + "CheckoutProcessCard": { + "allOf": [ + { + "$ref": "#/components/schemas/CheckoutProcessMixin" + }, + { + "type": "object", + "properties": { + "card": { + "$ref": "#/components/schemas/Card" + } + }, + "required": [ + "card" + ] + } + ] + }, + "CheckoutProcessToken": { + "allOf": [ + { + "$ref": "#/components/schemas/CheckoutProcessMixin" + }, + { + "type": "object", + "properties": { + "token": { + "type": "string", + "description": "Unique token identifying the saved payment card for a customer." + }, + "customer_id": { + "$ref": "#/components/schemas/CustomerID" + } + }, + "required": [ + "token", + "customer_id" + ] + } + ] + }, + "CheckoutSuccess": { + "allOf": [ + { + "$ref": "#/components/schemas/Checkout" + }, + { + "type": "object", + "properties": { + "transaction_code": { + "type": "string", + "description": "Transaction code of the successful transaction with which the payment for the checkout is completed.", + "readOnly": true + }, + "transaction_id": { + "type": "string", + "description": "Transaction ID of the successful transaction with which the payment for the checkout is completed.", + "readOnly": true + } + } + } + ] + }, + "Customer": { + "type": "object", + "description": "Details of the customer.", + "required": [ + "customer_id" + ], + "properties": { + "customer_id": { + "$ref": "#/components/schemas/CustomerID" + }, + "personal_details": { + "$ref": "#/components/schemas/PersonalDetails" + } + } + }, + "CountryDetails": { + "type": "object", + "description": "Country Details", + "properties": { + "currency": { + "type": "string", + "description": "Currency ISO 4217 code" + }, + "iso_code": { + "type": "string", + "description": "Country ISO code" + }, + "en_name": { + "type": "string", + "description": "Country EN name" + }, + "native_name": { + "type": "string", + "description": "Country native name" + } + } + }, + "DoingBusinessAs": { + "type": "object", + "description": "Doing Business As information", + "properties": { + "business_name": { + "type": "string", + "description": "Doing business as name" + }, + "company_registration_number": { + "type": "string", + "description": "Doing business as company registration number" + }, + "vat_id": { + "type": "string", + "description": "Doing business as vat id" + }, + "website": { + "type": "string", + "description": "Doing business as website" + }, + "email": { + "type": "string", + "description": "Doing business as email" + }, + "address": { + "properties": { + "address_line1": { + "type": "string", + "description": "Address line 1" + }, + "address_line2": { + "type": "string", + "description": "Address line 2" + }, + "city": { + "type": "string", + "description": "City" + }, + "country": { + "type": "string", + "description": "Country ISO 3166-1 code" + }, + "region_id": { + "type": "number", + "description": "Country region id" + }, + "region_name": { + "type": "string", + "description": "Country region name" + }, + "post_code": { + "type": "string", + "description": "Postal code" + } + } + } + } + }, + "DoingBusinessAsPayload": { + "type": "object", + "description": "Doing Business As information", + "properties": { + "business_name": { + "type": "string", + "description": "Doing business as name" + }, + "tax_id": { + "type": "string", + "description": "Doing business as Tax ID" + }, + "vat_id": { + "type": "string", + "description": "Doing business as Vat ID" + }, + "website": { + "type": "string", + "description": "Doing business as website" + }, + "email": { + "type": "string", + "description": "Doing business as email" + }, + "address": { + "$ref": "#/components/schemas/AddressPayload" + } + } + }, + "Error": { + "type": "object", + "description": "Error message structure.", + "required": [ + "message", + "error_code" + ], + "properties": { + "message": { + "type": "string", + "description": "Short description of the error." + }, + "error_code": { + "type": "string", + "description": "Platform code for the error." + } + } + }, + "ErrorExtended": { + "allOf": [ + { + "$ref": "#/components/schemas/Error" + }, + { + "type": "object", + "required": [ + "param" + ], + "properties": { + "param": { + "type": "string", + "description": "Parameter name (with relative location) to which the error applies. Parameters from embedded resources are displayed using dot notation. For example, `card.name` refers to the `name` parameter embedded in the `card` object." + } + } + } + ] + }, + "ErrorForbidden": { + "type": "object", + "description": "Error message for forbidden requests.", + "required": [ + "error_message", + "error_code", + "status_code" + ], + "properties": { + "error_message": { + "type": "string", + "description": "Short description of the error." + }, + "error_code": { + "type": "string", + "description": "Platform code for the error." + }, + "status_code": { + "type": "string", + "description": "HTTP status code for the error." + } + } + }, + "Event": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/EventID" + }, + "transaction_id": { + "$ref": "#/components/schemas/TransactionID" + }, + "type": { + "$ref": "#/components/schemas/EventType" + }, + "status": { + "$ref": "#/components/schemas/EventStatus" + }, + "amount": { + "$ref": "#/components/schemas/AmountEvent" + }, + "timestamp": { + "$ref": "#/components/schemas/TimestampEvent" + }, + "fee_amount": { + "type": "number", + "format": "float", + "description": "Amount of the fee related to the event." + }, + "installment_number": { + "type": "integer", + "description": "Consequtive number of the installment." + }, + "deducted_amount": { + "type": "number", + "format": "float", + "description": "Amount deducted for the event." + }, + "deducted_fee_amount": { + "type": "number", + "format": "float", + "description": "Amount of the fee deducted for the event." + } + } + }, + "FinancialPayouts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "float" + }, + "currency": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date" + }, + "fee": { + "type": "number", + "format": "float" + }, + "id": { + "type": "integer" + }, + "reference": { + "type": "string" + }, + "status": { + "type": "string" + }, + "transaction_code": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "PAYOUT", + "CHARGE_BACK_DEDUCTION", + "REFUND_DEDUCTION", + "DD_RETURN_DEDUCTION", + "BALANCE_DEDUCTION" + ] + } + } + } + }, + "FinancialTransactions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "format": "float" + }, + "currency": { + "type": "string" + }, + "external_reference": { + "type": "string" + }, + "id": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "transaction_code": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "SALE", + "REFUND", + "CHARGE_BACK", + "DD_RETURN", + "DD_RETURN_REVERSAL" + ] + } + } + } + }, + "LegalType": { + "type": "object", + "description": "Id of the legal type of the merchant profile", + "properties": { + "id": { + "type": "number", + "description": "Unique id" + }, + "full_description": { + "type": "string", + "description": "Legal type description" + }, + "description": { + "type": "string", + "description": "Legal type short description" + }, + "sole_trader": { + "type": "boolean", + "description": "Sole trader legal type if true" + } + } + }, + "Link": { + "type": "object", + "description": "Details of a link to a related resource.", + "properties": { + "rel": { + "type": "string", + "description": "Specifies the relation to the current resource." + }, + "href": { + "type": "string", + "format": "uri", + "description": "URL for accessing the related resource." + }, + "type": { + "type": "string", + "description": "Specifies the media type of the related resource." + } + } + }, + "MerchantAccount": { + "type": "object", + "decription": "Details of user account.", + "properties": { + "account": { + "$ref": "#/components/schemas/Account" + }, + "personal_profile": { + "$ref": "#/components/schemas/PersonalProfile" + }, + "merchant_profile": { + "$ref": "#/components/schemas/MerchantProfile" + }, + "operators": { + "$ref": "#/components/schemas/Operators" + }, + "app_settings": { + "$ref": "#/components/schemas/AppSettings" + }, + "permissions": { + "$ref": "#/components/schemas/Permissions" + }, + "is_migrated_payleven_br": { + "type": "boolean", + "description": "Merchant comes from payleven BR migration?" + } + } + }, + "MerchantProfile": { + "type": "object", + "description": "Account's merchant profile", + "required": [ + "legal_type_id", + "merchant_category_code", + "company_name", + "address" + ], + "properties": { + "merchant_code": { + "type": "string", + "description": "Unique identifying code of the merchant profile" + }, + "company_name": { + "type": "string", + "description": "Company name" + }, + "website": { + "type": "string", + "description": "Website" + }, + "legal_type": { + "$ref": "#/components/schemas/LegalType" + }, + "merchant_category_code": { + "type": "string", + "description": "Merchant category code" + }, + "mobile_phone": { + "type": "string", + "description": "Mobile phone number" + }, + "company_registration_number": { + "type": "string", + "description": "Company registration number" + }, + "vat_id": { + "type": "string", + "description": "Vat ID" + }, + "permanent_certificate_access_code": { + "type": "string", + "description": "Permanent certificate access code (Portugal)" + }, + "nature_and_purpose": { + "type": "string", + "description": "Nature and purpose of the business" + }, + "address": { + "$ref": "#/components/schemas/AddressWithDetails" + }, + "business_owners": { + "$ref": "#/components/schemas/BusinessOwners" + }, + "doing_business_as": { + "$ref": "#/components/schemas/DoingBusinessAs" + }, + "settings": { + "$ref": "#/components/schemas/MerchantSettings" + }, + "vat_rates": { + "$ref": "#/components/schemas/VatRates" + }, + "shelves": { + "$ref": "#/components/schemas/Shelves" + }, + "locale": { + "type": "string", + "description": "Merchant locale (for internal usage only)" + }, + "bank_accounts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BankAccount" + } + }, + "extdev": { + "type": "boolean", + "description": "True if the merchant is extdev" + }, + "payout_zone_migrated": { + "type": "boolean", + "description": "True if the payout zone of this merchant is migrated" + }, + "country": { + "type": "string", + "description": "Merchant country isocode (for internal usage only)" + } + } + }, + "MerchantProfilePayload": { + "type": "object", + "description": "Account's merchant profile", + "required": [ + "legal_type_id", + "company_registration_number", + "merchant_category_code", + "company_name", + "address" + ], + "properties": { + "legal_type_id": { + "type": "number", + "description": "Id of the legal type of the merchant" + }, + "merchant_category_code": { + "type": "string", + "description": "Merchant category code" + }, + "company_name": { + "type": "string", + "description": "Company name" + }, + "company_registration_number": { + "type": "string", + "description": "Company registration number" + }, + "vat_id": { + "type": "string", + "description": "Vat ID" + }, + "permanent_certificate_access_code": { + "type": "string", + "description": "Payment certificate access code" + }, + "website": { + "type": "string", + "description": "Company website" + }, + "nature_and_purpose": { + "type": "string", + "description": "Nature and purpose of the business. Required for the following merchant category codes: 5999, 7392, 8999, 5694, 5969, 7299, 7399" + }, + "mobile_phone": { + "type": "string", + "description": "Mobile number" + }, + "address": { + "$ref": "#/components/schemas/AddressPayload" + }, + "doing_business_as": { + "type": "object", + "properties": { + "business_name": { + "type": "string", + "description": "Doing business as name" + }, + "tax_id": { + "type": "string", + "description": "Doing business as Tax ID" + }, + "vat_id": { + "type": "string", + "description": "Doing business as Vat ID" + }, + "website": { + "type": "string", + "description": "Doing business as website" + }, + "email": { + "type": "string", + "description": "Doing business as email" + }, + "address": { + "$ref": "#/components/schemas/AddressPayload" + } + } + }, + "business_owners": { + "$ref": "#/components/schemas/BusinessOwners" + }, + "is_test_account": { + "type": "boolean", + "description": "Is it test account?" + } + } + }, + "MerchantSettings": { + "type": "object", + "description": "Merchant settings (like \\\"payout_type\\\", \\\"payout_period\\\")", + "properties": { + "tax_enabled": { + "type": "boolean", + "description": "Whether to show tax in receipts (saved per transaction)" + }, + "payout_type": { + "type": "string", + "description": "Payout type" + }, + "payout_period": { + "type": "string", + "description": "Payout frequency" + }, + "payout_on_demand_available": { + "type": "boolean", + "description": "Whether merchant can edit payouts on demand" + }, + "payout_on_demand": { + "type": "boolean", + "description": "Whether merchant will receive payouts on demand" + }, + "printers_enabled": { + "type": "boolean", + "description": "Whether to show printers in mobile app" + }, + "payout_instrument": { + "type": "string", + "description": "Payout Instrument" + }, + "moto_payment": { + "type": "string", + "description": "Whether merchant can make MOTO payments", + "enum": [ + "UNAVAILABLE", + "ENFORCED", + "ON", + "OFF" + ] + }, + "stone_merchant_code": { + "type": "string", + "description": "Stone merchant code" + }, + "adyen_merchant_code": { + "type": "string", + "description": "Adyen merchant code" + }, + "adyen_user": { + "type": "string", + "description": "Adyen username" + }, + "adyen_password": { + "type": "string", + "description": "Adyen password" + }, + "adyen_company": { + "type": "string", + "description": "Adyen company" + }, + "daily_payout_email": { + "type": "boolean", + "description": "Whether merchant will receive daily payout emails" + }, + "monthly_payout_email": { + "type": "boolean", + "description": "Whether merchant will receive monthly payout emails" + }, + "gross_settlement": { + "type": "boolean", + "description": "Whether merchant has gross settlement enabled" + } + } + }, + "MerchantSettingsPayload": { + "type": "object", + "properties": { + "payout_period": { + "type": "string", + "description": "Payout period.", + "enum": [ + "dayly", + "weekly", + "monthly" + ] + }, + "payout_type": { + "type": "string", + "description": "Payout type.", + "enum": [ + "SINGLE_PAYMENT" + ] + }, + "payout_on_demand": { + "type": "boolean", + "description": "If true, the merchant will not receive automatic payouts." + }, + "payout_on_demand_available": { + "required": false, + "type": "string", + "description": "If true, the merchant will be able to manage payout_on_demand settings" + }, + "expected_max_transaction_amount": { + "type": "number", + "description": "Expected maximum amount of a single purchase" + }, + "printers_enabled": { + "type": "boolean", + "description": "Printers enabled." + }, + "gross_settlement": { + "type": "boolean", + "description": "Gross settlemnt" + } + } + }, + "Operators": { + "type": "array", + "items": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "Username of the operator" + } + } + } + }, + "PaymentInstrumentCard": { + "type": "object", + "description": "Details of the payment card that is saved as a payment instrument.", + "properties": { + "token": { + "type": "string", + "description": "Unique token identifying the saved payment card for a customer.", + "readOnly": true + }, + "active": { + "type": "boolean", + "description": "Indicates whether the payment instrument is active and can be used for payments. To deactivate it, send a `DELETE` request to the resource endpoint.", + "readOnly": true, + "default": true + }, + "type": { + "type": "string", + "description": "Type of the payment instrument.", + "enum": [ + "card" + ] + }, + "card": { + "$ref": "#/components/schemas/Card" + } + }, + "required": [ + "token", + "active", + "type", + "card" + ] + }, + "Permissions": { + "type": "object", + "description": "User permissions", + "properties": { + "create_moto_payments": { + "type": "boolean", + "description": "Create MOTO payments" + }, + "full_transaction_history_view": { + "type": "boolean", + "description": "Can view full merchant transaction history" + }, + "refund_transactions": { + "type": "boolean", + "description": "Refund transactions" + }, + "create_referral": { + "type": "boolean", + "description": "Create referral" + } + } + }, + "PersonalDetails": { + "type": "object", + "description": "Personal details for the customer.", + "properties": { + "first_name": { + "type": "string", + "description": "First name of the customer." + }, + "last_name": { + "type": "string", + "description": "Last name of the customer." + }, + "email": { + "type": "string", + "description": "Email address of the customer." + }, + "phone": { + "type": "string", + "description": "Phone number of the customer." + }, + "address": { + "$ref": "#/components/schemas/Address" + } + } + }, + "PersonalProfile": { + "type": "object", + "decription": "Account's personal profile.", + "properties": { + "first_name": { + "type": "string", + "description": "First name of the user" + }, + "last_name": { + "type": "string", + "description": "Last name of the user" + }, + "date_of_birth": { + "type": "string", + "description": "Date of birth" + }, + "mobile_phone": { + "type": "string", + "description": "Mobile phone number" + }, + "address": { + "$ref": "#/components/schemas/AddressWithDetails" + }, + "complete": { + "type": "boolean" + } + } + }, + "PersonalProfilePayload": { + "type": "object", + "decription": "Account's personal profile.", + "required": [ + "first_name", + "last_name", + "date_of_birth", + "address" + ], + "properties": { + "first_name": { + "type": "string", + "description": "First name of the user" + }, + "last_name": { + "type": "string", + "description": "Last name of the user" + }, + "date_of_birth": { + "type": "string", + "format": "date", + "description": "Date of birth" + }, + "mobile_phone": { + "type": "string", + "description": "Mobile phone number" + }, + "national_id": { + "type": "string", + "description": "National identification id. Country specific. Ex CPF (Brazil), DNI (Spain), PESEL (Poland)" + }, + "address": { + "$ref": "#/components/schemas/AddressPayload" + } + } + }, + "Product": { + "type": "object", + "description": "Details of the product for which the payment is made.", + "properties": { + "name": { + "type": "string", + "description": "Name of the product from the merchant's catalog." + }, + "price": { + "type": "number", + "format": "float", + "description": "Price of the product without VAT." + }, + "vat_rate": { + "type": "number", + "format": "float", + "description": "VAT rate applicable to the product." + }, + "single_vat_amount": { + "type": "number", + "format": "float", + "description": "Amount of the VAT for a single product item (calculated as the product of `price` and `vat_rate`, i.e. `single_vat_amount = price * vat_rate`)." + }, + "price_with_vat": { + "type": "number", + "format": "float", + "description": "Price of a single product item with VAT." + }, + "vat_amount": { + "type": "number", + "format": "float", + "description": "Total VAT amount for the purchase (calculated as the product of `single_vat_amount` and `quantity`, i.e. `vat_amount = single_vat_amount * quantity`)." + }, + "quantity": { + "type": "number", + "description": "Number of product items for the purchase." + }, + "total_price": { + "type": "number", + "format": "float", + "description": "Total price of the product items without VAT (calculated as the product of `price` and `quantity`, i.e. `total_price = price * quantity`)." + }, + "total_with_vat": { + "type": "number", + "format": "float", + "description": "Total price of the product items including VAT (calculated as the product of `price_with_vat` and `quantity`, i.e. `total_with_vat = price_with_vat * quantity`)." + } + } + }, + "Receipts": { + "type": "object", + "description": "Receipts", + "properties": { + "transaction_data": { + "$ref": "#/components/schemas/ReceiptTransaction" + }, + "merchant_data": { + "$ref": "#/components/schemas/ReceiptMerchantData" + }, + "emv_data": { + "type": "object" + }, + "acquirer_data": { + "type": "object", + "properties": { + "tid": { + "type": "string" + }, + "authorization_code": { + "type": "string" + }, + "return_code": { + "type": "string" + }, + "local_time": { + "type": "string" + } + } + } + } + }, + "ReceiptEvent": { + "type": "object", + "properties": { + "id": { + "$ref": "#/components/schemas/EventID" + }, + "transaction_id": { + "$ref": "#/components/schemas/TransactionID" + }, + "type": { + "$ref": "#/components/schemas/EventType" + }, + "status": { + "$ref": "#/components/schemas/EventStatus" + }, + "amount": { + "$ref": "#/components/schemas/AmountEvent" + }, + "timestamp": { + "$ref": "#/components/schemas/TimestampEvent" + }, + "fee_amount": { + "type": "number", + "format": "float", + "description": "Amount of the fee related to the event." + }, + "receipt_no": { + "type": "string" + } + } + }, + "ReceiptCard": { + "type": "object", + "properties": { + "last_4_digits": { + "type": "string", + "description": "Card last 4 digits." + }, + "type": { + "type": "string", + "description": "Card Scheme." + }, + "cardholder_name": { + "type": "string", + "description": "Cardholder name." + }, + "expiry_month": { + "type": "string", + "description": "Expiry month." + }, + "expiry_year": { + "type": "string", + "description": "Expiry year." + }, + "token": { + "type": "string", + "description": "Token ID of these card details." + } + } + }, + "ReceiptMerchantData": { + "type": "object", + "description": "Receipt merchant data", + "properties": { + "merchant_profile": { + "type": "object", + "properties": { + "merchant_code": { + "type": "string" + }, + "business_name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "address": { + "type": "object", + "properties": { + "address_line1": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "country_en_name": { + "type": "string" + }, + "country_native_name": { + "type": "string" + }, + "post_code": { + "type": "string" + }, + "landline": { + "type": "string" + } + } + }, + "settings": { + "type": "object", + "properties": { + "tax_enabled": { + "type": "boolean" + } + } + }, + "legal_type": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "sole_trader": { + "type": "boolean" + } + } + } + } + }, + "locale": { + "type": "string" + } + } + }, + "ReceiptTransaction": { + "type": "object", + "description": "Transaction information.", + "properties": { + "transaction_code": { + "type": "string", + "description": "Transaction code." + }, + "amount": { + "type": "string", + "description": "Transaction amount." + }, + "vat_amount": { + "type": "string", + "description": "Transaction VAT amount." + }, + "tip_amount": { + "type": "string", + "description": "Tip amount (included in transaction amount)." + }, + "fee_amount": { + "type": "integer", + "format": "float", + "description": "Total transaction fee." + }, + "currency": { + "type": "string", + "description": "Transaction currency." + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Time created at." + }, + "status": { + "type": "string", + "description": "Transaction processing status." + }, + "payment_type": { + "type": "string", + "description": "Transaction type." + }, + "entry_mode": { + "type": "string", + "description": "Transaction entry mode." + }, + "verification_method": { + "type": "string", + "description": "Cardholder verification method." + }, + "card": { + "$ref": "#/components/schemas/ReceiptCard" + }, + "installments_count": { + "type": "integer", + "description": "Number of installments." + }, + "customer_email": { + "type": "string" + }, + "products": { + "type": "array", + "description": "Products", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Product name." + }, + "price": { + "type": "integer", + "format": "float", + "description": "Product price." + }, + "quantity": { + "type": "integer", + "description": "Product quantity." + }, + "total_price": { + "type": "integer", + "format": "float", + "description": "Quantity x product price." + } + } + } + }, + "vat_rates": { + "type": "array", + "description": "Vat rates.", + "items": { + "type": "object", + "properties": { + "gross": { + "type": "integer", + "format": "float", + "description": "Gross" + }, + "net": { + "type": "integer", + "format": "float", + "description": "Net" + }, + "rate": { + "type": "integer", + "format": "float", + "description": "Rate" + }, + "vat": { + "type": "integer", + "format": "float", + "description": "Vat" + } + } + } + }, + "location": { + "type": "object", + "description": "Details of the payment location as received from the payment terminal.", + "properties": { + "lat": { + "$ref": "#/components/schemas/Lat" + }, + "lon": { + "$ref": "#/components/schemas/Lon" + }, + "horizontal_accuracy": { + "$ref": "#/components/schemas/HorizontalAccuracy" + } + } + }, + "events": { + "type": "array", + "description": "Events", + "items": [ + { + "$ref": "#/components/schemas/ReceiptEvent" + } + ] + }, + "receipt_no": { + "type": "string", + "description": "Receipt number" + } + } + }, + "Shelves": { + "type": "array", + "description": "Merchant Shelves", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Internal ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "order": { + "type": "number", + "description": "Order" + }, + "products": { + "type": "array", + "description": "Products", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Internal ID" + }, + "shelf_id": { + "type": "number", + "description": "Shelf ID" + }, + "availability": { + "type": "number", + "description": "availability" + }, + "image_url": { + "type": "string", + "description": "Image URL" + }, + "stock": { + "type": "number", + "description": "Stock" + }, + "subtitle": { + "type": "string", + "description": "Subtitle" + }, + "title": { + "type": "string", + "description": "Title" + }, + "prices": { + "type": "array", + "description": "Prices", + "items": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "ID" + }, + "product_id": { + "type": "number", + "description": "Product ID" + }, + "description": { + "type": "string", + "description": "Description" + }, + "net": { + "type": "number", + "description": "Net" + } + } + } + }, + "vat_rate_id": { + "type": "number", + "description": "VAT rate ID" + }, + "color_id": { + "type": "number", + "description": "Color ID" + } + } + } + } + } + } + }, + "Subaccount": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Id of the operator" + }, + "username": { + "type": "string", + "description": "Username of the operator" + }, + "disabled": { + "type": "boolean", + "default": true + }, + "created_at": { + "type": "string", + "description": "Creation date of the operator" + } + } + }, + "SubaccountsDetails": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Subaccount" + }, + { + "type": "object", + "properties": { + "permissions": { + "$ref": "#/components/schemas/Permissions" + }, + "app_settings": { + "$ref": "#/components/schemas/AppSettings" + } + } + } + ] + } + }, + "SubaccountPayload": { + "type": "object", + "description": "Details of the new employee", + "properties": { + "username": { + "type": "string", + "description": "Username of the new account. Must be a valid email address" + }, + "password": { + "type": "string", + "description": "Password" + } + } + }, + "TimeoffsetDetails": { + "type": "object", + "description": "TimeOffset Details", + "properties": { + "post_code": { + "type": "string", + "description": "Postal code" + }, + "offset": { + "type": "number", + "description": "UTC offset" + }, + "dst": { + "type": "boolean", + "description": "Daylight Saving Time" + } + } + }, + "TransactionEvent": { + "type": "object", + "description": "Details of a transaction event.", + "properties": { + "id": { + "$ref": "#/components/schemas/EventID" + }, + "event_type": { + "$ref": "#/components/schemas/EventType" + }, + "status": { + "$ref": "#/components/schemas/EventStatus" + }, + "amount": { + "$ref": "#/components/schemas/AmountEvent" + }, + "due_date": { + "type": "string", + "format": "date", + "description": "Date when the transaction event is due to occur." + }, + "date": { + "type": "string", + "format": "date", + "description": "Date when the transaction event occurred." + }, + "installment_number": { + "type": "integer", + "description": "Consequtive number of the installment that is paid. Applicable only payout events, i.e. `event_type = PAYOUT`." + }, + "timestamp": { + "$ref": "#/components/schemas/TimestampEvent" + } + } + }, + "TransactionMixinBase": { + "type": "object", + "description": "Details of the transaction.", + "properties": { + "id": { + "type": "string", + "description": "Unique ID of the transaction." + }, + "transaction_code": { + "type": "string", + "description": "Transaction code returned by the acquirer/processing entity after processing the transaction." + }, + "amount": { + "type": "number", + "format": "float", + "description": "Total amount of the transaction." + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "description": "Date and time of the creation of the transaction." + }, + "status": { + "type": "string", + "description": "Current status of the transaction.", + "enum": [ + "PAID_OUT", + "AUTH", + "CANCELLED", + "CAPTURED", + "CC_CUSTOMER_ENTRY_CANCELLED", + "CC_CUSTOMER_ENTRY_PENDING", + "CHARGE_BACK", + "CHARGEBACK_COLLECTED", + "CHARGEBACK_REVERSAL", + "DECLINED_ACQUIRER", + "DECLINED_CARD", + "DECLINED_INTERNAL", + "MISMATCHED", + "NON_COLLECTION", + "NOT_SENT_TO_ACQUIRER", + "PAYOUT_CALCULATED", + "PAYOUT_CREATED", + "PAYOUT_FAILED", + "RECONCILED", + "REFUND_FAILED", + "REFUND_PENDING", + "REFUNDED", + "REPORTED_FRAUD", + "RETRIEVAL_REQUEST", + "REVERSAL_FAILED", + "REVERSED", + "ROGER_THAT", + "SETTLED", + "SETTLED_FOR_DECLINED", + "SUCCESSFUL", + "SYSTEM_ERROR", + "TIMED_OUT", + "UNKNOWN", + "WITHHELD" + ] + }, + "payment_type": { + "type": "string", + "description": "Payment type used for the transaction.", + "enum": [ + "ECOM", + "BALANCE", + "BITCOIN", + "BOLETO", + "CASH", + "POS", + "RECURRING", + "UNKNOWN", + "MOTO" + ] + }, + "installments_count": { + "type": "integer", + "description": "Current number of the installment for deferred payments.", + "minimum": 1 + } + } + }, + "TransactionMixinCheckout": { + "type": "object", + "properties": { + "merchant_code": { + "type": "string", + "description": "Unique code of the registered merchant to whom the payment is made." + }, + "vat_amount": { + "type": "number", + "format": "float", + "description": "Amount of the applicable VAT (out of the total transaction amount)." + }, + "tip_amount": { + "type": "number", + "format": "float", + "description": "Amount of the tip (out of the total transaction amount)." + }, + "entry_mode": { + "type": "string", + "description": "Entry mode of the payment details.", + "enum": [ + "customer entry", + "BOLETO", + "CHIP", + "CONTACTLESS", + "CONTACTLESS_MAGSTRIPE", + "DIRECT_DEBIT", + "MAGSTRIPE", + "MAGSTRIPE_FALLBACK", + "MANUAL_ENTRY", + "moto", + "NONE" + ] + }, + "auth_code": { + "type": "string", + "description": "Authorization code for the transaction sent by the payment card issuer or bank. Applicable only to card payments." + }, + "internal_id": { + "type": "integer", + "description": "Internal unique ID of the transaction on the SumUp platform." + } + } + }, + "TransactionMixinHistory": { + "type": "object", + "properties": { + "product_summary": { + "type": "string", + "description": "Short description of the payment. The value is taken from the `description` property of the related checkout resource." + }, + "payouts_total": { + "type": "integer", + "description": "Total number of payouts to the registered user specified in the `user` property." + }, + "payouts_received": { + "type": "integer", + "description": "Number of payouts that are made to the registered user specified in the `user` property." + }, + "payout_plan": { + "type": "string", + "description": "Payout plan of the registered user at the time when the transaction was made.", + "enum": [ + "SINGLE_PAYMENT", + "TRUE_INSTALLMENT", + "ACCELERATED_INSTALLMENT" + ] + } + } + }, + "TransactionHistory": { + "allOf": [ + { + "$ref": "#/components/schemas/TransactionMixinBase" + }, + { + "$ref": "#/components/schemas/TransactionMixinHistory" + }, + { + "type": "object", + "properties": { + "transaction_id": { + "$ref": "#/components/schemas/TransactionID" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "type": { + "type": "string", + "description": "Type of the transaction for the registered user specified in the `user` property.", + "enum": [ + "PAYMENT", + "REFUND", + "CHARGE_BACK" + ] + }, + "card_type": { + "type": "string", + "description": "Issuing card network of the payment card used for the transaction.", + "enum": [ + "VISA", + "AMEX", + "CUP", + "DINERS", + "DISCOVER", + "ELO", + "ELV", + "HIPERCARD", + "JCB", + "MAESTRO", + "MASTERCARD", + "VISA_ELECTRON", + "VISA_VPAY", + "UNKNOWN" + ] + } + } + } + ] + }, + "TransactionFull": { + "allOf": [ + { + "$ref": "#/components/schemas/TransactionMixinBase" + }, + { + "$ref": "#/components/schemas/TransactionMixinCheckout" + }, + { + "$ref": "#/components/schemas/TransactionMixinHistory" + }, + { + "type": "object", + "properties": { + "username": { + "$ref": "#/components/schemas/User" + }, + "lat": { + "$ref": "#/components/schemas/Lat" + }, + "lon": { + "$ref": "#/components/schemas/Lon" + }, + "horizontal_accuracy": { + "$ref": "#/components/schemas/HorizontalAccuracy" + }, + "simple_payment_type": { + "type": "string", + "description": "Simple name of the payment type.", + "enum": [ + "MOTO", + "CASH", + "CC_SIGNATURE", + "ELV", + "CC_CUSTOMER_ENTERED", + "MANUAL_ENTRY", + "EMV" + ] + }, + "verification_method": { + "type": "string", + "description": "Verification method used for the transaction.", + "enum": [ + "none", + "signature", + "offline pin", + "online pin", + "offline pin and signature", + "confirmation code verified" + ] + }, + "card": { + "$ref": "#/components/schemas/Card" + }, + "local_time": { + "type": "string", + "format": "date-time", + "description": "Local date and time of the creation of the transaction." + }, + "payout_type": { + "type": "string", + "description": "Payout method for the transaction amount.", + "enum": [ + "BANK_ACCOUNT", + "BALANCE", + "PREPAID_CARD" + ] + }, + "products": { + "type": "array", + "description": "List of products from the merchant's catalog for which the transaction serves as a payment.", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "vat_rates": { + "type": "array", + "description": "List of VAT rates applicable to the transaction.", + "items": {} + }, + "transaction_events": { + "type": "array", + "description": "List of transaction events related to the transaction.", + "items": { + "$ref": "#/components/schemas/TransactionEvent" + } + }, + "simple_status": { + "type": "string", + "description": "Status generated fromthe processing status and the latest transaction state.", + "enum": [ + "SUCCESSFUL", + "CANCEL_FAILED", + "CANCELLED", + "CHARGEBACK", + "FAILED", + "REFUND_FAILED", + "REFUNDED" + ] + }, + "links": { + "type": "array", + "description": "List of hyperlinks for accessing related resources.", + "uniqueItems": true, + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/Link" + }, + { + "$ref": "#/components/schemas/LinkRefund" + } + ] + } + }, + "events": { + "type": "array", + "description": "List of events related to the transaction.", + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/Event" + } + }, + "location": { + "type": "object", + "description": "Details of the payment location as received from the payment terminal.", + "properties": { + "lat": { + "$ref": "#/components/schemas/Lat" + }, + "lon": { + "$ref": "#/components/schemas/Lon" + }, + "horizontal_accuracy": { + "$ref": "#/components/schemas/HorizontalAccuracy" + } + } + }, + "tax_enabled": { + "type": "boolean", + "description": "Indicates whether tax deduction is enabled for the transaction." + } + } + } + ] + }, + "VatRates": { + "type": "object", + "decription": "Merchant VAT rates", + "properties": { + "id": { + "type": "number", + "description": "Internal ID" + }, + "description": { + "type": "string", + "description": "Description" + }, + "rate": { + "type": "number", + "description": "Rate" + }, + "ordering": { + "type": "number", + "description": "Ordering" + }, + "country": { + "type": "string", + "description": "Country ISO code" + } + } + }, + "AmountEvent": { + "type": "number", + "format": "float", + "description": "Amount of the event." + }, + "Currency": { + "type": "string", + "description": "Three-letter ISO4217 code of the currency for the amount. Currently supported currency values are enumerated above.", + "enum": [ + "EUR", + "BGN", + "BRL", + "CHF", + "CZK", + "DKK", + "GBP", + "HRK", + "HUF", + "NOK", + "PLN", + "RON", + "SEK", + "USD" + ] + }, + "CustomerID": { + "type": "string", + "description": "Unique ID of the customer." + }, + "EventType": { + "type": "string", + "description": "Type of the transaction event.", + "enum": [ + "PAYOUT", + "CHARGE_BACK", + "REFUND" + ] + }, + "EventStatus": { + "type": "string", + "description": "Status of the transaction event.", + "enum": [ + "PENDING", + "SCHEDULED", + "FAILED", + "REFUNDED", + "SUCCESSFUL" + ] + }, + "EventID": { + "type": "integer", + "description": "Unique ID of the transaction event." + }, + "HorizontalAccuracy": { + "type": "number", + "format": "float", + "description": "Indication of the precision of the geographical position received from the payment terminal." + }, + "Lat": { + "type": "number", + "format": "float", + "description": "Latitude value from the coordinates of the payment location (as received from the payment terminal reader).", + "minimum": 0, + "maximum": 90 + }, + "LinkRefund": { + "allOf": [ + { + "$ref": "#/components/schemas/Link" + }, + { + "type": "object", + "properties": { + "min_amount": { + "type": "number", + "format": "float", + "description": "Minimum allowed amount for the refund." + }, + "max_amount": { + "type": "number", + "format": "float", + "description": "Maximum allowed amount for the refund." + } + } + } + ] + }, + "Lon": { + "type": "number", + "format": "float", + "description": "Longitude value from the coordinates of the payment location (as received from the payment terminal reader).", + "minimum": 0, + "maximum": 180 + }, + "TransactionID": { + "type": "string", + "description": "Unique ID of the transaction." + }, + "TimestampEvent": { + "type": "string", + "format": "date-time", + "description": "Date and time of the transaction event." + }, + "User": { + "type": "string", + "format": "email", + "description": "Email address of the registered user (merchant) to whom the payment is made." + } + }, + "requestBodies": { + "BankAccounts": { + "description": "Details of the bank details.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BankAccountPayload" + } + } + } + }, + "CheckoutCreate": { + "description": "Details of the payment checkout.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Checkout" + } + } + } + }, + "CheckoutProcess": { + "description": "Details of the payment instrument for processing the checkout.", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/CheckoutProcessCard" + }, + { + "$ref": "#/components/schemas/CheckoutProcessToken" + } + ] + } + } + } + }, + "CustomerCreate": { + "description": "Details of the customer.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + } + } + } + }, + "CustomerUpdate": { + "description": "Details of the saved customer.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "personal_details": { + "$ref": "#/components/schemas/PersonalDetails" + } + } + } + } + } + }, + "DoingBusinessAs": { + "description": "Details of the DBA", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DoingBusinessAsPayload" + } + } + } + }, + "MerchantProfile": { + "description": "Detailes of the merchant profile.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MerchantProfilePayload" + } + } + } + }, + "MerchantSettings": { + "description": "Details of the merchant settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MerchantSettingsPayload" + } + } + } + }, + "PaymentInstrument": { + "description": "Details of the payment instrument.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaymentInstrumentCard" + } + } + } + }, + "PersonalProfile": { + "description": "Detailes of the personal profile.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PersonalProfilePayload" + } + } + } + }, + "Refund": { + "description": "Amount for partial refunds.", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "Optional amount for partial refunds of transactions.", + "properties": { + "amount": { + "type": "number", + "format": "float", + "description": "Amount to refund for this transaction. The value cannot exceed the amount of the transaction. If you do not specify a value, the system performs a full refund of the transaction" + } + } + } + } + } + }, + "SubaccountPayload": { + "description": "Details of the operator.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubaccountPayload" + } + } + } + } + }, + "responses": { + "BankAccounts": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BankAccount" + } + } + } + } + }, + "Checkout": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Checkout" + } + } + } + }, + "CheckoutList": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Checkout" + } + } + } + } + }, + "CheckoutCreate": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Checkout" + } + } + } + }, + "CheckoutProcess": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CheckoutSuccess" + } + } + } + }, + "Customer": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + } + } + } + }, + "CustomerCreate": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + } + } + } + }, + "DoingBusinessAs": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DoingBusinessAs" + } + } + } + }, + "FinancialPayouts": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FinancialPayouts" + } + } + } + }, + "FinancialTransactions": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FinancialTransactions" + } + } + } + }, + "MerchantAccount": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MerchantAccount" + } + } + } + }, + "MerchantProfile": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MerchantProfile" + } + } + } + }, + "MerchantSettings": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MerchantSettings" + } + } + } + }, + "PaymentInstrumentList": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentInstrumentCard" + } + } + } + } + }, + "PaymentInstrument": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaymentInstrumentCard" + } + } + } + }, + "PaymentInstrumentCreate": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaymentInstrumentCard" + } + } + } + }, + "PersonalProfile": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PersonalProfile" + } + } + } + }, + "Receipts": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Receipts" + } + } + } + }, + "Subaccounts": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubaccountsDetails" + } + } + } + }, + "Subaccount": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Subaccount" + } + } + } + }, + "TransactionList": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransactionHistory" + } + }, + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Link" + } + } + } + } + } + } + }, + "Transaction": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionFull" + } + } + } + }, + "NoBodyResponse": { + "description": "No Content", + "content": { + "application/json": { + "examples": { + "NoBody": { + "value": {} + } + } + } + } + }, + "ErrorBadRequest": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/ErrorExtended" + }, + { + "type": "array", + "description": "List of error messages.", + "items": { + "$ref": "#/components/schemas/ErrorExtended" + } + } + ] + }, + "examples": { + "Invalid_Parameter": { + "description": "A required parameter has an invalid value.", + "value": { + "message": "Validation error", + "error_code": "INVALID", + "param": "card.expiry_year" + } + }, + "Multiple_Invalid_Parameters": { + "description": "Multiple required parameters have invalid values.", + "value": [ + { + "error_code": "INVALID", + "message": "Validation error", + "param": "card.name" + }, + { + "error_code": "INVALID", + "message": "Validation error", + "param": "card.number" + }, + { + "error_code": "INVALID", + "message": "Validation error", + "param": "card.expiry_year" + } + ] + } + } + } + } + }, + "ErrorNotAuthorized": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Invalid_Token": { + "description": "The access token is invalid or has expired.", + "value": { + "error_message": "invalid access token", + "error_code": "NOT_AUTHORIZED" + } + }, + "Not_Authorized_Token": { + "description": "The access token is valid but the application is not authorized.", + "value": { + "error_message": "NOT_AUTHORIZED", + "error_code": "NOT_AUTHORIZED" + } + }, + "Missing_Token": { + "description": "No access token is provided.", + "value": { + "message": "access token required", + "error_code": "NOT_AUTHORIZED" + } + } + } + } + } + }, + "ErrorForbidden": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorForbidden" + }, + "examples": { + "Forbidden": { + "description": "You do not have a required scopes for making this request.", + "value": { + "error_message": "request_not_allowed", + "error_code": "FORBIDDEN", + "status_code": 403 + } + } + } + } + } + }, + "ErrorNotFound": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Not_Found": { + "description": "The identified resource is not found on the server.", + "value": { + "error_code": "NOT_FOUND", + "message": "Resource not found" + } + } + } + } + } + }, + "ErrorConflict": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + }, + "examples": { + "Checkout_Processed": { + "description": "The identified checkout resource is already processed.", + "value": { + "error_code": "CHECKOUT_PROCESSED", + "message": "Checkout is already processed" + } + } + } + } + } + } + }, + "parameters": { + "BankAccounts": { + "name": "primary", + "in": "query", + "description": "The true value will return only the primary bank account (the one used for settlements).", + "required": false, + "schema": { + "type": "boolean" + } + }, + "CheckoutReference": { + "name": "checkout_reference", + "in": "query", + "description": "Filters the list of checkout resources by the unique ID of the checkout.", + "required": false, + "schema": { + "type": "string" + } + }, + "ClientTransactionID": { + "name": "client_transaction_id", + "in": "query", + "description": "Filters the list of checkout resources by client transaction ID. When you use this option, you also need to specify the merchant code in the `merchant_code` query parameter.", + "required": false, + "schema": { + "type": "string" + } + }, + "CheckoutID": { + "name": "id", + "in": "path", + "required": true, + "description": "Unique ID of the checkout resource.", + "schema": { + "type": "string" + } + }, + "CustomerID": { + "name": "customer_id", + "in": "path", + "required": true, + "description": "Unique ID of the saved customer resource.", + "schema": { + "type": "string" + } + }, + "MerchantAccount": { + "name": "include[]", + "in": "query", + "description": "A list of additional information you want to receive for the user. By default only personal and merchant profile information will be returned.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "operators", + "settings", + "doing_business_as", + "bank_accounts", + "app_settings", + "vat_rates", + "shelves", + "country_details", + "timeoffset_details", + "permissions" + ] + } + } + }, + "MerchantCode": { + "name": "merchant_code", + "in": "query", + "description": "Filters the list of checkout resources by merchant code. This parameter is required when you are using the `client_transaction_id` query parameter for filtering the results.", + "required": false, + "schema": { + "type": "string" + } + }, + "Subaccounts": { + "name": "include[]", + "in": "query", + "description": "A list of additional information you want to receive for subaccounts.", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "permissions", + "app_settings" + ] + } + } + }, + "Subaccount": { + "name": "operator_code", + "in": "path", + "description": "Operator code", + "schema": { + "type": "string" + } + }, + "Token": { + "name": "token", + "in": "path", + "required": true, + "description": "Unique token identifying the card saved as a payment instrument resource.", + "schema": { + "type": "string" + } + }, + "TxnID": { + "name": "txn_id", + "in": "path", + "required": true, + "description": "Unique ID of the transaction.", + "schema": { + "type": "string" + } + }, + "TransactionCode": { + "name": "transaction_code", + "in": "query", + "description": "Retrieves the transaction resource with the specified transaction code.", + "required": false, + "schema": { + "type": "string" + } + }, + "OrderFilter": { + "name": "order", + "in": "query", + "description": "Specifies the order in which the returned results are displayed.", + "schema": { + "type": "string", + "enum": [ + "ascending", + "descending" + ], + "default": [ + "ascending" + ] + } + }, + "LimitFilter": { + "name": "limit", + "in": "query", + "description": "Specifies the maximum number of results returned per page.", + "schema": { + "type": "integer" + } + }, + "UserIDFilter": { + "name": "user_id", + "in": "query", + "description": "Filters the results by user ID and returns only transaction resources associated with the specified user. The user can be identified via one of the following parameters:\n * email\n * masked merchant ID\n * original user ID\n\nIf you do not specify user identification, the response contains transaction resources associated with the currently authenticated user account.\n", + "required": false, + "schema": { + "type": "string" + } + }, + "UsersFilter": { + "name": "users", + "in": "query", + "description": "Filters the returned results by user email.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "format": "email" + } + } + }, + "GeoCoordinatesFilter": { + "name": "geo_coordinates", + "in": "query", + "description": "Filters the results by the geographical coordinates of the location where the transaction is made (as retrieved from the terminal device) and returns only results that fall within the specified rectangular area. The accepted format is a comma-separated list of coordinate points that form a rectangle defined by the following parameters:\n * `southwest_lng` (for the longitude value of the southwestern edge of the rectangle)\n * `southwest_lat` (for the latitude value of the southwestern edge of the rectangle)\n * `northeast_lng` (for the longitude value of the northeastern edge of the rectangle)\n * `northeast_lat` (for the latitude value of the northeastern edge of the rectangle)\n", + "required": false, + "schema": { + "type": "string" + } + }, + "ReadersFilter": { + "name": "readers", + "in": "query", + "description": "Filters the returned results by the specified list of serial numbers of the terminal readers used for the transactions.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "StatusesFilter": { + "name": "statuses", + "in": "query", + "description": "Filters the returned results by the specified list of final statuses of the transactions.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "SUCCESSFUL", + "CANCELLED", + "FAILED" + ] + } + } + }, + "PaymentTypesFilter": { + "name": "payment_types", + "in": "query", + "description": "Filters the returned results by the specified list of payment types used for the transactions.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "CASH", + "POS", + "ECOM", + "BITCOIN", + "BALANCE" + ] + } + } + }, + "TypesFilter": { + "name": "types", + "in": "query", + "description": "Filters the returned results by the specified list of transaction types.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "PAYMENT", + "REFUND", + "CHARGE_BACK" + ] + } + } + }, + "ChangesSinceFilter": { + "name": "changes_since", + "in": "query", + "description": "Filters the results by the latest modification time of resources and returns only transactions that are modified *after* the specified timestamp (in ISO8601 format).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "NewestTimeFilter": { + "name": "newest_time", + "in": "query", + "description": "Filters the results by the creation time of resources and returns only transactions that are created *before* the specified timestamp (in ISO8601 format).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "NewestRefFilter": { + "name": "newest_ref", + "in": "query", + "description": "Filters the results by the reference ID of transaciton events and returns only transactions with events whose IDs are *smaller* than the specified value. This parameters supersedes the `newest_time` parameter (if both are provided in the request).", + "required": false, + "schema": { + "type": "string" + } + }, + "OldestTimeFilter": { + "name": "oldest_time", + "in": "query", + "description": "Filters the results by the creation time of resources and returns only transactions that are created *after* the specified timestamp (in ISO8601 format).", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + "OldestRefFilter": { + "name": "oldest_ref", + "in": "query", + "description": "Filters the results by the reference ID of transaciton events and returns only transactions with events whose IDs are *greater* than the specified value. This parameters supersedes the `oldest_time` parameter (if both are provided in the request).", + "required": false, + "schema": { + "type": "string" + } + }, + "TransactionID": { + "name": "id", + "in": "query", + "description": "Retrieves the transaction resource with the specified transaction ID (the `id` parameter in the transaction resource).", + "required": false, + "schema": { + "type": "string" + } + }, + "TransactionInternalID": { + "name": "internal_id", + "in": "query", + "description": "Retrieves the transaction resource with the specified internal transaction ID (the `internal_id` parameter in the transaction resource).", + "required": false, + "schema": { + "type": "string" + } + }, + "EventStatusesFilter": { + "name": "event_statuses", + "in": "query", + "description": "Filters the returned transaction events in the transaction resource by the speficied transaction event statuses.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "FAILED", + "SUCCESSFUL" + ] + } + } + }, + "EventTypesFilter": { + "name": "event_types", + "in": "query", + "description": "Filters the returned transaction events in the transaction resource by specified transaction event types.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "PAYOUT", + "REFUND", + "CHARGE_BACK", + "PAYOUT_DEDUCTION" + ] + } + } + } + }, + "securitySchemes": { + "accessToken": { + "type": "oauth2", + "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." + } + } + } + } + } + } +} \ No newline at end of file -- 2.39.5