Skip to main content
The payment/stripeonboarding endpoint provides an interface for managing connected Stripe accounts for shops. It lets you create, view, update and delete these accounts. Additionally, the API generates onboarding links with return and refresh URLs. Access is protected by fine-grained permissions (read/write/create/delete); responses are returned as JSON.

Supported methods

List of all supported methods.
Command/InfoEndpointsGETPOSTPUTDELETE
Requestspayment/ stripeonboarding

Stripe onboarding process

Global parameters such as the operating mode are stored in the payment.stripe configuration.

Data fields of an entry

NameTypeUsage
idIntegerInternal primary key of the onboarding entry.
accountIdStringStripe connected account ID (e.g. acct_1S6Qs6P7aiy99C1h).
statusIntegerCurrent onboarding status, derived from email confirmation, payment capability and response validity, among other things. Possible values: - 0 = MissingData (mandatory data missing during onboarding) - 1 = MissingTos (terms of service not accepted) - 2 = ChargesDisabled (payment acceptance disabled) - 3 = PayoutDisabled (payouts disabled) - 4 = PayoutEnabled (payments & payouts enabled)
modeIntegerOperating mode of the entry (determined from the configuration): Production or Test. Possible values: - 0 = Sandbox - 1 = Live
emailStringEmail address of the Stripe account.
tosAcceptedBooleanIndicates whether the Stripe terms of service have been accepted.
detailsSubmittedBooleanIndicates whether the onboarding form has been “submitted” at Stripe (details_submitted).
chargesEnabledBooleanIndicates whether payments may be created/captured.
payoutsEnabledBooleanIndicates whether payouts to the bank account are enabled.
capabilitiesObjectMirror of the Stripe capabilities (e.g. card_payments, transfers) with status (active/pending/inactive). Detailed competence matrix of the account.
paymentMethodsArrayEnabled payment methods.
businessTypeStringType of company according to Stripe (individual, company, non_profit, …). May be empty if not yet set.
createdAtStringTime of creation (ISO 8601 format, UTC).
updatedAtStringTime of the last update of the entry (ISO 8601 format, UTC).
deletedAtStringTime of deletion (ISO 8601 format, UTC). Note: The default value 1970-01-01T00:00:00.000Z signals “not deleted”.
rawResponseObjectComplete, unfiltered response of the Stripe Account API (as JSON object) for tracking/debugging.

Example

{
    "accountId": "acct_1S6Qs6P7aiy99C1h",
    "businessType": "",
    "capabilities": {},
    "chargesEnabled": false,
    "createdAt": "2025-09-12T06:54:17.000Z",
    "deletedAt": "1970-01-01T00:00:00.000Z",
    "detailsSubmitted": false,
    "email": "",
    "id": 1,
    "mode": 0,
    "paymentMethods": [
        {
            "available": false,
            "type": "alipay"
        },
        {
            "available": true,
            "type": "amazon_pay"
        },
        {
            "available": true,
            "type": "apple_pay"
        },
        ...
    ],
    "payoutsEnabled": false,
    "rawResponse": { ... },
    "status": 0,
    "tosAccepted": true,
    "updatedAt": "2025-09-12T06:54:17.000Z"
}

Example of rawResponse

{
    "business_profile": {
        "annual_revenue": null,
        "estimated_worker_count": null,
        "mcc": null,
        "minority_owned_business_designation": null,
        "name": null,
        "support_address": null,
        "support_email": null,
        "support_phone": null,
        "support_url": null,
        "url": null
    },
    "business_type": null,
    "capabilities": {},
    "charges_enabled": false,
    "controller": {
        "fees": {
            "payer": "account"
        },
        "is_controller": true,
        "losses": {
            "payments": "stripe"
        },
        "requirement_collection": "stripe",
        "stripe_dashboard": {
            "type": "full"
        },
        "type": "application"
    },
    "country": "DE",
    "created": 1757660056,
    "default_currency": "eur",
    "details_submitted": false,
    "email": null,
    "external_accounts": {
        "data": [],
        "has_more": false,
        "object": "list",
        "total_count": 0,
        "url": "/v1/accounts/acct_1S6Qs6P7aiy99C1h/external_accounts"
    },
    "future_requirements": {
        "alternatives": [],
        "current_deadline": null,
        "currently_due": [],
        "disabled_reason": null,
        "errors": [],
        "eventually_due": [],
        "past_due": [],
        "pending_verification": []
    },
    "id": "acct_1S6Qs6P7aiy99C1h",
    "metadata": {},
    "object": "account",
    "payouts_enabled": false,
    "requirements": {
        "alternatives": [],
        "current_deadline": null,
        "currently_due": [
            "business_profile.product_description",
            "business_profile.support_phone",
            "business_profile.url",
            "external_account",
            "tos_acceptance.date",
            "tos_acceptance.ip"
        ],
        "disabled_reason": "requirements.past_due",
        "errors": [],
        "eventually_due": [
            "business_profile.product_description",
            "business_profile.support_phone",
            "business_profile.url",
            "external_account",
            "tos_acceptance.date",
            "tos_acceptance.ip"
        ],
        "past_due": [
            "business_profile.product_description",
            "business_profile.support_phone",
            "business_profile.url",
            "external_account",
            "tos_acceptance.date",
            "tos_acceptance.ip"
        ],
        "pending_verification": []
    },
    "settings": {
        "bacs_debit_payments": {
            "display_name": null,
            "service_user_number": null
        },
        "branding": {
            "icon": null,
            "logo": null,
            "primary_color": null,
            "secondary_color": null
        },
        "card_issuing": {
            "tos_acceptance": {
                "date": null,
                "ip": null
            }
        },
        "card_payments": {
            "decline_on": {
                "avs_failure": false,
                "cvc_failure": false
            },
            "statement_descriptor_prefix": null,
            "statement_descriptor_prefix_kana": null,
            "statement_descriptor_prefix_kanji": null
        },
        "dashboard": {
            "display_name": null,
            "timezone": "Etc/UTC"
        },
        "invoices": {
            "default_account_tax_ids": null,
            "hosted_payment_method_save": "offer"
        },
        "payments": {
            "statement_descriptor": null,
            "statement_descriptor_kana": null,
            "statement_descriptor_kanji": null
        },
        "payouts": {
            "debit_negative_balances": true,
            "schedule": {
                "delay_days": 7,
                "interval": "daily"
            },
            "statement_descriptor": null
        },
        "sepa_debit_payments": {}
    },
    "tos_acceptance": {
        "date": null
    },
    "type": "standard"
}

Methods for Stripe onboarding

This section describes the endpoints for managing individual Stripe onboarding entries.

GET payment/stripeonboarding

This endpoint can be used to load a list of existing onboarding entries for the current shop. Search and filter parameters from the request are taken into account and limited to deleted=false. To use it, read permissions for Stripe onboarding data are required.

Example

https://www.<your-shop>.de/admin/api/v1/payment/stripeonboarding?size=100

Response

{
    "endReached": true,
    "items": [
        {
            "accountId": "acct_1S6Qs6P7aiy99C1h",
            "businessType": "",
            "capabilities": {},
            "chargesEnabled": false,
            "createdAt": "2025-09-12T06:54:17.000Z",
            "deletedAt": "1970-01-01T00:00:00.000Z",
            "detailsSubmitted": false,
            "email": "",
            "id": 1,
            "mode": 0,
            "paymentMethods": [],
            "payoutsEnabled": false,
            "rawResponse": {},
            "status": 0,
            "tosAccepted": false,
            "updatedAt": "2025-09-12T06:54:17.000Z"
        },
        {
            "accountId": "acct_1S6Qs70EemSb0vRy",
            "businessType": "",
            "capabilities": {},
            "chargesEnabled": false,
            "createdAt": "2025-09-12T06:54:18.000Z",
            "deletedAt": "1970-01-01T00:00:00.000Z",
            "detailsSubmitted": false,
            "email": "",
            "id": 2,
            "mode": 0,
            "paymentMethods": [],
            "payoutsEnabled": false,
            "rawResponse": {},
            "status": 0,
            "tosAccepted": false,
            "updatedAt": "2025-09-12T06:54:18.000Z"
        },
        ...
    ],
    "nextPageToken": "Mw",
    "totalCount": 4
}

Error codes

ErrorTypeReason
401 UnauthorizedNot authorized: you are not logged in or you do not have the required permissions to read Stripe onboarding data.
400 Bad Request”invalidValue”sort direction is invalid (not “asc” or “desc”). size ∉ [1;300] pageToken is not a number or is less than 0.
400 Bad Request”unknownDataField”A filter or sort field is invalid.
400 Bad Request”unknownOperation”A filter type is invalid.
400 Bad Request”invalidCharacters”size is not an integer. A filter value is invalid.
400 Bad Request”syntaxError”sort contains more than one or no ”:”.

GET payment/stripeonboarding/{id}

This endpoint can be used to load a single onboarding entry by its ID. To use this endpoint, read permissions for Stripe onboarding data are required.

Example

https://www.<your-shop>.de/admin/api/v1/payment/stripeonboarding/1

Response

{
    "accountId": "acct_1S6Qs6P7aiy99C1h",
    "businessType": "",
    "capabilities": {},
    "chargesEnabled": false,
    "createdAt": "2025-09-12T06:54:17.000Z",
    "deletedAt": "1970-01-01T00:00:00.000Z",
    "detailsSubmitted": false,
    "email": "",
    "id": 1,
    "mode": 0,
    "paymentMethods": [],
    "payoutsEnabled": false,
    "rawResponse": {},
    "status": 0,
    "tosAccepted": false,
    "updatedAt": "2025-09-12T06:54:17.000Z"
}

Error codes

ErrorTypeReason
401 UnauthorizedNot authorized: you are not logged in or you do not have the required permissions to read Stripe onboarding data.
404 Not FoundThe data was not found.

POST payment/stripeonboarding

This endpoint creates a connected Stripe account and creates a local onboarding entry in live or sandbox mode. The result is an onboarding link (URL) through which the setup can be completed at Stripe. To use this endpoint, create permissions for Stripe onboarding data are required.

Example

https://www.<your-shop>.de/admin/api/v1/payment/stripeonboarding

Request body

{}

Response

{
    "url": "https://connect.stripe.com/setup/s/acct_1S7cvB14358LTRqf/0LSOodpShtzK"
}

Error codes

ErrorTypeReason
401 UnauthorizedNot authorized: you are not logged in or you do not have the required permissions to create Stripe onboarding data.
503 Service Unavailable”serviceUnavailable”No Stripe account could be created. The onboarding link could not be created.
503 Service Unavailable”internalError”Saving data in the WEBSALE database failed.

PUT payment/stripeonboarding/{id}

This endpoint updates an existing onboarding entry by its ID and distinguishes two meaningful use cases via the type field in the request body:
type = "finish": The entry is synchronized with the current state of the connected Stripe account. Submitted master data, ToS acceptance, payment enablement and payouts are checked and translated into an understandable status (e.g. “missing data”, “ToS not accepted”, “payments/payouts disabled” or “payouts enabled”). Additionally, email, capabilities, the default configuration of payment methods and the unchanged raw response are saved. The result is the updated entry as JSON.
type = "refresh": A new onboarding link is created so that the merchant can seamlessly continue the setup at Stripe (e.g. after an interruption or when further details are required).
To use this endpoint, write permissions for Stripe onboarding data are required.

Example

https://www.<your-shop>.de/admin/api/v1/payment/stripeonboarding/2

Request body

{
    "type": "finish"
}

Response when type equals "finish"

{
    "accountId": "acct_1S7cvB14358LTRqf",
    "businessType": "",
    "capabilities": {},
    "chargesEnabled": false,
    "createdAt": "2025-09-15T13:58:24.000Z",
    "deletedAt": "1970-01-01T00:00:00.000Z",
    "detailsSubmitted": false,
    "email": "",
    "id": 2,
    "mode": 0,
    "paymentMethods": [
        {
            "available": false,
            "type": "alipay"
        },
        {
            "available": false,
            "type": "amazon_pay"
        },
        {
            "available": true,
            "type": "apple_pay"
        },
        {
            "available": false,
            "type": "bancontact"
        },
        {
            "available": false,
            "type": "billie"
        },
        {
            "available": false,
            "type": "blik"
        },
        {
            "available": true,
            "type": "card"
        },
        {
            "available": false,
            "type": "cartes_bancaires"
        },
        {
            "available": false,
            "type": "customer_balance"
        },
        {
            "available": false,
            "type": "eps"
        },
        {
            "available": false,
            "type": "giropay"
        },
        {
            "available": false,
            "type": "google_pay"
        },
        ...
    ],
    "payoutsEnabled": false,
    "rawResponse": {
        "business_profile": {
            "annual_revenue": null,
            "estimated_worker_count": null,
            "mcc": null,
            "minority_owned_business_designation": null,
            "name": null,
            "support_address": null,
            "support_email": null,
            "support_phone": null,
            "support_url": null,
            "url": null
        },
        "business_type": null,
        "capabilities": {},
        "charges_enabled": false,
        "controller": {
            "fees": {
                "payer": "account"
            },
            "is_controller": true,
            "losses": {
                "payments": "stripe"
            },
            "requirement_collection": "stripe",
            "stripe_dashboard": {
                "type": "full"
            },
            "type": "application"
        },
        "country": "DE",
        "created": 1757944702,
        "default_currency": "eur",
        "details_submitted": false,
        "email": null,
        "external_accounts": {
            "data": [],
            "has_more": false,
            "object": "list",
            "total_count": 0,
            "url": "/v1/accounts/acct_1S7cvB14358LTRqf/external_accounts"
        },
        "future_requirements": {
            "alternatives": [],
            "current_deadline": null,
            "currently_due": [],
            "disabled_reason": null,
            "errors": [],
            "eventually_due": [],
            "past_due": [],
            "pending_verification": []
        },
        "id": "acct_1S7cvB14358LTRqf",
        "metadata": {},
        "object": "account",
        "payouts_enabled": false,
        "requirements": {
            "alternatives": [],
            "current_deadline": null,
            "currently_due": [
                "business_profile.product_description",
                "business_profile.support_phone",
                "business_profile.url",
                "external_account",
                "tos_acceptance.date",
                "tos_acceptance.ip"
            ],
            "disabled_reason": "requirements.past_due",
            "errors": [],
            "eventually_due": [
                "business_profile.product_description",
                "business_profile.support_phone",
                "business_profile.url",
                "external_account",
                "tos_acceptance.date",
                "tos_acceptance.ip"
            ],
            "past_due": [
                "business_profile.product_description",
                "business_profile.support_phone",
                "business_profile.url",
                "external_account",
                "tos_acceptance.date",
                "tos_acceptance.ip"
            ],
            "pending_verification": []
        },
        "settings": {
            "bacs_debit_payments": {
                "display_name": null,
                "service_user_number": null
            },
            "branding": {
                "icon": null,
                "logo": null,
                "primary_color": null,
                "secondary_color": null
            },
            "card_issuing": {
                "tos_acceptance": {
                    "date": null,
                    "ip": null
                }
            },
            "card_payments": {
                "decline_on": {
                    "avs_failure": false,
                    "cvc_failure": false
                },
                "statement_descriptor_prefix": null,
                "statement_descriptor_prefix_kana": null,
                "statement_descriptor_prefix_kanji": null
            },
            "dashboard": {
                "display_name": null,
                "timezone": "Etc/UTC"
            },
            "invoices": {
                "default_account_tax_ids": null,
                "hosted_payment_method_save": "offer"
            },
            "payments": {
                "statement_descriptor": null,
                "statement_descriptor_kana": null,
                "statement_descriptor_kanji": null
            },
            "payouts": {
                "debit_negative_balances": true,
                "schedule": {
                    "delay_days": 7,
                    "interval": "daily"
                },
                "statement_descriptor": null
            },
            "sepa_debit_payments": {}
        },
        "tos_acceptance": {
            "date": null
        },
        "type": "standard"
    },
    "status": 0,
    "tosAccepted": true,
    "updatedAt": "2025-09-15T13:58:24.000Z"
}

Response when type equals "refresh"

{
    "url": "https://connect.stripe.com/setup/s/acct_1S7dWp1yCkcDDzUj/biADCkORd6Jm"
}

Error codes

ErrorTypeReason
401 UnauthorizedNot authorized: you are not logged in or you do not have the required permissions to write Stripe onboarding data.
400 Bad RequestRequest body could not be loaded.
400 Bad Request”invalidValue”
404 Not Foundid is missing or is not an integer. The entry was not found in the WEBSALE database. Updating data failed.
503 Service Unavailable”serviceUnavailable”The Stripe account could not be loaded. The onboarding link could not be created.

DELETE payment/stripeonboarding/{id}

This endpoint can be used to remove an existing onboarding entry by its ID. The account at Stripe remains, but the current shop will no longer process payments for this account. To use this endpoint, delete permissions for Stripe onboarding data are required.

Example

https://www.<your-shop>.de/admin/api/v1/payment/stripeonboarding/3

Response

{
    "success": true
}

Error codes

ErrorTypeReason
401 UnauthorizedNot authorized: you are not logged in or you do not have the required permissions to delete Stripe onboarding data.
404 Not FoundNo entry was found, or the deletion failed.

Support

Bei technischen Fragen und Hilfestellungen ist unser Support-Team für Sie erreichbar: Zum Kundenportal Bitte senden Sie uns eine möglichst detaillierte Beschreibung sowie Screenshots, Requests/Antworten, damit wir Ihre Anfrage zeitnah und zielführend beantworten können.