> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.monite.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server.

# Making SEPA Credit payments

> **Note**
>
> See also [Accepting SEPA Credit payments](../accept/sepa-credit) for the opposite payment direction.

*Available in:* :eu: EU, :uk: UK\
*Supported currencies:* EUR, GBP\
*Supported payer (entity) countries:* Austria BETA, Belgium, Germany, Ireland, Italy, Netherlands, UK

## Overview

***SEPA Credit Transfer*** (SCT) is a payment method used for cross-border and domestic Euro payments within the [Single Euro Payments Area (SEPA)](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area#Coverage) region. Both the sender and the recipient can be companies or individuals.

## Use cases

SEPA Credit is one of the payment methods available for Monite payment links. Entities can use payment links to both send and receive SEPA Credit payments.

![Monite payment page with the SEPA Credit transfer option](/_fern-img/f0fa0f68f14ef0ec9e0c5cdc0a09d9ec76fbcc441c83c03a484d5a7a3e02df85.webp)

### BillPay (pay payables)

1. Entity receives a [payable](../../accounts-payable/payables/collect) from its counterpart (vendor or supplier).
2. The partner's application enables entity users to view the available payables, along with the "pay" option for unpaid payables.
3. When an entity user chooses to pay a payable, the application generates a payment link ID for that payable and uses that ID to initialize the embedded [Payment Web Component](../payment-web-component).
4. The payment component displays the payment details (amount, recipient, due date, etc.) and the available payment methods.
5. To pay via SEPA Credit, the entity user selects "Bank transfer" as the payment method and provides consent to withdraw the payment amount from the entity's bank account.
6. Monite initiates the payment with the entity's bank.
7. After the payment request is accepted by the entity's bank, the funds are transferred via SEPA Credit to the counterpart bank account specified in the payable.

## Requirements

From an integration perspective, using SEPA Credit requires the following from Monite partners:

* [Server side](../../get-started/server-side) - to generate [payment links](../payment-links), receive [webhooks](../../references/webhooks/index) about the payment status, and (optionally) customize the look and feel of the payment page.
* [Client side](../../get-started/client-side/index) - you can use either Monite-hosted payment page (optionally masked with your own domain), or an [embeddable Payment component](../payment-web-component).

Additionally:

* Both the payer (entity) and the recipient (counterpart) must be based in the EU or UK.
* If the recipient counterpart is based in the EU:
  * Payment currency must be EUR. For example, in case of invoice payment scenarios, the invoice currency must be EUR.
  * The counterpart's default bank account must be in a country in the SEPA zone. See [Counterpart bank accounts](../../common/counterparts/bank-accounts) to learn how to specify bank account details.
* If the recipient counterpart is based in the UK:
  * Payment currency must be GBP. For example, in case of invoice payment scenarios, the invoice currency must be GBP.
* Counterpart's bank account must have the account holder name specified.

> **Info**
>
> SEPA Credit does not require any additional entity onboarding besides the abovementioned requirements. However, if an entity also needs [other payment methods](../payment-methods), those payment methods may require additional onboarding. For more information about the onboarding process, see [Payments onboarding](../onboarding/index).

## Scenario: Make a SEPA Credit payment

This guide assumes an [entity](../../entities/index), its [counterpart](../../common/counterparts/index), and the [counterpart's bank account](../../common/counterparts/bank-accounts) have already been created in Monite.

### 1. Enable the SEPA Credit payment method for the entity

To check if SEPA Credit is already enabled for the entity, call [`GET /entities/{entity_id}/payment_methods`](/api/payment-methods/get-entities-id-payment-methods). If `sepa_credit` is not present in the list of payment methods, call [`PUT /entities/{entity_id}/payment_methods`](/api/payment-methods/put-entities-id-payment-methods) to add it. For more information, see [Enabling payment methods for an entity](../onboarding/enable-payment-methods).

In the example below, we're enabling the entity to both receive and send SEPA Credit payments.

```sh
curl -X PUT 'https://api.sandbox.monite.com/v1/entities/e4678...1f6/payment_methods' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'Authorization: Bearer YOUR_PARTNER_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
       "payment_methods_receive": [
         "sepa_credit"
       ],
       "payment_methods_send": [
         "sepa_credit"
       ]
     }'
```

### 2. Create a payment link

A [payment link](../payment-links) is a URL that leads to a secure payment page where the payer (in this example, an entity) can specify their payment details and initiate the payment.

To generate a payment link, call [`POST /payment_links`](/api/payment-links/post-payment-links). In the request body, specify the `recipient` of the payment (in this example, a counterpart), the `payment_methods` to be displayed on the payment page, and other details. The required request fields vary based on whether or not the invoice being paid is stored in Monite. For more information, see [Create a payment link](../payment-links#create).

#### Payment link for an Accounts Payable invoice (bill)

```sh
curl -X POST 'https://api.sandbox.monite.com/v1/payment_links' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer YOUR_PARTNER_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
       "object": {
         "type": "payable",
         "id": "PAYABLE_INVOICE_ID"
       }
       "recipient": {
         "type": "counterpart",
         "id": "COUNTERPART_ID"
       },
       "payment_methods": [
         "sepa_credit",
       ],
       "return_url": "https://example.com/return-url"
     }'
```

#### Payment link for an external bill

```sh
curl -X POST 'https://api.sandbox.monite.com/v1/payment_links' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer YOUR_PARTNER_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
       "recipient": {
         "type": "counterpart"
         "id": "COUNTERPART_ID",
       },
       "amount": 12500,
       "currency": "EUR",
       "payment_reference": "INV-00042",
       "invoice": {
         "issue_date": "2024-06-01",
         "due_date": "2024-06-30",
         "file": {
           "name": "invoice.pdf",
           "mimetype": "application/pdf",
           "url": "https://example.com/path/to/invoice.pdf"
         }
       }
       "payment_methods": [
         "sepa_credit"
       ],
       "return_url": "https://example.com/return-url",
     }'
```

A successful response returns the `id` that can be used to initialize the [Payment Web Component](../payment-web-component) and the `payment_page_url` that can alternatively be shared with an entity representative.

```json
{
  "id": "8babb691-3862-4676-97f4-d61b12284f25",
  ...
  "payment_intent": {
    "id": "e8dac9f8-e68c-4c8e-bcd3-b44cbb4f49d7",
    "updated_at": "2024-06-06T13:18:02.212807+00:00",
    "application_fee_amount": null,
    "object": null,
    "provider": null,
    "selected_payment_method": null,
    "status": "created"
  },
  "payment_intent_id": "e8dac9f8-e68c-4c8e-bcd3-b44cbb4f49d7",
  "payment_methods": [
    "sepa_credit"
  ],
  "payment_page_url": "https://pay.sandbox.monite.com?data=eyJpZCI...",
  "payment_reference": "INV-00042",
  "recipient": {
    "id": "cd830c8d-df0f-4ebd-99b7-d290e3506004",
    "bank_accounts": [
      {
        "id": "dc1efc0a-aac1-43bd-878e-b17e4d4d3039",
        "account_holder_name": "Tobias Weingart",
        "bic": "DEUTDEFFXXX",
        "country": "DE",
        "currency": "EUR",
        "iban": "DE74500700100100000900",
        "is_default": true,
        ...
      }
    ],
    "name": "Acme GmbH",
    "type": "counterpart"
  },
  ...
  "status": "created"
}
```

A [payment intent](../payment-intents) for tracking the payment is also automatically created and stored in the `payment_intent` field of the payment link. You can also access that payment intent directly by calling [`GET /payment_intents/{payment_intent_id}`](/api/payment-intents/get-payment-intents-id).

### 3. Display the payment UI

After a payment link has been generated, you can display the payment UI to the entity representative:

* If your application uses the [Payment Web Component](../payment-web-component), initialize the component using the payment link's `id` to display the payment UI.

* If you use Monite-hosted payment page, redirect the entity representative to the payment link's URL (`payment_page_url`).

The resulting payment page displays information about the payable invoice and payment amount. The entity representative can select their bank and provide the necessary details to authorize a SEPA Credit transfer to the vendor.

![Select "Bank transfer" to pay via SEPA Credit](/_fern-img/f0fa0f68f14ef0ec9e0c5cdc0a09d9ec76fbcc441c83c03a484d5a7a3e02df85.webp)![Payer name and IBAN](/_fern-img/9002ff4521f2b163307ccd0473af80f58788416b035da3e02dd81c3e46d9febd.webp)![Payer will be securely redirected to their bank's website to authorize the payment](/_fern-img/b43d58317e1bd8b56ba3b28afd2c9c88866263d207391efcab53a3db5d74f971.webp)

### 4. Track the payment status

After the entity representative confirms the payment, the payment link [status](../payment-links#lifecycle) is changed to `succeeded` and the payment intent [status](../payment-intents#lifecycle) is changed to `processing`. Monite triggers the following [webhooks](../../references/webhooks/index) when the status of payment links and intents is changed:

* `payment_link.status_updated`
* `payment_intent.status_updated`

You can monitor the `status` of the payment intent to know when the payment has been settled or rejected. The ID of the payment intent is stored in the `payment_intent_id` field of the payment link and is also included in `payment_intent.status_updated` webhooks. For more information, see [Track the payment intent](../payment-intents#track).

## Remarks

* The payment reference value is [normalized](../payment-references) when passed to the payment processing provider.

## Test SEPA Credit payments

See [Testing payments](../testing) for a list of test credentials that you can use with the [sandbox](../../api/concepts/environments) version of the payment page to simulate user consent and test both successful and declined payments.