---
title: "RUAL Core v15.0.2 - Development Release · RUAL Documentation"
description: "Release notes for RUAL Core v15.0.2 (Development Release): 9 new and 1 updated blocks. Read the changelog before you upgrade a cluster to this version."
canonical: https://docs.rual.nl/core-versions/150002
language: en
---

# RUAL Core v15.0.2

Our platform operates on software, commonly known as `core`. This software can be run either locally within the cloud environment of Enterprise Customers or within our AWS cluster.

> **Development Release v15.0.2** This is the latest, **development** release. The documentation and notes of this release is still under development , blocks listed on this pages may change in the final release.

> **Reading these notes** Upgrading? Read the notes for every version between yours and the target, watch for warning callouts at the top (breaking changes), and check the deprecated list against your blueprints via **Deprecated Actions** in RUAL Studio. The full upgrade routine is in [Version Management](https://docs.rual.nl/architecture/version-guide); deprecated blocks keep working: their block page names the successor when one exists.

### Modified or newly introduced blocks

In this release **1** blocks have been modified and **9** new blocks were introduced. You'll find a complete list of blocks at the bottom of this page.

## Block changes in detail

> **Generated from the block catalog** Exact block changes in this release so far, generated from the block catalog. This release is still in development; entries appear here as they land.

- [connect `function`](https://docs.rual.nl/block-types/rabosmartpay/function_create_rabosmartpay): New block: Opens a Rabo Smart Pay connection from a **service provider** holding the webshop's refresh token and signing key. The credentials stay in the provider store; the connection carries only the provider's name. Leave the provider empty to use the entity's payments binding.

- [create payment `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_order_create): New block: Announces an order to Rabo Smart Pay and returns the **redirect url** of the hosted payment page : redirect the customer there. Nothing is paid yet: the outcome comes back on the return URL, through the webhook (**process webhook**) and from **get payment**. Fulfil on the webhook or get payment, never on the return URL alone.

- [get payment `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_order_get): New block: Reads an order as Smart Pay holds it now: **was it paid**, with what, and which transaction to refund. The answer that does not depend on the customer coming back or on a webhook arriving : Smart Pay asks for it as the fallback to the webhook, not as a polling loop.

- [list payment brands `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_paymentbrands_list): New block: The payment brands configured on the webshop and whether each is active, for a checkout that offers only what will work.

- [create refund `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_create): New block: Refunds all or part of a payment transaction. Wire an `idempotency key` that is stable per refund: Smart Pay answers a repeated key with the first refund instead of making a second one.

- [get refund `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_get): New block: Reads one refund's status. A refund starts `PENDING`.

- [refundable details `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_refundable): New block: How much of a payment transaction can still be refunded, and until when.

- [verify return `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_return_verify): New block: Checks the `order_id`, `status` and `signature` Smart Pay appends to the return URL, so a customer cannot type `status=COMPLETED`. Good for choosing the page to show; fulfil on the webhook, because a customer who closes the tab never comes back.

- [process webhook `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_webhook_process): New block: Handles a Smart Pay webhook end to end. The notification carries no order, only a token, so this block **verifies the notification's signature**, pulls the changed orders with its token, and **verifies every page of results** before any of them reaches `order results`. Wire the request body into `payload`. Smart Pay hands each result out once: store what you act on before the endpoint answers.

- [s3 upload `awsconnection`](https://docs.rual.nl/block-types/amazon%20aws/awsconnection_s3_upload): in-pin `metadata`: documentation updated

- [parse CSV `file`](https://docs.rual.nl/block-types/files/file_parse_csv): added in-pin `trim_values` (condition, optional)

- [end storage transaction `function`](https://docs.rual.nl/block-types/storage/function_transaction_end): in-pin `transaction_id`: documentation updated

- [revert storage transaction `function`](https://docs.rual.nl/block-types/storage/function_transaction_revert): in-pin `transaction_id`: documentation updated

- [start storage transaction `function`](https://docs.rual.nl/block-types/storage/function_transaction_start): out-pin `transaction_ref`: documentation updated

- [create `mollieconnection`](https://docs.rual.nl/block-types/mollie/mollieconnection_payments_create): in-pin `sequence_type`: documentation updated

- [validate site config on the load balancers `nginxsite`](https://docs.rual.nl/block-types/nginx/nginxsite_check): in-pin `site`: documentation updated

- [push site config to the load balancers `nginxsite`](https://docs.rual.nl/block-types/nginx/nginxsite_push): in-pin `site`: documentation updated

- [list card `state`](https://docs.rual.nl/block-types/state%20ui/state_card_list): in-pin `options`: documentation updated

- [color `uistyle`](https://docs.rual.nl/block-types/styling/uistyle_color): block documentation updated

## Blocks introduced

- [connect `function`](https://docs.rual.nl/block-types/rabosmartpay/function_create_rabosmartpay): Opens a Rabo Smart Pay connection from a **service provider** holding the webshop's refresh token and signing key. The credentials stay in the provider store; the connection carries only the provider's name. Leave the provider empty to use the entity's payments binding.

- [create payment `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_order_create): Announces an order to Rabo Smart Pay and returns the **redirect url** of the hosted payment page : redirect the customer there. Nothing is paid yet: the outcome comes back on the return URL, through the webhook (**process webhook**) and from **get payment**. Fulfil on the webhook or get payment, never on the return URL alone.

- [create refund `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_create): Refunds all or part of a payment transaction. Wire an `idempotency key` that is stable per refund: Smart Pay answers a repeated key with the first refund instead of making a second one.

- [get payment `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_order_get): Reads an order as Smart Pay holds it now: **was it paid**, with what, and which transaction to refund. The answer that does not depend on the customer coming back or on a webhook arriving : Smart Pay asks for it as the fallback to the webhook, not as a polling loop.

- [get refund `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_get): Reads one refund's status. A refund starts `PENDING`.

- [list payment brands `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_paymentbrands_list): The payment brands configured on the webshop and whether each is active, for a checkout that offers only what will work.

- [process webhook `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_webhook_process): Handles a Smart Pay webhook end to end. The notification carries no order, only a token, so this block **verifies the notification's signature**, pulls the changed orders with its token, and **verifies every page of results** before any of them reaches `order results`. Wire the request body into `payload`. Smart Pay hands each result out once: store what you act on before the endpoint answers.

- [refundable details `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_refundable): How much of a payment transaction can still be refunded, and until when.

- [verify return `rabosmartpayconnection`](https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_return_verify): Checks the `order_id`, `status` and `signature` Smart Pay appends to the return URL, so a customer cannot type `status=COMPLETED`. Good for choosing the page to show; fulfil on the webhook, because a customer who closes the tab never comes back.

## Blocks modified

- [parse csv `file`](https://docs.rual.nl/block-types/files/file_parse_csv): Parse a CSV file into an array of objects.
