---
title: "Send transfer responses"
method: POST
path: "/responses"
tags: ["Transactions & Responses"]
---

# Send transfer responses

`POST /responses`

## Request

- Base URL: `https://sandbox-gateway.shinkansen.finance/api`
- URL: `https://sandbox-gateway.shinkansen.finance/api/responses`
- Auth: API key in header `Shinkansen-JWS-Signature` and API key in header `Shinkansen-Api-Key`

A participant must accept or reject incoming transfers using this endpoint. This is used by you when you are the IFR to accept or reject incoming transfers.

## Request body

- OriginalTransferResponseMessage: Transfer response, as sent by the financial institution confirming or rejecting a transfer
  - `document` object, required: Envelops the message content
    - `header` TransferMessageHeader, required: Header for sent transfer/reversal/response messages. The same header is used for all three types of messages.
      - `message_id` string, uuid, required: UUID Unique identifier of the message. Generated by the participant initiating the message.
      - `creation_date` string, date-time, required: Creation date of the message in ISO 8601 format. Generated by the participant initiating the message.
      - `sender` string, required: The participant sender of this message. This is your internal identifier for Shinkansen Eco-System.
      - `receiver` string, required: The Gateway receiver of this message. This is always Shinkansen.
    - `responses` OriginalTransferResponse[], required: One or more payouts responses (one per transaction).
      - `transaction_type` string, required: Transaction type. Always should be `"transfer"` for this type of transaction.
      - `transaction_id` string, required: UUID Unique identifier of the transaction. Generated by original sender of the Transfer (this is your internal identifier for the transfer).
      - `shinkansen_transaction_id` string, required: UUID Unique identifier of the transaction. Set by Shinkansen when the original message is received.
      - `shinkansen_response_id` string, uuid, required: UUID Unique identifier of the transaction *response*. Set by Shinkansen on the received message.
      - `response_status` 'approved' | 'error_creditor_account_over_limits' | 'error_creditor_account_not_found' | 'error_creditor_fi_offline' | 'error_creditor_fi_timeout' | 'error_creditor_account_closed' | 'error_creditor_rut_invalid' | 'error_ifr_service_unavailable', required: This is a reduced list of the possible responses from the underlying network. The complete list can be found in the [Shinkansen documentation](https://docs.shinkansen.tech/reference/response-codes). * `approved`: Approved Transaction * `error_creditor_account_over_limits`: Destination account restricted for deposits. * `error_creditor_account_not_found`: Destination account not found. * `error_creditor_fi_offline`: IFR host unavailable. * `error_creditor_fi_timeout`: Timeout at destination bank. * `error_creditor_account_closed`: Destination account is closed. * `error_creditor_rut_invalid`: Invalid beneficiary RUT. * `error_ifr_service_unavailable `: Maybe for unspecified error.
      - `network_metadata` object: The network metadata contains information about the transaction as reported by the underlying network. It is optional and may not be present in all cases.
        - `authorization_code` string: The authorization code generated by your financial institution composed of 6 digits.

## Response `200`

Message correctly received and accepted to be processed by Shinkansen Gateway and sent to Switch (CCA -> IFO)

- StatusAcceptedResponse: Status accepted transfer HTTP 200
  - `shinkansen_message_id` string, uuid, required: Message ID generated by Shinkansen receiving the response
  - `transactions` object[]: Array of mappings between original response_id and shinkansen_response_id
    - `transaction_id` string, uuid: The original response_id - Generated by the Participant
    - `shinkansen_response_id` string, uuid, required: The shinkansen_response_id - Generated by Shinkansen

## Other responses

- `400`: Message received but rejected by Shinkansen Gateway due to validation errors
- `401`: Message received but rejected by Shinkansen Gateway due to an unauthorized access to the API Key or the JWS Signature
- `409`: Message received but rejected by Shinkansen Gateway due to a conflict like a duplicate message ID or a duplicate transaction ID

---

[API](https://skmtc.dev/shinkansen/apis/transfers-shinkansen-endpoints.md) - [All operations](https://skmtc.dev/shinkansen/apis/transfers-shinkansen-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/shinkansen/apis/transfers-shinkansen-endpoints/revisions/76363158582b?raw)
