Guide to XS2A
  • What is XS2A?
  • Customer Cockpit
    • Overview
      • Track your Business
      • Permissions and Roles
      • Generating API-Keys
      • Creating Webhooks
      • Contact our Support
      • Successful transactions
      • Last Errors
  • Integration
    • How to go live
      • Technical Onboarding
      • KYC (Know Your Customer)
      • Video Ident
    • Getting started
      • Product specific recommendations
      • Registering your account
      • Required steps to start
      • Use case integration
      • API documentation
      • Integration variants
      • Upload eIDAS certificates
      • Choose a Platform
    • 💡UX - Integration Guide
    • Integration Variants
      • Javascript-Widget
        • Webview App Integration
      • Mobile SDK (iOS & Android)
      • Wizard-API
      • EasyOnboarding
    • Integration by Use Case
      • PFM (Personal Finance Management)
      • P2P (Purchase-to-pay)
      • Loan Origination (B2C)
      • Loan Origination (B2B)
      • Insurance
      • PSP (Payment Service Provider)
      • Leasing
      • Age verification check
      • Source of Funds/Wealth
    • Products & Platforms
      • Payment Platform (XS2A.pay)
      • Analytics Platform (XS2A.risk)
      • Open Banking Platform (XS2A.api)
      • OnlineÜberweisen
    • Product Features
      • Testbank 2.0
      • Reconciliation
      • Payouts & Refunds
      • Simple Pay
      • Credit cards
    • Additional Guides
      • Errorcodes
      • Categorization
        • The Categorization Taxonomy
        • The Categorization Engine
        • Quality Assurance
      • B2C & B2B Rating Checks
        • B2B Rating
        • B2C Rating
      • Reports
      • PayPlus
      • Reconciliation
        • Automatic Recon OnlineÜberweisen
        • Manual Recon OnlineÜberweisen
        • Recon Payment Platform (XS2A.pay)
      • Webhooks
  • FAQ
    • XS2A
      • Merchant admin
    • OnlineÜberweisen
      • For merchants
Powered by GitBook
On this page
  • Overview
  • How to use
  • Basic understanding
  • Example of a form received by the Wizard-API
  • Example of an answer to a form by the Wizard-API

Was this helpful?

  1. Integration
  2. Integration Variants

Wizard-API

Individual integration with maximum customisation

PreviousMobile SDK (iOS & Android)NextEasyOnboarding

Last updated 3 years ago

Was this helpful?

Please note that you can only use this option if you have a valid eIDAS certificate.

Keep in mind that this method of integration requires much more effort than the integration via the Javascript-Widget. Every form, every help text, and every SCA method has to be implemented on your side.

Overview

The Wizard-API is the REST-API alternative to the Javascript-Widget. Instead of integrating a tiny Javascript library on your page, the Wizard-API allows for full control of the customer-facing process.

For more information about the Wizard-API please read our technical documentation.

How to use

Basic understanding

The Wizard-API is essentially a series of forms. Every form has to be rendered to the user, the user has to make their inputs. The inputs then have to be sent to the Wizard-API endpoint and the next form has to be rendered.

# Step 1: Create a session
let session = createSessionWithXS2A();
let input = [];

# Step 2: Display forms as long as required
while (true) {
    let response = callWizardAPIwithXS2A(session, input);
    
    if (!response.form) {
        # no more forms required
        break;
    }
    
    input = displayFormToUser(response.form);
}

# Step 3: transaction completed
let transaction = fetchTransactionFromXS2A();

After creating a session the first step would be to initially call the Wizard-API. The following guides will provide information on how a session is generated for a specific product.

If the API response contains a form, display that form to the user, collect the inputs and send them off to the Wizard-API endpoint again. If the API response then contains a form, repeat the process. The transaction is finished, if the Wizard-API endpoint does not contain any more forms.

Example of a form received by the Wizard-API

{
    "code": 200,
    "message": "ok",
    "error": [],
    "polling": {},
    "form": {
        "name": "bank",
        "elements": [
            {
                "type": "select",
                "name": "country_id",
                "selected": "",
                "options": {
                    "DE": "Deutschland",
                    "AT": "\u00d6sterreich",
                    "ES": "Spanien",
                    "FR": "Frankreich",
                    "CH": "Schweiz",
                    "IT": "Italien"
                },
                "label": "Land",
                "validation": "required|in:DE,AT,ES,FR,CH,IT",
                "invalid": false,
                "failed_validation_rules": "",
                "validation_error": ""
            },
            {
                "type": "text",
                "name": "bank_code",
                "value": "",
                "label": "Bankname, BLZ oder IBAN",
                "validation": "required",
                "invalid": false,
                "failed_validation_rules": "",
                "validation_error": ""
            }
        ],
        "parameters": []
    }
}

All received objects in elements must be provided to the user via frontend to give the user the possibility to provide this data.

Example of an answer to a form by the Wizard-API

After the data is submitted you need to send this back to the API.

curl -X POST --user api:<your_api_key> https://api.xs2a.com/v1/wizard \
 -d key=<your_wizard_session_key> \
 -d country_id=DE \
 -d bank_code=88888888

API documentation
Payment Platform (XS2A.pay)
Analytics Platform (XS2A.risk)
Open Banking Platform (XS2A.api)