---
title: "Receives notifications from Shinkansen"
method: POST
path: "/notifications"
tags: ["Notifications"]
---

# Receives notifications from Shinkansen

`POST /notifications`

Webhook for receiving notifications

## Request body

- ParticipantNotificationMessage — Notifications, sent by Shinkansen
  - `document` object, required — Envelops the message content
    - `header` ForwardedMessageHeader, required — Header with meta-data of the forwarded message
      - `message_id` string, uuid, required — UUID Unique identifier of the message. Generated by the participant initiating the transactions, sending the responses or sending notifications.
      - `shinkansen_message_id` string, uuid, required — UUID Unique identifier of the message. Generated by Shinkansen.
      - `creation_date` string, date-time, required — Creation date of the message in ISO 8601 format. Generated by the participant initiating the transactions (or sending the responses).
      - `sender` object, required — The identifier for a financial institution
        - `fin_id_schema` string, required — Identification schema for financial institution, namely, any participant in Shinkansen Network. Use `"SHINKANSEN"` for Shinkansen's native network ids and full support on any participant and service of the Shinkansen network. Other schemas might be used when interfacing with other networks but they are *not* recommended unless you *really* know what you are doing or have been explicitly instructed to do so by Shinkansen.
        - `fin_id` string, required — Identification according to schema. When the `"SHINKANSEN"` schema is used (as recommended), this is the ID assigned by Shinkansen to the participant in the network. In the context of the `header`, it refers to the Shinkansen network participant that sends (Sender) or receives (Receiver) the message. In the context of the `transactions`, it refers to the financial institution from which the resources leave or where the resources arrive. The ID assigned by Shinkansen to the financial institution can be found in https://docs.shinkansen.tech/docs/instituciones-financieras. When sending a transaction to Shinkansen, this value must always be SHINKANSEN. When sending a payout order to Shinkansen Treasury, this value must be SHINKANSEN_TREASURY
      - `receiver` object, required — The identifier for a financial institution
        - `fin_id_schema` string, required — Identification schema for financial institution, namely, any participant in Shinkansen Network. Use `"SHINKANSEN"` for Shinkansen's native network ids and full support on any participant and service of the Shinkansen network. Other schemas might be used when interfacing with other networks but they are *not* recommended unless you *really* know what you are doing or have been explicitly instructed to do so by Shinkansen.
        - `fin_id` string, required — Identification according to schema. When the `"SHINKANSEN"` schema is used (as recommended), this is the ID assigned by Shinkansen to the participant in the network. In the context of the `header`, it refers to the Shinkansen network participant that sends (Sender) or receives (Receiver) the message. In the context of the `transactions`, it refers to the financial institution from which the resources leave or where the resources arrive. The ID assigned by Shinkansen to the financial institution can be found in https://docs.shinkansen.tech/docs/instituciones-financieras. When sending a transaction to Shinkansen, this value must always be SHINKANSEN. When sending a payout order to Shinkansen Treasury, this value must be SHINKANSEN_TREASURY
    - `notifications` Notification[], required — One or more notifications.
      - union
        - PayinNotification — Contains a payin notification
          - `notification_id` string, required — Unique identifier for the notification set by the financial institution
          - `shinkansen_notification_id` string, required — Unique identifier for the notification set by Shinkansen
          - `original_notification_id` string — Internal identifier for the original notification (bank-specific, only if the financial institution provides it — might not be present)
          - `notification_date` string, required — Date and time when the notification was created
          - `transaction_date` string — Date and time when the transaction associated with this notification was created
          - `transaction_accounting_id` string — Unique identifier for the accounting item associated with the notification's transaction. Not all financial institutions provide this information. Useful for reconciliation purposes, if available.
          - `transaction_accounting_date` string — Date and time when the transaction is accounted. Not all financial institutions provide this information. Useful for reconciliation purposes, if available.
          - `notification_type` string, required — Type of notification. Typically `"payin"` for this type of notification, but can also be `"payin_reversal"` when a previously notified payin is reversed.
          - `referenced_shinkansen_notification_ids` string[] — If the notification type is 'payin_reversal' this list will contain the shinkansen_notification_id corresponding to the payin notification associated with the reversal.
          - `currency` string, required — Currency ISO 4217 code (e.g: `"CLP"`)
          - `amount` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
          - `description` string — Description of the transaction
          - `debtor` object, required — Information about the source of the payin transaction. No field is required, as their availability depends on the underlying network. We make the best effort to provide as much information as available.
            - `name` string — Debtor name. The legal name of the legal/natural person sending the funds.
            - `identification` object — The identifier for a legal or natural person
              - …
            - `financial_institution` object — The identifier for a financial institution
              - …
            - `account` string — Bank account number of the debtor from where the funds are moving.
            - `account_type` string — Account type. See https://docs.shinkansen.tech/docs/tipos-de-cuentas for possible values.
            - `email` string, email — E-mail of the legal or natural person sending the funds. Optional.
          - `creditor` object, required — Information about the destination of the payin transaction. Only the financial_institution and account fields are required. The rest are provided only if the underlying rail provides them.
            - `name` string — Creditor name. Should refer to the legal name of the participant receiving the notification.
            - `identification` object — The identifier for a legal or natural person
              - …
            - `financial_institution` object, required — The identifier for a financial institution
              - …
            - `account` string, required — Bank account number of the creditor at the referenced bank or financial institution. The account must be previously setup to be able to receive notifications.
            - `account_type` string — Account type. See https://docs.shinkansen.tech/docs/tipos-de-cuentas for possible values.
            - `email` string, email — E-mail of the legal or natural person receiving the funds. Rarely used.
          - `payment_operator_metadata` object — Extra information about payins. Tha data present here depends on financial institution.
        - AccountStatementNotification — Contains an account statement notification
          - `notification_type` string, required — The type of notification. Always "account_statement" for this notification type.
          - `notification_id` string, required — Unique identifier for the notification set by Shinkansen
          - `original_notification_id` string — Unique identifier for the original notification (bank-specific, only if the financial institution provides it — might not be present)
          - `notification_date` string, date-time, required — Date and time when the notification was created
          - `account_statement_id` string, required — The unique identifier for the account statement.
          - `account_statement_date` string, date-time, required — The date and time when the account statement is generated.
          - `account` string, required — The account number associated with the statement.
          - `financial_institution` object, required — The identifier for a financial institution
            - `fin_id_schema` string, required — Identification schema for financial institution, namely, any participant in Shinkansen Network. Use `"SHINKANSEN"` for Shinkansen's native network ids and full support on any participant and service of the Shinkansen network. Other schemas might be used when interfacing with other networks but they are *not* recommended unless you *really* know what you are doing or have been explicitly instructed to do so by Shinkansen.
            - `fin_id` string, required — Identification according to schema. When the `"SHINKANSEN"` schema is used (as recommended), this is the ID assigned by Shinkansen to the participant in the network. In the context of the `header`, it refers to the Shinkansen network participant that sends (Sender) or receives (Receiver) the message. In the context of the `transactions`, it refers to the financial institution from which the resources leave or where the resources arrive. The ID assigned by Shinkansen to the financial institution can be found in https://docs.shinkansen.tech/docs/instituciones-financieras. When sending a transaction to Shinkansen, this value must always be SHINKANSEN. When sending a payout order to Shinkansen Treasury, this value must be SHINKANSEN_TREASURY
          - `currency` string, required — Currency ISO 4217 code (e.g: `"CLP"`)
          - `account_statement_number` string, required — The number of the account statement, set by the financial institution.
          - `since_booking_date` string, required — The start date of the booking period for the statement.
          - `until_booking_date` string, required — The end date of the booking period for the statement.
          - `opening_balance` object, required — The balances of the account at the start of the account statement
            - `book_balance` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
            - `available_balance` string — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
          - `closing_balance` object, required — The balances of the account at the end of the account statement
            - `book_balance` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
            - `available_balance` string — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
          - `entries` object[], required — The list of transactions during the statement period.
            - `unique_reference` string, required — Unique reference for the entry
            - `unique_reference_type` 'provided' | 'computed' | 'none', required — Type of unique reference. Can be "provided", "computed", or "none". When "none", the unique reference is randomly generated and can't be used to de-duplicate or recognize the same item on a different report. Computed unique references are generated by Shinkansen Network. When the unique reference is provided by the financial institution, the type is "provided".
            - `references` string[] — List of references for the entry. Usually a list of documents or transactions that are related to this entry. Generally in "<format>:<id>" format. For example, `["documento:123456789012", "operacion:ab123"]`.
            - `amount` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
            - `direction` 'credit' | 'debit', required — The direction of the entry. Can be "credit" or "debit". Credits are "positive" sums added to the account balance. Debits are "negative" sums subtracted from the account balance.
            - `booking_date` string, date, required — Date of bank booking for this specific entry.
            - `operation_date` string, date-time — Date and time when the operation was actually performed. Not all financial institutions provide this information. When only the date is available but not the time, the timestamp will be midnight of that day in the bank operating time zone (which might be UTC or local/regional time).
            - `description` string — Description of the entry
            - `details` object — Additional details of the transaction, optional.
              - …
        - AccountReportNotification — Contains an account report notification
          - `notification_type` string, required — The type of notification. Always "account_report" for this notification type.
          - `notification_id` string, required — Unique identifier for the notification set by Shinkansen
          - `original_notification_id` string — Unique identifier for the original notification (bank-specific, only if the financial institution provides it — might not be present)
          - `notification_date` string, required — Date and time when the notification was created
          - `account_report_id` string, required — Unique identifier for the account report
          - `account_report_date` string, date-time, required — Date and time when the account report was created
          - `account` string, required — The account number
          - `financial_institution` object, required — The identifier for a financial institution
            - `fin_id_schema` string, required — Identification schema for financial institution, namely, any participant in Shinkansen Network. Use `"SHINKANSEN"` for Shinkansen's native network ids and full support on any participant and service of the Shinkansen network. Other schemas might be used when interfacing with other networks but they are *not* recommended unless you *really* know what you are doing or have been explicitly instructed to do so by Shinkansen.
            - `fin_id` string, required — Identification according to schema. When the `"SHINKANSEN"` schema is used (as recommended), this is the ID assigned by Shinkansen to the participant in the network. In the context of the `header`, it refers to the Shinkansen network participant that sends (Sender) or receives (Receiver) the message. In the context of the `transactions`, it refers to the financial institution from which the resources leave or where the resources arrive. The ID assigned by Shinkansen to the financial institution can be found in https://docs.shinkansen.tech/docs/instituciones-financieras. When sending a transaction to Shinkansen, this value must always be SHINKANSEN. When sending a payout order to Shinkansen Treasury, this value must be SHINKANSEN_TREASURY
          - `currency` string, required — Currency ISO 4217 code (e.g: `"CLP"`)
          - `balances` object, required — The balances of the account at the time of the account report
            - `book_balance` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
            - `available_balance` string — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
          - `entries` object[], required — The entries of the account at the time of the account report
            - `entry_id` string — Unique identifier for the entry
            - `unique_reference` string, required — Unique reference for the entry
            - `unique_reference_type` 'provided' | 'computed' | 'none', required — Type of unique reference. Can be "provided", "computed", or "none". When "none", the unique reference is randomly generated and can't be used to de-duplicate or recognize the same item on a different report. Computed unique references are generated by Shinkansen Network. When the unique reference is provided by the financial institution, the type is "provided".
            - `entry_bank_references` array[] — List of references for the entry. Usually a list of documents or transactions that are related to this entry. Generally in "<format>","<id>" format. For example, `["documento","123456789012", "operacion","ab123"]`.
              - …
            - `amount` string, required — Amount, ISO20022-compatible: Up to 18 integer digits, optional decimal separator ".", up to 5 fraction digits (also optional). By using a string we avoid issues with floating-point arithmetic as well as integer type limits on some JSON implementations.
            - `direction` 'credit' | 'debit', required — The direction of the entry. Can be "credit" or "debit". Credits are "positive" sums added to the account balance. Debits are "negative" sums subtracted from the account balance.
            - `booking_date` string, date, required — Date of bank booking for this specific entry.
            - `details` object — Additional details of the transaction, fields are optional.
              - …
            - `description` string, required — Description of the entry
        - Mt940RawNotification — Contains a mt940 raw notification
          - `notification_id` string, required — Unique identifier for the notification set by Shinkansen
          - `notification_type` string, required — Type of notification. Always should be `"mt940_raw"` for this type of notification.
          - `mt940_raw` string, required — Base64 encoded MT940 raw file
          - `mt940_date` string, required — Accounting date of the MT940 raw file

## Response `200`

Message correctly received. Does NOT mean the transaction was succesful. Further responses might be sent back on another message.

## Other responses

- `400` — Invalid message (e.g: invalid signature)
- `409` — Message ignored, because it was already seen and processed before by the receiver. Typically happens when a message is re-sent because the sender isn't sure if it was correctly received (e.g: network failure when the 2xx response was in flight)'

---

[API](https://skmtc.net/shinkansen/apis/payouts-shinkansen-endpoints.md) · [All operations](https://skmtc.net/shinkansen/apis/payouts-shinkansen-endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shinkansen/payouts-shinkansen-endpoints/versions/1e4a6760b7e8/schema)
