Openbanking recurring payments

Openbanking recurring payments are payments that have been authorised by an end user. That will be sent by an issuing bank to us. The payments can only be scheduled for fixed amounts at fixed intervals.

Steps to creating an openbanking recurring payment:

  1. Create an customer using the Customers endpoint.

    Note that none of the information requested in customer object are required for openbanking payments. Altough for high risk businsess, we may require more informaiton to be sent.

  2. Create an payment method using the Payments endpoint.

  3. Redirect the user to the link specific in the redirect.url field.

    1. When the user authorised the payment, the payment method state will change from created to succeeded.

    2. When the user rejected the authorisation, the payment method state will change from created to failed.

    3. You can skip our bank selection menu by suppling the following fields:

      1. openbanking.country

      2. openbanking.bic

      3. user.user_agent

      4. user.accept

      5. user.accept_encoding

      6. user.accept_language

      7. user.ip_address

      8. user.language

  4. Depending on the issuing bank, the first payment will arrive within a few minutes, to end of the next day. From this point on the payment is guaranteed.

  5. When the payment arrives with us, we will create the payment with the state succeeded, and call your webhook.

  6. If the first payment never arrives, we will change the payment method state from succeeded to failed.

  7. If subsequent payments will no longer arrive, and this is not because of insufficient funds, we will change the payment method state from succeeded to expired.

    1. In the authorisation process of the recurring payment, we will also generate a SEPA Direct Debit mandate, this mandate allowed you to still process the payment at a later date when funds are available.

Drawing

Example payment method creation request

Example Openbanking Payment Request

Below is a sample request for creating an openbanking recurring payment using our API.

POST /v1/profiles/profile_c4f5e275fed234c98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680/payment-methods
Content-Type: application/json
Accept: application/json
Authorization: Bearer <your_access_token>

{
  "description": "Test description",
  "reference": "c75279b8-60f9-4a7d-a79a-3a231e967e24",
  "method": "openbanking",
  "openbanking": {
    "recurring": {
      "amount": 12583,
      "currency": "EUR",
      "frequency": "monthly",
    }
  }
}

Response

{
    "id": "payment_method_4c52e9aee8874f6ab7ed0420f649b5e2da3",
    "description": "Test description",
    "reference": "c75279b8-60f9-4a7d-a79a-3a231e967e24",
    "openbanking": {
        "recurring": {
            "amount": 12583,
            "currency": "EUR",
            "frequency": "monthly"
        }
    },
    "next": {
        "redirect": "https://dashboard.bankingservice.ai/payment-methods/payment_method_4c52e9aee8874f6abd0420f649b5e2da3/openbanking?reference=46c6255091e7a13cx7a6af81d0c4f7fe"
    },
    "method": "openbanking",
    "reference": "c75279b8-60f9-4a7d-a79a-3a231e967e24",
    "state": "created",
    "created": "2024-09-11T21:32:26.981Z",
    "_links": {
        "self": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680/payment-methods/payment_method_4c52e9aee8874f6abd0420f649b5e2da3",
            "type": "application/json"
        },
        "customer": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680",
            "type": "application/json"
        },
        "profile": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231",
            "type": "application/json"
        }
    }
}

Once the payment has been authorised the state of the payment will be:

{
    "id": "payment_method_4c52e9aee8874f6ab7ed0420f649b5e2da3",
    "description": "Test description",
    "reference": "c75279b8-60f9-4a7d-a79a-3a231e967e24",
    "sepa": {
        "last4": "8606",
        "bic": "ABNANL2A",
        "country": "NL",
        "holder_name": "JH DOE"
    },
    "openbanking": {
        "bic": "ABNANL2A",
        "country": "NL",
        "recurring": {
            "amount": 12583,
            "currency": "EUR",
            "frequency": "monthly"
        }
    },
    "method": "openbanking"
    "state": "succeeded",
    "created": "2024-09-11T21:32:26.981Z",
    "_links": {
        "self": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680/payment-methods/payment_method_4c52e9aee8874f6ab7ed0420f649b5e2da3",
            "type": "application/json"
        },
        "customer": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680",
            "type": "application/json"
        },
        "profile": {
            "href": "/v1/profiles/profile_c4f5e275fed234c98b38f90231",
            "type": "application/json"
        }
    }
}

The data of a subsequent payment will look like:

{
    "id": "payment_e04fd81843b943c58ef2fb8db9e66b2eec3",
    "method": "openbanking",
    "customer": "customer_65382f2a7d804ccdb2021a7ede90680",
    "payment-method": "payment_method_4c52e9aee8874f6ab7ed0420f649b5e2da3",
    "currency": "EUR",
    "amount": 12583,
    "sepa": {
        "last4": "8606",
        "bic": "ABNANL2A",
        "country": "NL",
        "holder_name": "JH DOE"
    },
    "description": "Recurring transfer for (pm7cf38f1dce0b673108dc85e2f7080d1bx)",
    "state": "succeeded",
    "metadata": null,
    "created": "2023-19-12T08:30:35.758Z",
    "_links": {
        "self": {
            "href": "/v1/profiles/profile_c4f5e275fe28fc98b38f90231/payments/payment_e04fd81843b943c58ef2fb8db9e66b2eec3",
            "type": "application/json"
        },
        "profile": {
            "href": "/v1/profiles/profile_c4f5e275fe28fc98b38f90231",
            "type": "application/json"
        },
        "customer": {
            "href": "/v1/profiles/profile_c4f5e275fe28fc98b38f90231/customers/customer_65382f2a7d804ccdb2021a7ede90680",
            "type": "application/json"
        },
        "payment-method": {
            "href": "/v1/profiles/profile_c4f5e275fe28fc98b38f90231/customers/payment-methods/payment_method_4c52e9aee8874f6ab7ed0420f649b5e2da3",
            "type": "application/json"
        }
    }
}

Last updated

Was this helpful?