# How to add deposit and withdrawal methods through PSS

This instruction explains how to add deposit and withdrawal methods that use payment systems that can be connected to B2CORE through PSS. Payment System Service (PSS) is a new B2CORE service that offers enhanced connections to external payment providers and cashier systems.

Payment systems marked with `Yes` in the **PSS-supported** column in [Integration > Payment systems](/integrations/payment-systems.md) can be connected through PSS.

## General procedure

{% hint style="info" %}
Before adding deposit and withdrawal methods in B2CORE, ensure that you are signed up for the selected payment system and have an active account in that system.
{% endhint %}

The procedure for adding a deposit or withdrawal method for payment systems that support connections through PSS includes two steps:

Configure connections to a payment system in **System** > **External connections**.

{% hint style="warning" %}
If the payment system supports both deposits and withdrawals, and you plan to use it for both, you must create two separate connections: one for deposits and another for withdrawals.
{% endhint %}

For details, refer to [Step 1. How to configure a connection to a PSS-supported payment system](#step-1-how-to-configure-a-connection-to-a-pss-supported-payment-system).

Add the deposit or withdrawal method that will use the selected payment systems.

* To add a deposit method, navigate to **System** > **Deposit system** > **Deposit methods**.
* To add a withdrawal method, navigate to **System** > **Payout system** > **Payout methods**.

For details, refer to [Step 2. How to add a deposit or withdrawal method](#step-2-how-to-add-a-deposit-or-withdrawal-method).

Test the method configuration to validate that the configuration settings and credentials from the corresponding external connection are correct and that the method is operational.

For details, refer to [Step 3. How to test a method configuration](#step-3-how-to-test-a-method-configuration).

{% embed url="<https://share.synthesia.io/3ef52e62-66ff-4969-a603-6d059fc38fef>" %}
Payment system setup via PSS: Part 1
{% endembed %}

## Step 1. How to configure a connection to a PSS-supported payment system

If a payment system supports both deposits and withdrawals and you intend to use it for both, you must configure two separate connections: one for deposits and another for withdrawals.

To configure a connection to a payment system:

{% stepper %}
{% step %}
Navigate to **System** > **External connection**.
{% endstep %}

{% step %}
Click **+Create** in the upper-right page corner.
{% endstep %}

{% step %}
On the **Create connection** page, fill in the following fields:

* In the **Name** field, enter a name for the connection. The name can only contain Latin letters, numbers, dashes, and underscores.
* In the **Caption** field, enter a caption that will be applied to the connection in the Back Office.
* In the **Provider** dropdown, select:
  * **PaymentSystemDeposit** — to configure a connection that will be used for a deposit method.
  * **PaymentSystemWithdrawal** — to configure a connection that will be used for a withdrawal method.
    {% endstep %}

{% step %}
In the **Driver** dropdown that appears, select the payment system that you want to use for the deposit or withdrawal method.
{% endstep %}

{% step %}
In the **Credentials** section that appears, fill in the required connection settings specific to the selected payment system.
{% endstep %}

{% step %}
Click **Save** to create the connection.

The connection will appear in the list of external connections.
{% endstep %}

{% step %}
Check the connection status.

If the connection is inactive (**No** is displayed in the **Enabled** column), click the **Edit** button to open the connection details and set the **Enabled** dropdown to **Yes**.
{% endstep %}

{% step %}
Click **Save** to apply the changes.
{% endstep %}
{% endstepper %}

The connection is now ready to be used for adding a deposit or withdrawal method.

{% embed url="<https://share.synthesia.io/357e9061-4262-4871-94b3-3d86437add25>" %}
Payment system setup via PSS: Part 2
{% endembed %}

## Step 2. How to add a deposit or withdrawal method

After configuring the required connections to the payment system, proceed to add and set up a deposit or withdrawal method:

{% stepper %}
{% step %}
Navigate to **System** > **Deposit system** > **Deposit methods**

or

**System** > **Payout system** > **Payout methods**.
{% endstep %}

{% step %}
Click **+Create** in the upper-right page corner.
{% endstep %}

{% step %}
On the **Create method** page, fill in the following fields:

* In the **Name** field, enter a name for the method. The name must be unique and may only contain Latin letters, numbers, dashes, and underscores.
* In the **Caption** field, enter a caption for the method. This caption will be assigned to the method in the Back Office and will be visible to clients in the B2CORE UI.
* In the **Provider** dropdown, select:
  * **PaymentSystemDeposit** — to add a deposit method.
  * **PaymentSystemWithdrawal** — to add a withdrawal method.
    {% endstep %}

{% step %}
After selecting the provider, the following fields will appear:

* In the **Available account currencies** dropdown, select one or more currencies. The method can only be applied to accounts denominated in the selected currencies.
* In the **Driver** dropdown, select the payment system that will be used for this method.
* In the **Connection** dropdown, select the previously configured [connection](#step-1-how-to-configure-a-connection-to-a-pss-supported-payment-system) to the payment system.
  {% endstep %}

{% step %}
After specifying the connection, the **Configuration** section will appear, in which you may need to configure additional settings for the method.

If the message `Configuration form is empty` is displayed, no additional settings are required.
{% endstep %}

{% step %}
Click **Save** to create the method.

The method will appear in the list of deposit methods.
{% endstep %}

{% step %}
Click the **Edit** button to enter the method details and complete the following fields:

* On the **Settings** tab, select one or more groups in which the method will be included, such as **Crypto**, **Fiat**, or both.
* In the **Icon** field, specify the icon name that can be found in [Payment systems](/integrations/payment-systems.md) to display the icon for the method in the B2CORE UI. To use a custom icon, specify the URL of the image to be displayed.
* Check the method status.

  If the method is inactive (**No** is displayed in the **Enabled** field), activate it by setting the **Enabled** dropdown to **Yes**.
* Add the needed currencies on the **PS Currencies** tab (for the tab description, refer to [Deposit methods](/back-office-guide/system/deposit-system.md#details) or [Payout methods](/back-office-guide/system/payout-system.md#details)).
* If needed, configure commissions for the methods on the **Commissions** tab (for details, refer to [How to configure commissions for deposit and withdrawal methods](/how-to-articles/manage-payment-methods/how-to-configure-commissions-for-deposit-and-withdrawal-methods.md)).
  {% endstep %}

{% step %}
Click **Save** to apply the changes.
{% endstep %}
{% endstepper %}

The deposit or withdrawal method that uses the selected payment system is now configured in the B2CORE Back Office.

{% embed url="<https://share.synthesia.io/a8f051ab-4fbc-4cec-8ff2-e2fafcef00d8>" %}
Payment system setup via PSS: Part 3
{% endembed %}

## Step 3. How to test a method configuration

To validate the configuration and connection settings of a deposit or withdrawal method and ensure the method is operational, use **configuration testing**, which is available:

* during method creation
* during method configuration editing
* during background testing while the method is in use

### How to manually test a method configuration

Use manual configuration testing when creating a method or editing its configuration to verify that the method connection and configuration settings are correct before saving your changes.

To test a method configuration:

{% stepper %}
{% step %}
Navigate to **System** > **Deposit system** > **Deposit methods**

or

**System** > **Payout system** > **Payout methods**.
{% endstep %}

{% step %}
Select the method and click **Edit** to open the method details.
{% endstep %}

{% step %}
Click the **Test configuration** button below the **Configuration** form to validate the method connection and configuration settings.
{% endstep %}
{% endstepper %}

The test is performed using two data sources: the information entered in the **Configuration** form and the **Credentials** specified in the external connection selected for the method.

The test result is displayed on the page and can be one of the outcomes listed in [Method configuration test results](#method-configuration-test-results).

### How to view background method configuration test results

After a deposit or withdrawal method is successfully created, a **background testing process** starts automatically. At defined intervals, the system validates two data sources: the information entered in the **Configuration** form and the **Credentials** provided by the external connection selected for the method. These checks may result in one of the outcomes listed in [Method configuration test results](#method-configuration-test-results).

Unlike manual testing performed using the **Test configuration** button, background testing can detect issues that weren't present when the method was created or edited but appeared later due to changes in the payment system behavior.

To view background test results:

{% stepper %}
{% step %}
Navigate to **System** > **Deposit system** > **Deposit methods**

or

**System** > **Payout system** > **Payout methods**.
{% endstep %}

{% step %}
Select the method and click **Edit** to open the method details.
{% endstep %}

{% step %}
Go to the **Test configuration** tab to view the background test results.

{% hint style="info" %}
Manual configuration testing performed using the **Test configuration** button doesn't affect background test results and isn't displayed on this tab.
{% endhint %}
{% endstep %}
{% endstepper %}

The background test results are displayed as follows.

When a method is initially created and the **Configuration** form (if applicable) is completed, along with the creation of an external connection containing **Credentials**, both the **Configuration** and **Credentials** records are assigned **version 1**. The current versions are shown in the lower-right corner of the tab.

<figure><img src="/files/44hbEoJCyEqVX3Y8plrD" alt="New method configuration testing"><figcaption><p>New method configuration testing</p></figcaption></figure>

Each time the **Configuration** or the associated **Credentials** from the external connection used by the method are updated, the system automatically increments the corresponding version number. When a new version is created, background testing for that version starts automatically. As a result, the test outcome may differ from the previous one.

<figure><img src="/files/t7vTwGP1LZwx6sWfMjpz" alt="Updated method configuration testing"><figcaption><p>Updated method configuration testing</p></figcaption></figure>

After the **Configuration** or **Credentials** are updated:

* The corresponding version is increased.
* Background testing of the new version starts and may take some time.
* Results of the previous tests become outdated:
  * They are moved to the **Previous** tests section.
  * Their **Relevance** value changes to `Old`.

Once background testing of the new version is completed:

* The latest test result becomes the current one.
* The **Relevance** value changes to `Actual`, indicating that the result corresponds to the current configuration version.

Background test result may also change without updating versions of the **Configuration** or **Credentials** from the respective external connection. This can occur for several reasons, including temporary unavailability of the external payment system, changes to the external service API, errors during the testing process. In such cases, a new background test result is also displayed on the tab.

### Method configuration test results

Configuration testing can return one of the following results, indicating the current status of a deposit or withdrawal method:

* **Authorized** — successful authentication with the payment system. The payment system account has sufficient permissions to perform financial operations.

<figure><img src="/files/BAz0G6Gq3C0PUdGYpoTs" alt="Successful — Authorized" width="450"><figcaption><p>Successful — Authorized</p></figcaption></figure>

* **Available** — successful authentication with the payment system. This status doesn't guarantee that the account has permissions to create deposits or withdrawals.

<figure><img src="/files/9PRzrdMpdq8DCjccBU4R" alt="Successful — Available" width="450"><figcaption><p>Successful — Available</p></figcaption></figure>

* **Failed** — configuration testing has failed. This status includes an error code and description.

<figure><img src="/files/sEbW7GJNrkMqw8Og5PeR" alt="Failed" width="450"><figcaption><p>Failed</p></figcaption></figure>

* **Unexpected** — an unexpected configuration test result. This status includes an error code and description.

<figure><img src="/files/9SCaaizn6VXWCcG8sJSS" alt="Unexpected" width="450"><figcaption><p>Unexpected</p></figcaption></figure>

* **Not implemented** — configuration testing is not implemented for this payment driver.

<figure><img src="/files/kR0qNRQK82wRSny512rP" alt="Not implemented" width="450"><figcaption><p>Not implemented</p></figcaption></figure>

{% hint style="success" %}
**See also**

[How to configure commissions for deposit and withdrawal methods](/how-to-articles/manage-payment-methods/how-to-configure-commissions-for-deposit-and-withdrawal-methods.md)

[How to restrict the use of deposit and withdrawal methods](/how-to-articles/manage-payment-methods/how-to-restrict-the-use-of-deposit-and-withdrawal-methods.md)

[How to process transactions with the Assistance status](/how-to-articles/manage-finances/how-to-process-transactions-with-the-assistance-status.md)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2core.b2broker.com/how-to-articles/manage-payment-methods/how-to-add-deposit-and-withdrawal-methods-through-pss.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
