Webhooks

Introduction

Webhooks are a form of server-to-server communication which send notifications as soon as specific events occur. By subscribing to webhooks, you can reduce the number of API calls that your solution makes and build your solution to react to important events in real time.

This guide explains how to subscribe to webhooks and contains an explanation and sample payload for each webhook event.

How to subscribe to a webhook

note

Please note that webhooks are intended for informational purposes only. Your solution's business logic should not directly use the contents of the webhook payload (with the exception of seizure-related webhooks). Please use the Solaris API's GET endpoints to retrieve information about resources for your business logic.

First, your solution must expose a URL (HTTPS) where Solaris can send webhook notifications.

Then, for each event type you wish to subscribe to, you must call the POST Create a webhook subscription method. Supply the following in the request:

  • event_type: The type of webhook event to subscribe to.
  • url: The URL to which Solaris will send the webhook notification.

When you register a new webhook subscription, the Solaris API will check the availability of the provided URL by sending a single POST notification. The notification does not include a body, but it includes the SOLARIS-WEBHOOK-EVENT-TYPE header with a value of WEBHOOK-SUBSCRIPTION.

If your URL returns a 2XX HTTP response code, then the Solaris API will create the webhook subscription and return you a 201 Created response. In the response body, you will find the secret property. You must use the value of this property to verify the authenticity of Solaris webhook notifications. The API only exposes this secret once, so if you misplace it, then you must register a new webhook subscription.

How to update a webhook subscription

Once a webhook subscription has been created, it cannot be modified. You must delete the webhook subscription and register a new one with the desired updated properties.

Webhook notification delivery

Implement the following HTTP response codes for the URL where your solution will receive webhook notifications:

Response Code Reaction
2xx - Success Solaris' webhook service assumes that the notification was successfully delivered.
410 - Gone Solaris' webhook service marks the notification delivery as rejected and cancels the subscription on this particular URL.
422 - Unprocessable Entity The delivery is marked as rejected, and Solaris' webhook service will not re-attempt to deliver the notification.

Any response code not listed above will place the webhook notification into a retry loop. The Solaris webhook service keeps track of the number of retries using a header; with each failed delivery, it will increase the count. After 20 unsuccessful retries over a period of seven days, the message will automatically expire.

Notification content

A webhook notification consists of two parts:

  • Metadata: Information stored in the HTTP header. This could be information related to the webhook subscription itself (consistent across all webhook types) or it could include IDs of entities (e.g., person IDs) related to the webhook event that caused the notification.
  • Payload: Information stored in the HTTP body. This usually contains all of the properties of the resource related to the webhook event that caused the notification.

Content verification

Solaris provides a signature hash in each webhook notification as the value of the Solaris-Webhook-Signature header. This allows you to verify that the notification really came from Solaris and protect against misuse of your webhook URL.

The webhook service generates the signature using the HMAC algorithm. It uses the secret from the webhook subscription as the HMAC key to encrypt the payload, and it encodes the digest used for the signature generation in the header. The Solaris-Webhook-Subscription-Id header references the relevant secret for calculating the signature.

Here is a Ruby example of how to validate a message by its signature:

Copy
Copied
digest_algorithm, signature = request.env['HTTP_SOLARIS_WEBHOOK_SIGNATURE'].split('=')
content = request.body.read

if OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new(digest_algorithm), secret, content) != signature
  halt(422, 'Signature not correct')
end

# process notification

Mandatory webhook events

You are required to subscribe to the following webhook events for compliance purposes:

Beyond compliance requirements, different products require different webhook subscriptions in order to function well. Check the respective product feature guide to learn about which webhooks a particular product requires.

Full list of webhook events

ACCOUNT_BLOCK

The locking_status or locking_reason for a customer's account has changed.

Example payload:

Copy
Copied
{
    "account_id": "11474ab19a7f94ed0723be5d57283323cacc",
    "person_id": "5a9606d11a226de3105e342c7e6685f5cper",
    "business_id": null,
    "locking_status": "DEBIT_BLOCK",
    "updated_at": "2018-10-18T13:06:54.000Z",
    "iban": "DE1111111111111111"
}

ACCOUNT_CLOSURE

The account closure process has completed for a customer's account.

Example payload:

Copy
Copied
{
    "account_id": "11474ab19a7f94ed0723be5d57283323cacc",
    "person_id": "5a9606d11a226de3105e342c7e6685f5cper",
    "business_id": null,
    "iban": "DE39110101004315753522"
}

ACCOUNT_CLOSURE_REQUEST

Solaris has initiated the account closure process for a customer's account.

Example payload:

Copy
Copied
{
    "account_closure_request_uid": "0c9806ec-3038-4828-b68f-e733d0beb116",
    "account_id": "11474ab19a7f94ed0723be5d57283323cacc",
    "legal_closure_date": "2021-09-30",
    "technical_closure_date": "2021-09-30",
    "status": "IN_PROGRESS",
    "closure_reason": "COMPLIANCE_IMMEDIATE_INTERNAL"       
}

ACCOUNT_LIMIT_CHANGE

The limit on an account was changed.

Example payload:

Copy
Copied
{
    "account_id": "adc123a45d6d7cf8fbfeed537ba919d5cacc"
}

ACCOUNT_SNAPSHOT

The status of an account snapshot has changed.

Example payload:

Copy
Copied
{
    "wizard_session_key": null,
    "status_description": null,
    "status": "available",
    "provider": "FINREACH",
    "location": "https://docs.solarisbank.com/",
    "id": "d42a2dfcf32c4550bd1e1fe373bb953bsnap",
    "iban": "DE92370601930002130041",
    "document_ids": null
}

ACQUIRER_TOPUP_DECLINED

A Top Up transaction via an Acquirer was declined. The status of the Top Up has changed to DECLINED.

Example payload:

Copy
Copied
{
    "id": "e7589e4c69224c7ca06bf05973bdd02catpm",
    "amount":
    {
        "value": 12356,
        "currency": "EUR"
    },
    "client_secret": "string",
    "status": "DECLINED",
    "acquirer_error_code": "card_declined",
    "acquirer_decline_code": "exceeds daily limit"
}

ACQUIRER_TOPUP_EXECUTED

Solaris successfully processed a Top Up via an Acquirer. The funds from the Top Up are cleared to the customer's account, and the status of the Top Up has changed to EXECUTED.

Example payload:

Copy
Copied
{
    "id": "e7589e4c69224c7ca06bf05973bdd02catpm",
    "amount":
    {
        "value": 12356,
        "currency": "EUR"
    },
    "client_secret": "pi_1Dr1oJ2eZvKYlo2CmvZ83mAR_secret_be4WTkYYuXXfiEEHIRQBqKIDl",
    "status": "EXECUTED"
}

BENEFICIAL_OWNER

A new beneficial owner was linked to a business, or an existing one was updated. Solaris will send a notification on this webhook if additional beneficial owners are discovered during the business identification process.

Example payload:

Copy
Copied
{
    "id": "6b5861a452880188360f5c104c019f32cbeow",
    "beneficial_owner_id": "ff8b0f2b8bfc64417ccb1ff256eaf02bcper",
    "person_id": "ff8b0f2b8bfc64417ccb1ff256eaf02bcper",
    "valid_until": null,
    "voting_share": "70.5",
    "business_id": "5dbbe1bc494f5e9d7df353757a8dee23cbiz"
}

BOOKING

A booking was created on the account specified in the webhook payload.

Example payload:

Copy
Copied
{
    "id": "35e7389c8a5915b8237ddac48975d9b6cboo",
    "account_id": "48e7376k8a5915b8237ddac48975d9b6am799",
    "creation_date": "2015-11-11",
    "valuta_date": "2015-11-11",
    "booking_date": "2015-11-11",
    "booking_type": "SEPA_CREDIT_TRANSFER",
    "amount":
    {
        "value": 1000,
        "unit": "cents",
        "currency": "EUR"
    },
    "description": "description",
    "recipient_bic": "SOLADEBEXXX",
    "recipient_iban": "DE72110101001000014344",
    "recipient_name": "Arnold Schwarzenegger",
    "sender_bic": "GENODEM1GRN",
    "sender_iban": "DE58401640240101403302",
    "sender_name": "Donald Duck",
    "end_to_end_id": "ABC1",
    "creditor_identifier": "S",
    "mandate_reference": "BCD1",
    "transaction_id": "50a8bab9186b6042bdbfe70cb20d94edctrx",
    "return_transaction_id": null,
    "sepa_charges":
    {
        "value": 0,
        "unit": "string",
        "currency": "string"
    },
    "sepa_return_code": null,
    "sepa_return_reason": null,
    "sepa_return_reason_definition": null,
    "meta_info": null
}

BUSINESS_CHANGED

One or more attributes of a business were changed.

This webhook does not come with a payload. The notification includes the ID of the business that was changed in the header.

BUSINESS_DELETED

Solaris has deleted all data related to the given business from its system. When you receive a notification from this webhook, you must immediately delete all data related to the business.

Example payload:

Copy
Copied
{
    "id": "e51dac3dfa8bd52f9df1a50b091dcbiz"
}

BUSINESS_DIRECT_DEBIT_PROFILE_BLOCK_CANCELLED

A scheduled block on a business' SEPA Direct Debit profile was canceled.

Example payload:

Copy
Copied
{
    "id": "535b186bf0ce4c198010d11e46c27c7e",
    "status": "ACTIVE",
    "status_reasons": "status_reasons",
    "collection_limit":
    {
        "unit": "cents",
        "currency": "EUR",
        "value": 12345
    }
}

BUSINESS_DIRECT_DEBIT_PROFILE_BLOCK_SCHEDULED

A block was scheduled on a business' SEPA Direct Debit profile.

Example payload:

Copy
Copied
{
    "id": "535b186bf0ce4c198010d11e46c27c7e",
    "status": "ACTIVE",
    "status_reasons": "status_reasons",
    "collection_limit":
    {
        "unit": "cents",
        "currency": "EUR",
        "value": 12345
    }
}

BUSINESS_FRONTING_APPLICATION

The status of a business fronting loan application has changed.

Example payload:

Copy
Copied
{
    "id": "321d37be837f4e8bbac199a9bebc2811bfla",
    "status": "pending"
}

BUSINESS_FRONTING_LOAN_PAYOUT

The status of a payout for a business fronting loan has changed.

Example payload:

Copy
Copied
{
    "agio": 0,
    "amount":
    {
        "currency": "EUR",
        "unit": "cents",
        "value": 12000
    },
    "application_id": "b95da9434ed34c35b5e05a294adc9e84bfla",
    "collateral_account_iban": "DEXXXXXXXXXXXXXXXXXXXX",
    "collection_account_iban": "DEXXXXXXXXXXXXXXXXXXXX",
    "duration": 3,
    "effective_interest_rate": 0.033,
    "id": "0c221c2b510848b98347a61ce3a74908bflo",
    "nominal_interest_rate": 0.0335,
    "recipient_iban": "DEXXXXXXXXXXXXXXXXXXXX",
    "recipient_name": "Sebastian H",
    "settlement_account_iban": "DEXXXXXXXXXXXXXXXXXXXX",
    "status": "payout_issued"
}

BUSINESS_IDENTIFICATION

A business identification was created, or its status was updated. The primary purpose of this webhook is to deliver the url where the customer must be redirected to complete a video identification.

Example payload:

Copy
Copied
{
    "id": "9dfe2f4edaa67138be0c0c1cd3a7d849cidt",
    "method": "idnow",
    "url": "https://go.test.idnow.de/...",
    "reference": "TST-FNRGJ",
    "completed_at": "2016-09-14T18:18:28.000Z",
    "status": "successful",
    "business_id": "e51dac3dfa8bd52f9df1a50b091dbac9cbiz"
}

BUSINESS_SEIZURE_CREATED

Solaris has received a request from the authorities (e.g., court, governmental agency) to seize the account(s) of a business.

Example payload:

Copy
Copied
{
    "id": "d44349daf892bb9675946494bd7431cdseiz",
    "delivery_date": "2018-01-01",
    "enactment_date": "2020-01-01",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 0,
        "unit": "cents",
        "currency": "EUR"
    },
    "automatic_payout_date": "2018-01-29",
    "insolvency": false,
    "social_benefits": false,
    "seizure_protected": false,
    "automated": true,
    "country": "DE",
    "debtor": {
        "name": "Seizure Walker Bednar",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE06110101004204224777"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE06110101004204224777"
    },
    "multiple_drittschuldner": true,
    "customer_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper",
    "customer_type": "Business"
}

BUSINESS_SEIZURE_DELETED

Solaris has removed a seizure for a business because it was created by mistake.

Example payload:

Copy
Copied
{
    "id": "772a6af67880d69181f29a6525abd180seiz",
    "delivery_date": "2018-08-22",
    "enactment_date": "2018-08-21",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "debtor": {
        "name": "Mustermann3",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann3",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE72110101001000014344"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE72110101001000014344"
    },
    "customer_id": "e51dac3dfa8bd52f9df1a50b091dbac9cbiz",
    "customer_type": "Business"
}

BUSINESS_SEIZURE_FULFILLED

The status of a seizure on a business has changed to FULFILLED.

Example payload:

Copy
Copied
{
    "id": "211c5c2f34ac442ff6f93d09fc8fb3edseiz",
    "delivery_date": "2019-01-31",
    "enactment_date": "2019-01-28",
    "authority_name": "Court",
    "resolution_case_number": "Number 212121212",
    "seizure_type": "COURT_SEIZURE",
    "status": "FULFILLED",
    "amount": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "debtor": {
        "name": "Company LLC",
        "address": "Wisestrasse 34",
        "postal_code": "10249",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Betflix LLC",
        "address": "Bethousestrasse 43",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE72110101001000014344"
    },
    "creditor_representative": {
        "name": "Lawyer LLC",
        "address": "Gunsterstrasse 22",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42ABC-2",
        "iban": "DE72110101001000014344"
    },
    "customer_id": "da682230fb56352dcf471aa13cc4a37ecbiz",
    "customer_type": "Business"
}

BUSINESS_SEIZURE_UPDATED

The processing method for a seizure for a business has switched from automated to manual.

Example payload:

Copy
Copied
{
    "id": "d44349daf892bb9675946494bd7431cdseiz",
    "delivery_date": "2018-01-01",
    "enactment_date": "2020-01-01",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 0,
        "unit": "cents",
        "currency": "EUR"
    },
    "automatic_payout_date": "2018-01-29",
    "insolvency": false,
    "social_benefits": false,
    "seizure_protected": false,
    "automated": true,
    "country": "DE",
    "debtor": {
        "name": "Seizure Walker Bednar",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE06110101004204224777"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE06110101004204224777"
    },
    "multiple_drittschuldner": true,
    "customer_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper",
    "customer_type": "Business"
}

BUSINESS_TAX_IDENTIFICATION_CHANGED

The tax identification number of a business was modified. The webhook contains the id of the relevant business tax identification in the header and the id of the relevant business in the payload.

Example payload:

Copy
Copied
{
    "business_id": "abe0a6a63b083119b7ce3e541afed425cbiz"
}

CARD_AUTHORIZATION

An authorization was created on the account using the card

Example payload:

Copy
Copied
{
    "id": "40695e2ae8c71302dc73bbb0c49737d7cres",
    "amount": {
        "value": 199,
        "unit": "cents",
        "currency": "EUR"
    },
    "reservation_type": "CARD_AUTHORIZATION",
    "reference": "0a025c31-0066-48cb-a442-4b1d502ad546",
    "status": "OPEN",
    "meta_info": "{\"cards\":{\"card_id\":\"efe766c766461593d151d12eb65d81fdmcrd\",\"merchant\":{\"country_code\":\"FR\",\"category_code\":\"4816\",\"name\":\"PAYPAL *RECISIO KAR\",\"town\":\"35314369001\"},
    \"original_amount\":{\"currency\":\"EUR\",\"value\":199,\"fx_rate\":1.0,\"fx_markup\":0.0006,\"issuer_fee\":0},\"pos_entry_mode\":\"CARD_NOT_PRESENT\",\"trace_id\":\"283013953aecb8a6603331d4584ef1e662d15aa2\",\"transaction_date\":\"2020-02-28\",\"transaction_time\":\"2020-02-28T13:17:20+00:00\",\"transaction_type\":\"PURCHASE\"}}",
    "expires_at": "2020-03-30T00:00:00Z",
    "expired_at": null,
    "resolved_at": null,
    "description": "PAYPAL *RECISIO KAR, 35314369001",
    "partner_id": "6ee8e4c8bdc2f9b15870c989706aa9cccpar"
}

(Legacy) CARD_AUTHORIZATION_DECLINE

note

This webhook is deprecated. Please use CARD_AUTHORIZATION_DECLINE_V2 instead.

A customer's card transaction was declined. Click here to see the full list of possible reasons.

Example payload:

Copy
Copied
{
    "reason": "AUTHENTICATION_REQUIRED",
    "card_transaction": {
        "card_id": "f459e5de647e2909c94a7120c4d03557mcrd",
        "type": "PURCHASE",
        "status": "DECLINED",
        "attempted_at": "2019-04-01T12:23:42+00:00",
        "pos_entry_mode": "CHIP",
        "merchant": {
            "country_code": "DE",
            "category_code": "5999",
            "name": "Shady Bob"
        },
        "amount": {
            "currency": "EUR",
            "value": 1540,
            "unit": "cents"
        },
        "original_amount": {
            "currency": "EUR",
            "value": 1540,
            "unit": "cents"
        }
    }
}

CARD_AUTHORIZATION_DECLINE_V2

A customer's card transaction was declined. Click here to see the full list of possible reasons.

Example payload:

Copy
Copied
{
    "reasons": [{
        "type": "PIN_INCORRECT",
        "id": null,
        "message": null
    }],
    "card_transaction": {
        "card_id": "f459e5de647e2909c94a7120c4d03557mcrd",
        "type": "PURCHASE",
        "status": "DECLINED",
        "attempted_at": "2019-04-01T12:23:42+00:00",
        "pos_entry_mode": "CHIP",
        "merchant": {
            "country_code": "DE",
            "category_code": "5999",
            "name": "Shady Bob",
            "town": "+44XXXXXXX"
        },
        "acquirer_id": "c7f79a72f6cc420592596ff00e4bde68",
        "terminal_id": "1100101110100",
        "amount": {
            "currency": "EUR",
            "value": 1540,
            "unit": "cents"
        },
        "original_amount": {
            "currency": "EUR",
            "value": 1540,
            "unit": "cents"
        }
    }
}

CARD_AUTHORIZATION_RESOLUTION

The reservation was cancelled, expired or booked No push notification for the customer is required for this webhook.

Example payload:

Copy
Copied
{
    "id": "7dd9f7045014b8c19e2a0afbda660b60cres",
    "amount": {
        "value": 89,
        "unit": "cents",
        "currency": "EUR"
    },
    "reservation_type": "CARD_AUTHORIZATION",
    "reference": "0e30e961-9abd-41a2-bbd6-4730a22f17fd",
    "status": "RESOLVED",
    "meta_info": "{\"cards\":{\"card_id\":\"f9da6f050376c129ad5aece63f0ecc91mcrd\",\"merchant\":{\"country_code\":\"LU\",\"category_code\":\"7399\",\"name\":\"AWS EMEA\",\"town\":\"aws.amazon.co\"},\"original_amount\":{\"currency\":\"USD\",\"value\":100,\"fx_rate\":0.89},\"pos_entry_mode\":\"CARD_NOT_PRESENT\",\"trace_id\":\"2d01badb6d5dd1d3df564837c307911bf45fb6f2\",\"transaction_date\":\"2019-05-03\",\"transaction_time\":\"2019-05-03T15:02:58+00:00\",\"transaction_type\":\"PURCHASE\"}}",
    "expires_at": "2019-06-03T00:00:00Z",
    "expired_at": null,
    "resolved_at": "2019-05-10T10:08:57Z",
    "description": "AWS EMEA, aws.amazon.co",
    "partner_id": "87cc31f32765dd9c7e37e4fbcd035357cpar"
}

CARD_FRAUD_CASE_PENDING

A fraud case was recorded on a transaction made by a customer's card, and it requires the customer's immediate response (over a prompt provided by your frontend). See the Cards Smart Agent guide for more information.

Example payload:

Copy
Copied
{
  "id": "sample-uid",
  "resolution": "PENDING",
  "respond_until": "2019-05-06T09:20:00+0000",
  "whitelisted_until": "null",
  "card_transaction": {
    "card_id": "53eb3f4b2b2902eea255a54fc06623f1mcrd",
    "type": "E-commerce",
    "status": "DECLINED",
    "attempted_at": "2019-05-06T09:13:24+0000",
    "pos_entry_mode": "CHIP",
    "merchant": {
      "country_code": "DE",
      "category_code": "SUN WORLD INTERNATIONAL",
      "name": "Merchant name",
    },
    "amount": {
      "currency": "EUR",
      "value": 1540
    },
    "original_amount": {
      "currency": "USD",
      "value": 1442
    },
  },
}

CARD_FRAUD_CASE_TIMEOUT

A fraud case that was recorded for a transaction with a customer's card did not receive a response from the customer within 30 minutes. See the Cards Smart Agent guide for more information.

Example payload:

Copy
Copied
{
    "id": "sample-uid",
    "resolution": "TIMEOUT",
    "respond_until": "2019-05-06T09:20:00+0000",
    "whitelisted_until": "null",
    "card_transaction": {
        "card_id": "53eb3f4b2b2902eea255a54fc06623f1mcrd",
        "type": "E-commerce",
        "status": "DECLINED",
        "attempted_at": "2019-05-06T09:13:24+0000",
        "pos_entry_mode": "CHIP",
        "merchant": {
            "country_code": "DE",
            "category_code": "SUN WORLD INTERNATIONAL",
            "name": "Merchant name",
        },
        "amount": {
            "currency": "EUR",
            "value": 1540
        },
        "original_amount": {
            "currency": "USD",
            "value": 1442
        }
    }
}

CARD_LIFECYCLE_EVENT

The status of the card is changed. Find available statuses here

Example payload:

Copy
Copied
{
    "id": "ess1a2aa3ca123456e78ae90fe123cd4mcrd",
    "status": "ACTIVE",
    "reference": null,
    "type": "VISA_DEBIT",
    "expiration_date": "2022-08-31",
    "person_id": "1234cbf0accbf5cb67a8901f23e456facper",
    "account_id": "adc123a45d6d7cf8fbfeed537ba919d5cacc",
    "business_id": null,
    "representation": {
        "masked_pan": "444433******1111",
        "line_1": "CUSTOMER NAME PRINTED ON CARD",
        "formatted_expiration_date": "08/22"
    }
}

CARD_TOKEN_LIFECYCLE

A push provisioning token has been created or updated for a customer's card.

Example payload:

Copy
Copied
{
    "card_id": "8b48d56bdc1c091d9ab5547fe0e9511bmcrd",
    "token_reference_id": "DNITHE302013556340076206",
    "token_status": "ACTIVE",
    "event_type": "TOKEN_STATUS_UPDATED",
    "message_reason": "OTP_VERIFICATION_RESULT",
    "client_wallet_account_id": "g0qxB6Xbpkjc96Sq7vTase6A",
    "wallet_type": "GOOGLE",
    "visa_pan_reference_id": "V-3019278454673935797827"
}

CASH_OPERATION_STATUS_CHANGED

A customer has paid out/paid in to a cash operation, or the cash operation has expired.

Example payload:

Copy
Copied
{
  "id": "ffb18faf3c004f70a44c83b787488ceeslip",
  "barcode_ean13": "4053110826660",
  "expires_at": "2022-01-04T09:15:59.958864Z",
  "status": "PAID",
  "reference_id": "f92beb45-b46e-4733-be1a-80c085cbad0d",
  "person_id": "2231bdf43cf7b9041367d9ed5c6d4c7acper"
}

CONSUMER_FRONTING_APPLICATION

The status of a consumer loan application has changed.

Example payload:

Copy
Copied
{
    "status": "payout_pending",
    "settlement_account_iban": "DE62999999990012345678",
    "requested_interest_rate": 0.05,
    "recipient_name": "Jane Doe",
    "recipient_iban": "DE82110101004206642492",
    "id": "059e0473b1ee48ceb70258527bca6d52",
    "duration": 6,
    "collection_account_iban": "DE62888888880087654321",
    "collateral_account_iban": "DE62888888880012345678",
    "application_id": null,
    "amount":
    {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "agio": 0.03
}

CONSUMER_OVERDRAFT

The status of a consumer overdraft has changed.

Example payload:

Copy
Copied
  {
    "status": "created",
    "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
    "overdraft_rate": 0,
    "limit": {
      "value": 1000,
      "unit": "cents",
      "currency": "EUR"
    },
    "interest_accrual_rate": 0,
    "id": "229dk5f7ba3b4d69be20555dce1c8a3ccovd",
    "created_at": "2020-20-03T18:01:48.000Z",
    "consumer_application_id": "b83z264de98741018419b53648e20ca9coap",
    "account_iban": "DE87110101001000057123"
  }

CONSUMER_OVERDRAFT_APPLICATION

The status of a consumer overdraft application has changed.

Example payload:

Copy
Copied
  {
     "status_description": "string",
     "status": "scoring_pending",
     "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
     "partner_risk_class": "D",
     "partner_reference_number": "123456",
     "partner_id": "6ee8e4c8bdc2f9b15870c989706aa9cccpar",
     "partner_contact_number": "+491565904345",
     "partner_contact_name": "Peter Mustermann",
     "overdraft_id": "null",
     "net_income_amount": {
     "value": 1000,
     "unit": "cents",
     "currency": "EUR"
        },
        "limit": {
        "value": 1000,
        "unit": "cents",
        "currency": "EUR"
        },
     "identification_id": "9dfe2f4edaa67138be0c0c1cd3a7d849cidt",
     "id": "b83z264de98741018419b53648e20ca9coap",
     "employment_status": "EMPLOYED",
     "credit_record_id": "fbb7d15fa4c54ba0b077592665ef04a4ccrd",
     "created_at": "2020-20-03T18:01:48.000Z",
     "account_iban": "DE87110101001000057123"
  }

CREDIT_LINE

The status of a credit line has changed.

Example payload:

Copy
Copied
{
    "utilized_amount": {
        "value": 1100,
        "unit": "cents",
        "currency": "EUR"
    },
    "status": "open",
    "recipient_iban": "DE85110101010987654321",
    "person_id": "c77044e6a8e35e3a4deaf7c9a4cc2476cper",
    "mandate_reference_number": "L0123456789ABCD",
    "locking_status": "BLOCK",
    "limit": {
        "value": 50000,
        "unit": "cents",
        "currency": "EUR"
    },
    "latest_disposable_income": {
        "value": 9661,
        "unit": "cents",
        "currency": "EUR"
    },
    "interest_rate": 0.12,
    "id": "d968824ecf0c490fa4e1302705bd677dccln",
    "disposable_income": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "created_at": "2019-12-11T17:24:10",
    "annual_percentage_rate": 0.12,
    "active_loans": [
        {
            "id": "36078f1c3e034f6cbf8202da23590e64cloa"
        }
    ],
    "account_id": "01880934bd1531530e2d20a210e4006bcacc",
    "account_iban": "DE25110101002910133758"
}

FREELANCER_CREDIT_LINE_APPLICATION

The status of a freelancer credit line application has changed.

Example payload:

Copy
Copied
{
    "credit_line_id": "b98cc03e2cc44b9c81ebc92f4140a1c3ccln",
    "decision": "OFFERED",
    "employment_status": "FREELANCER",
    "id": "66127afe3b0144d69205c0e6d723facb",
    "marriage_status": "UNMARRIED",
    "net_disposable_income": {
        "currency": "EUR",
        "unit": "cents",
        "value": 200000
    },
    "offered_interest_rate": 0.15,
    "offered_limit": {
        "currency": "EUR",
        "unit": "cents",
        "value": 200000
    },
    "person_id": "5a9606d11a226de3105e342c7e6685f5cper",
    "reason": null,
    "recipient_iban": "ED82110101004206642492",
    "signing_id": null,
    "status": "credit_line_created",
    "status_description": null
}

IDENTIFICATION

A person identification was created, or its status was updated. The primary purpose of this webhook is to deliver the url where the customer must be redirected to complete a video identification.

Example payload:

Copy
Copied
{
    "id": "9dfe2f4edaa67138be0c0c1cd3a7d849cidt",
    "method": "idnow",
    "url": "https://go.test.idnow.de/...",
    "reference": "TST-FNRGJ",
    "completed_at": "2016-09-14T18:18:28.000Z",
    "status": "successful",
    "person_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper"
}

IDENTIFICATION_ORIGINATION

The status of an identification origination has changed.

Example payload:

Copy
Copied
{
    "esigning_id": "5ade4e499b299c299be2987ad597c42ecsig",
    "identification_id": "17905779039e75dce7bf8d68f3184942cidt",
    "identification_origination_id": "589e12da53154010ad180894acbe07ebio",
    "status": "esign_pending",
    "status_description": "Waiting for signing process to finish"
}

IDENTIFICATION_SESSION

The status of an identification session has changed.

Example payload:

Copy
Copied
{
  "status": "created",
  "person_id": "4f6a8804cb45155c2e544019e47cef22cper"
}

LEGAL_REPRESENTATIVE

A legal representative was linked to, or unlinked from, a business. Solaris will send notifications on this webhook if more legal representatives are discovered during the business identification process.

Example payload:

Copy
Copied
{
    "id": "f94cba93fd626365ab354be82271b0cbclrp",
    "legal_representative_id": "1fe8161919deecdb4c97f64de6dcper",
    "legal_representative_type": "Person",
    "valid_until": null,
    "business_id": "abe0a6a63b083119b7ce3e541afed425cbiz"
}

LOAN

Triggered when the status of a credit line loan changes.

Example payload:

Copy
Copied
{
    "utilized_amount": {
        "value": 1100,
        "unit": "cents",
        "currency": "EUR"
    },
    "status": "open",
    "recipient_iban": "DE85110101010987654321",
    "person_id": "c77044e6a8e35e3a4deaf7c9a4cc2476cper",
    "mandate_reference_number": "L0123456789ABCD",
    "locking_status": "BLOCK",
    "limit": {
        "value": 50000,
        "unit": "cents",
        "currency": "EUR"
    },
    "latest_disposable_income": {
        "value": 9661,
        "unit": "cents",
        "currency": "EUR"
    },
    "interest_rate": 0.12,
    "id": "d968824ecf0c490fa4e1302705bd677dccln",
    "disposable_income": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "created_at": "2019-12-11T17:24:10",
    "annual_percentage_rate": 0.12,
    "active_loans": [
        {
            "id": "36078f1c3e034f6cbf8202da23590e64cloa"
        }
    ],
    "account_id": "01880934bd1531530e2d20a210e4006bcacc",
    "account_iban": "DE25110101002910133758"
}

OVERDRAFT

The status of an overdraft has changed.

Example payload:

Copy
Copied
{
    "status": "created",
    "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
    "overdraft_rate": 0,
    "limit":
    {
        "value": 1000,
        "unit": "cents",
        "currency": "EUR"
    },
    "interest_accrual_rate": 0,
    "id": "229dk5f7ba3b4d69be20555dce1c8a3ccovd",
    "created_at": "2020-20-03T18:01:48.000Z",
    "consumer_application_id": "b83z264de98741018419b53648e20ca9coap",
    "account_iban": "DE87110101001000057123"
}

OVERDRAFT_APPLICATION

The status of an overdraft application has changed.

Example payload:

Copy
Copied
{
    "status_description": "string",
    "status": "scoring_pending",
    "person_id": "dc1a6812a14f6cc338cd084208535bcdcper",
    "partner_risk_class": "D",
    "partner_reference_number": "123456",
    "partner_id": "6ee8e4c8bdc2f9b15870c989706aa9cccpar",
    "partner_contact_number": "+491565904345",
    "partner_contact_name": "Peter Mustermann",
    "overdraft_id": "null",
    "net_income_amount":
    {
        "value": 1000,
        "unit": "cents",
        "currency": "EUR"
    },
    "limit":
    {
        "value": 1000,
        "unit": "cents",
        "currency": "EUR"
    },
    "identification_id": "9dfe2f4edaa67138be0c0c1cd3a7d849cidt",
    "id": "b83z264de98741018419b53648e20ca9coap",
    "employment_status": "EMPLOYED",
    "credit_record_id": "fbb7d15fa4c54ba0b077592665ef04a4ccrd",
    "created_at": "2020-20-03T18:01:48.000Z",
    "account_iban": "DE87110101001000057123"
}

PERSON_CHANGED

One or more attributes of a person were changed.

This webhook does not come with a payload. The header will contain the ID of the person that was changed.

PERSON_DELETED

warning

Solaris is legally required to delete records of created persons who did not become customers within 90 days of collecting the personal data according to GDPR regulations.

You are legally required to delete all personal information related to the customer specified in the payload as soon as you receive this webhook notification.

This webhook event occurs when Solaris deletes all personal data related to the given person from its system according to GDPR regulations.

Example payload:

Copy
Copied
{
    "id": "d57e8c6c42a94dff9c2db57c4a42cper"
}

PERSON_MOBILE_NUMBER_CREATED

A mobile number was created for a customer, but has not yet been verified.

This webhook does not contain a payload, but the header will contain the id of the person for whom the mobile number was created.

PERSON_MOBILE_NUMBER_DELETED

A customer's mobile number was deleted.

Example payload:

Copy
Copied
{ 
    "id": "244de401cf4ddbbbafbbc657312a7ce7cmno" 
}

PERSON_SEIZURE_CREATED

Solaris has received a request from the authorities (e.g., court, governmental agency) to seize the account(s) of a person.

Example payload:

Copy
Copied
{
    "id": "d44349daf892bb9675946494bd7431cdseiz",
    "delivery_date": "2018-01-01",
    "enactment_date": "2020-01-01",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 0,
        "unit": "cents",
        "currency": "EUR"
    },
    "automatic_payout_date": "2018-01-29",
    "insolvency": false,
    "social_benefits": false,
    "seizure_protected": false,
    "automated": true,
    "country": "DE",
    "debtor": {
        "name": "Seizure Walker Bednar",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE06110101004204224777"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE06110101004204224777"
    },
    "multiple_drittschuldner": true,
    "customer_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper",
    "customer_type": "Person"
}

PERSON_SEIZURE_DELETED

Solaris has removed a seizure for a person because it was created by mistake.

Example payload:

Copy
Copied
{
    "id": "772a6af67880d69181f29a6525abd180seiz",
    "delivery_date": "2018-08-22",
    "enactment_date": "2018-08-21",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "debtor": {
        "name": "Mustermann3",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann3",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE72110101001000014344"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE72110101001000014344"
    },
    "customer_id": "e51dac3dfa8bd52f9df1a50b091dbac9cper",
    "customer_type": "Person"
}

PERSON_SEIZURE_FULFILLED

The status of a seizure on a person has changed to FULFILLED.

Example payload:

Copy
Copied
{
    "id": "211c5c2f34ac442ff6f93d09fc8fb3edseiz",
    "delivery_date": "2019-01-31",
    "enactment_date": "2019-01-28",
    "authority_name": "Court",
    "resolution_case_number": "Number 212121212",
    "seizure_type": "COURT_SEIZURE",
    "status": "PERSON_SEIZURE_FULFILLED",
    "amount": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 42,
        "unit": "cents",
        "currency": "EUR"
    },
    "debtor": {
        "name": "Ben Wiseley",
        "address": "Wisestrasse 34",
        "postal_code": "10249",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Betflix LLC",
        "address": "Bethousestrasse 43",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE72110101001000014344"
    },
    "creditor_representative": {
        "name": "Lawyer LLC",
        "address": "Gunsterstrasse 22",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42ABC-2",
        "iban": "DE72110101001000014344"
    },
    "customer_id": "da682230fb56352dcf471aa13cc4a37ecper",
    "customer_type": "Person"
}

PERSON_SEIZURE_UPDATED

The processing method for a seizure for a person has switched from automated to manual.

Example payload:

Copy
Copied
{
    "id": "d44349daf892bb9675946494bd7431cdseiz",
    "delivery_date": "2018-01-01",
    "enactment_date": "2020-01-01",
    "authority_name": "Court of Berlin",
    "resolution_case_number": "42a82b",
    "seizure_type": "COURT_SEIZURE",
    "status": "ACTIVE",
    "amount": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "additional_cost": {
        "value": 0,
        "unit": "cents",
        "currency": "EUR"
    },
    "automatic_payout_date": "2018-01-29",
    "insolvency": false,
    "social_benefits": false,
    "seizure_protected": false,
    "automated": true,
    "country": "DE",
    "debtor": {
        "name": "Seizure Walker Bednar",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE"
    },
    "creditor": {
        "name": "Mustermann",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "iban": "DE06110101004204224777"
    },
    "creditor_representative": {
        "name": "Musterstrasse",
        "address": "Musterstrasse",
        "postal_code": "10409",
        "city": "Berlin",
        "country": "DE",
        "state": "BE",
        "case_number": "42",
        "iban": "DE06110101004204224777"
    },
    "multiple_drittschuldner": true,
    "customer_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper",
    "customer_type": "Person"
}

PERSON_TAX_IDENTIFICATION_CHANGED

The tax identification number of a person was modified. The webhook contains the id of the relevant person tax identification in the header and the id of the relevant person in the payload.

Example payload:

Copy
Copied
{
    "person_id": "8a8158a556a8ccd2037eeb49ffc2ac2bcper"
}

POSTBOX_ITEM_CREATED

Solaris has published a new item, and it is now available via Postbox.

Example payload:

Copy
Copied
{
    "id": "d347d967ae8c4d58b93e6698b386cae9pbxi",
    "belongs_to": "3e0b990bb0f49eb1a43904e78461c0cbcper",
    "owner_type": "Person",
    "created_at": "2022-01-04T13:45:05Z",
    "document_date": "2021-06-30",
    "document_type": "BALANCE_CONFIRMATION",
    "name": "Item's name",
    "description": "Description",
    "customer_notification": true,
    "customer_confirmation": false,
    "document_size": 1667317,
    "document_content_type": "application/pdf"
}

REFERENCE_ACCOUNT_CREATED

A customer has registered a new reference account for payouts used with restricted accounts.

Example payload:

Copy
Copied
{
    "id": "9876827fc63a639ee829racc",
    "status": "ACTIVE",
    "iban": "DE12345678900122"
}

REPAYMENT_PLAN

The status of a repayment plan related to a loan has changed.

Example payload:

Copy
Copied
{
    "created_at": "2022-02-07T16:05:02Z",
    "repayments":
    [
        {
            "beginning_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 0
            },
            "date": "2022-02-07",
            "ending_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 10000
            },
            "installment_amount":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": -10000
            },
            "interest_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 0
            },
            "principal_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 0
            }
        },
        {
            "beginning_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 10000
            },
            "date": "2022-04-01",
            "ending_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 6675
            },
            "installment_amount":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3342
            },
            "interest_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 17
            },
            "principal_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3325
            }
        },
        {
            "beginning_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 6675
            },
            "date": "2022-05-02",
            "ending_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3339
            },
            "installment_amount":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3342
            },
            "interest_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 6
            },
            "principal_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3336
            }
        },
        {
            "beginning_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3339
            },
            "date": "2022-06-01",
            "ending_balance":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 0
            },
            "installment_amount":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3342
            },
            "interest_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3
            },
            "principal_paid":
            {
                "currency": "EUR",
                "unit": "cents",
                "value": 3339
            }
        }
    ],
    "updated_at": "2022-02-07T16:05:02Z"
}

RESERVATION_CREATED

A reservation was created on a customer's account. This webhook event is only for seizure-related reservations.

Example payload:

Copy
Copied
{
    "id": "f3d7cbfc-1116-53b3-b9d6-ea8dd93b086a",
    "iban": "DE47110101013478307321",
    "account_id": "c61ca1f2fbf12830517ae2fce6e2cd79cacc",
    "description": "Testing reservation webhook",
    "reservation_type": "Seizure",
    "reference": "1234567example",
    "amount":
    {
        "value": 1234,
        "unit": "cents",
        "currency": "EUR"
    },
    "created_at": "2022-05-19T13:30:30Z",
    "resolved_at": "",
    "status": "OPEN",
    "meta_info":
    {}
}

RESERVATION_RESOLVED

A reservation on a customer's account was resolved. This webhook event is only for seizure-related reservations.

Example payload:

Copy
Copied
{
    "id": "f3d7cbfc-1116-53b3-b9d6-ea8dd93b086a",
    "iban": "DE47110101013478307321",
    "account_id": "c61ca1f2fbf12830517ae2fce6e2cd79cacc",
    "description": "Testing reservation webhook",
    "reservation_type": "Seizure",
    "reference": "1234567example",
    "amount":
    {
        "value": 1234,
        "unit": "cents",
        "currency": "EUR"
    },
    "created_at": "2022-05-19T13:30:30Z",
    "resolved_at": "2022-05-29T13:30:30Z",
    "status": "RESOLVED",
    "meta_info":
    {}
}

SCA_CHALLENGE

A customer has made a purchase or performed a card servicing operation (e.g., adding a card to a Google or Apple Pay wallet) that requires authentication.

Example payload:

Copy
Copied
{
    "amount": {
        "value": 4000,
        "currency": "EUR",
        "unit": "cents"
    },
    "merchant": {
        "name": "Solarisbank AG",
        "country": "826",
        "url": "https://www.solarisbank.com/de"
    },
    "challenged_at": "2021-11-22T13:50:18+00:00",
    "expires_at": "2021-11-22T13:55:18+00:00",
    "person_id": "129b7801ba2b0e225008115f92316500cper",
    "card_id": "1a10d09c0307da6a8bfced025910c7c7mcrd",
    "authenticate_change_request_id": "1047ccb2161c7f4d84b45d2e3e56efedcsc",
    "decline_change_request_id": "cd6760ef5fde2603ed2137e0246f99e8csc",
    "channel": "browser"
}

SEPA_CREDIT_TRANSACTION_DECLINED

A SEPA Credit Transfer conducted by one of your customers was declined. The transaction may have initially been accepted, but then something changed (e.g., a block was placed on the account, the balance proved to be insufficient) and the transaction was declined instead of executed.

Example payload:

Copy
Copied
{
    "id": "411e69f14d3533da53b9b0a73161c3fectrx",
    "status": "DECLINED",
    "reference": "13131913",
    "amount": {
        "value": 10000,
        "unit": "cents",
        "currency": "EUR"
    },
    "description": "Some description",
    "recipient_iban": "DE32110101001000000029",
    "recipient_name": "Hans Mustermann",
    "end_to_end_id": "endtoend-id",
    "batch_id": null,
    "standing_order_id": null,
    "created_at": "2021-09-14T20:12:40Z",
    "declined_at": "2021-09-15T20:12:40Z",
}

SEPA_DIRECT_DEBIT_RETURN

A SEPA Direct Debit return notification was created because a SEPA Direct Debit collection from a customer's account did not meet the payment acceptance criteria, which led to Solaris declining the transaction. The payload will contain information about the SDD return, including its return code.

Example payload:

Copy
Copied
{
    "id": "257eb92c4656691fd02d3de1fa88b9f5csdr",
    "creditor_iban": "DE1111111111111111111",
    "creditor_name": "TEST CREDITOR",
    "creditor_identifier": "DE39ZZZ00000051259",
    "mandate_reference": "SOBKTEST",
    "amount":
    {
        "value": 3365,
        "unit": "cents",
        "currency": "EUR"
    },
    "end_to_end_id": "DD-12-28.05.2018",
    "sepa_return_code": "MS03",
    "description": "Return by bank example",
    "recorded_at": "2018-08-12T13:58:59.110Z",
    "customer_id": "74c586d116e7dcd138af3dd5d754f2abcper",
    "customer_type": "Person",
    "account_id": "3eb274b98be7afb13d91acb8ae53901ecacc"
}

SEPA_SCHEDULED_TRANSACTION

A standing order was either executed or declined. Use this webhook to stay informed about the progression of standing orders and to connect each step in the process with its corresponding booking (or absence thereof).

Example payload:

Copy
Copied
{
    "id": "c14ed45ced80f17a1ecc62214db2738ccsto",
    "account_id": "008cad63f317721e582ba99eefff219fcacc",
    "processed_at": "2017-10-21T00:50:00.438Z",
    "reference": "Reference-56eb879fae8faa2f6d14f87161cst",
    "source": "standing_order",
    "source_id": "c14ed45ced80f17a1ecc62214db2738ccsto",
    "status": "EXECUTED",
    "decline_reason": null,
    "transaction_id": "49a57d88276df2e440cdd2e7eec291ctrx"
}

SEPA_TIMED_ORDER

A timed order was executed.

Example payload:

Copy
Copied
{
    "id": "472730af12864d458b2f04b58404fe43ctor",
    "reference": "ref00514262",
    "status": "EXECUTED",
    "account_id": "4f14b0bc9d306241d3a0044420dadd4acacc",
    "processed_at": "2017-04-06T09:03:05.321+00:00"
}