---
title: "B2C Finland API Methods"
canonical: https://documentation.maventa.com/api-specification/soap-api/b2c-finland-api-methods/
---

API methods for [consumer invoicing in Finland](https://documentation.maventa.com/integration-guide/invoice-sending/consumer-invoicing/fi/). For new integrations, we recommend using the [REST API](https://documentation.maventa.com/api-specification/rest-api/b2cfi-api/) instead. B2C Finland uses a separate WSDL from the main SOAP API:

- Testing: `https://testing.maventa.com/apis/banks/wsdl`
- Production: `https://secure.maventa.com/apis/banks/wsdl`

## message_send

Used for sending SI-messages for B2C Finland. Returns OK and new message ID or ERROR.

> [!NOTE]
> The message needs to be XSD schema valid and complete. It will be sent to the bank as-is — no additions or conversions are made.

> [!WARNING]
> The system returns OK immediately when the message has been sent successfully. Between banks, B2C messages can travel with a delay of up to 1–4 banking days. Possible error messages can arrive even after a week. If the message fails on the bank side you will get an error. If the message is accepted, no separate confirmation message is sent.

```plain
/banks/api/message_send
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

message (base64)

| Key  | Type   | Description      |
|:-----|:-------|:-----------------|
| file | base64 | SI-message file  |

### Output

return (MessageResponse)

| Key        | Type   | Description                                              |
|:-----------|:-------|:---------------------------------------------------------|
| status     | string | Status string, includes OK or ERROR                      |
| message_id | string | 36 character UUID of new SI-message if successfully created |

### Return values

| Key    | Type   | Message                                    | Description                 |
|:-------|:-------|:-------------------------------------------|:----------------------------|
| return | string | OK                                         |                             |
|        |        | ERROR: DUPLICATE MESSAGEID                 | Given message ID is duplicate |
|        |        | ERROR: ONLY ONE MESSAGE PER FILE ALLOWED   |                             |
|        |        | ERROR: SOAP HEADER MISSING                 |                             |
|        |        | ERROR: USER NOT FOUND                      |                             |
|        |        | ERROR: COMPANY BANK CONNECTION NOT ACTIVE  |                             |
|        |        | ERROR: INVALID SENDER INTERMEDIATOR        |                             |
|        |        | ERROR: MESSAGE NOT FOUND OR NO RIGHTS      |                             |

## message_status

Used for getting the status of a sent SI-message. Uses the UUID returned by the message_send method.

> [!NOTE]
> In case an SI-message ends up in an error state on the sending bank side, error_message_list only returns the SI-message status as ERROR and does not return any error reasons.

```plain
/banks/api/message_status
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

| Key        | Type   | Description     |
|:-----------|:-------|:----------------|
| message_id | string | UUID message_id |

### Output

return (MessageStatus)

| Key     | Type   | Description                          |
|:--------|:-------|:-------------------------------------|
| status  | string | Status string, includes OK or ERROR  |
| message | string | Message                              |

### Return values

| Key    | Type   | Message                               | Description |
|:-------|:-------|:--------------------------------------|:------------|
| return | string | OK                                    |             |
|        |        | ERROR: USER NOT FOUND                 |             |
|        |        | ERROR: MESSAGE NOT FOUND OR NO RIGHTS |             |

## error_message_list

Used for listing error messages based on given timestamps. Returns status and a table that contains `id` and `original_id` (refers to the SI-message UUID).

```plain
/banks/api/error_message_list
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

| Key             | Type   | Description                                 |
|:----------------|:-------|:--------------------------------------------|
| timestamp_start | string | Start time for search, format YYYYMMDDHHMMSS |
| timestamp_end   | string | End time for search, format YYYYMMDDHHMMSS   |

### Output

return (ErrorList)

| Key            | Type                | Description                                                            |
|:---------------|:--------------------|:-----------------------------------------------------------------------|
| status         | string              | Status                                                                 |
| error_messages | ErrorListMessageOut | A table that contains `id` and `original_id` (refers to the SI-message UUID) |

error_messages (ErrorListMessageOut)

| Key         | Type   | Description       |
|:------------|:-------|:------------------|
| id          | string | Error message ID  |
| original_id | string | SI-message UUID   |

### Return values

| Key    | Type   | Message                                              | Description |
|:-------|:-------|:-----------------------------------------------------|:------------|
| status | string | OK                                                   |             |
|        |        | ERROR: TIMESTAMP FORMAT INVALID FOR START TIMESTAMP  |             |
|        |        | ERROR: TIMESTAMP FORMAT INVALID FOR END TIMESTAMP    |             |
|        |        | ERROR: USER NOT FOUND                                |             |
|        |        | ERROR: UNKNOWN ERROR                                 |             |

## error_message_show

Used to download a separate message from the bank that contains the error reason.

```plain
/banks/api/error_message_show
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

| Key              | Type   | Description             |
|:-----------------|:-------|:------------------------|
| error_message_id | string | Error message ID (UUID) |

### Output

return (ErrorMessageOut)

| Key           | Type   | Description                    |
|:------------- |:-------|:-------------------------------|
| status        | string | Status of the API call         |
| error_message | base64 | File contents in base64 format |

### Return values

| Key    | Type   | Message                               | Description |
|:-------|:-------|:--------------------------------------|:------------|
| status | string | OK                                    |             |
|        |        | ERROR: USER NOT FOUND                 |             |
|        |        | ERROR: MESSAGE NOT FOUND OR NO RIGHTS |             |

## ri_message_list

Used to list UUIDs for RI (Return Information) messages received based on given timestamps. Returns status and a table that contains UUIDs.

```plain
/banks/api/ri_message_list
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                         |
|:---------------|:-------|:------------------------------------|
| company_uuid   | string | UUID of current company             |
| user_api_key   | string | User API key                        |
| vendor_api_key | string | Partner software API key (mandatory) |

| Key             | Type   | Description                                 |
|:----------------|:-------|:--------------------------------------------|
| timestamp_start | string | Start time for search, format YYYYMMDDHHMMSS |
| timestamp_end   | string | End time for search, format YYYYMMDDHHMMSS   |

### Output

return (RiList)

| Key            | Type   | Description            |
|:---------------|:-------|:-----------------------|
| status         | string | Status of the API call |
| ri_message_ids | Array  | RI-message IDs         |

### Return values

| Key    | Type   | Message                                             | Description |
|:-------|:-------|:----------------------------------------------------|:------------|
| status | string | OK                                                  |             |
|        |        | ERROR: TIMESTAMP FORMAT INVALID FOR START TIMESTAMP |             |
|        |        | ERROR: TIMESTAMP FORMAT INVALID FOR END TIMESTAMP   |             |

## ri_message_show

Used to download an RI (Return Information) message.

```plain
/banks/api/ri_message_show
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

| Key           | Type   | Description          |
|:--------------|:-------|:---------------------|
| ri_message_id | string | RI-message ID (UUID) |

### Output

return (RiMessageOut)

| Key        | Type   | Description                    |
|:-----------|:-------|:-------------------------------|
| status     | string | Status of the API call         |
| ri_message | base64 | File contents in base64 format |

### Return values

| Key    | Type   | Message                               | Description |
|:-------|:-------|:--------------------------------------|:------------|
| status | string | OK                                    |             |
|        |        | ERROR: USER NOT FOUND                 |             |
|        |        | ERROR: MESSAGE NOT FOUND OR NO RIGHTS |             |

## ri_message_delete

Used to remove a single RI (Return Information) message by ID. Returns OK or ERROR as status.

```plain
/banks/api/ri_message_delete
```

### Input

api_keys (ApiKeys)

| Key            | Type   | Description                |
|:---------------|:-------|:---------------------------|
| company_uuid   | string | UUID of current company    |
| user_api_key   | string | User API key               |
| vendor_api_key | string | Partner software API key   |

| Key           | Type   | Description          |
|:--------------|:-------|:---------------------|
| ri_message_id | string | RI-message ID (UUID) |

### Output

| Key    | Type   | Description                     |
|:-------|:-------|:--------------------------------|
| status | string | Status of the API call, OK/ERROR |

### Return values

| Key    | Type   | Message                               | Description |
|:-------|:-------|:--------------------------------------|:------------|
| status | string | OK                                    |             |
|        |        | ERROR: USER NOT FOUND                 |             |
|        |        | ERROR: MESSAGE NOT FOUND OR NO RIGHTS |             |

