8. Отзыв платежа

Обратите внимание

После успешного выполнения запроса на отзыв платежа (ответ с HTTP кодом 200) Вы можете выполнить запрос на получение статуса по конкретному платежу.

GET https://alfa-link-int.alfabank.ru/API/v1/ISO20022/Payments/Transactions/<InstrId>

где <InstrId> - идентификатор платежа.

Если платеж не удалось отозвать, то на стороне банка автоматически будет сформировано и отправлено от имени Вашей компании официальное письмо.
Шаблон письма:
Тема: Отзыв платежного документа № (Номер документа) от (Дата документа).
Текст: Прошу отозвать платежный документ № (Номер документа) от (Дата документа) на сумму (Сумма) (Валюта).
Категория: "Срочно! Отзыв платежа"

В этом случае в ответ на запрос отзыва платежа Вы получите HTTP код 201 и header Location c URL на получение статуса по пакету писем.
Подробнее в разделе [LETTERS_STATUS].

Важно

Может возникнуть ситуация, когда ранее отправленный платеж находится в процессе выполнения проверок.
Вам вернется ответ с кодом HTTP 404.
Если идентификаторы отзываемого платежа заполнены верно - выполните запрос на получение статуса по конкретному платежу.
Если платеж перешел в статус ACSP "На обработке", выполните повторный запрос на отзыв платежа.

URI

PUT: /API/v1/ISO20022/Payments/Recall

XML схема

pacs.004.001.11

Описание схемы

Описание Путь Комментарий
Пример

1

R

Уникальный id сообщения

Document.PmtRtr.GrpHdr.MsgId

Указывается идентификатор сообщения присвоенный во внешней системе.

2

R

Дата и Время создания сообщения

Document.PmtRtr.GrpHdr.CreDtTm

Формат даты YYYY-MM-DDThh:mm:ss[.mmm]TZD (В случае, если часовой пояс не указан или указан отличный от московского, то время будет приведено к UTC +3).

3

R

Количество отзываемых платежей

Document.PmtRtr.GrpHdr.NbOfTxs

Константа "1"

4

R

Метод

Document.PmtRtr.GrpHdr.SttlmInf.SttlmMtd

Константа "INDA"

5

R

Название организации

Document.PmtRtr.GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.Nm

6

R

Номер счета

Document.PmtRtr.GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.Othr.Id

7

R

Признак использования счета

Document.PmtRtr.GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.Othr.SchmeNm.Cd

Константа "ACC"

8

R

ИНН

Document.PmtRtr.GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.Othr.Id

9

R

Признак использования ИНН

Document.PmtRtr.GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.Othr.SchmeNm.Сd

Константа "TXID"

10

R

Уникальный id запроса на отзыв

Document.PmtRtr.TxInf.RtrId

11

R

Id исходного сообщения платежа

Document.PmtRtr.TxInf.OrgnlGrpInf.OrgnlMsgId

Должно совпадать с полем в Платеже: Document.CstmrCdtTrfInitn.GrpHdr.MsgId (схема pain.001.01.06)

12

R

Тип исходного сообщения

Document.PmtRtr.TxInf.OrgnlGrpInf.OrgnlMsgNmId

Константа "pain.001.001.06"

13

R

Id исходного пакета платежа

Document.PmtRtr.TxInf.OrgnlInstrId

Должно совпадать с полем в Платеже: Document.CstmrCdtTrfInitn.PmtInf.PmtInfId (схема pain.001.01.06)

14

R

Id исходного платежа

Document.PmtRtr.TxInf.OrgnlTxId

Должно совпадать с полем в Платеже: Document.CstmrCdtTrfInitn.PmtInf.CdtTrfTxInf.PmtId.InstrId (схема pain.001.01.06)

15

R

Сумма отзываемого платежа

Document.PmtRtr.TxInf.RtrdIntrBkSttlmAmt

Должно совпадать с полем в Платеже: Document.CstmrCdtTrfInitn.PmtInf.CdtTrfTxInf.Amt.InstdAmt (схема pain.001.01.06)

16

R

Код валюты отзываемого платежа

Document.PmtRtr.TxInf.RtrdIntrBkSttlmAmt@Ccy

17

R

Подпись

Document.PmtRtr.TxInf.SplmtryData.Envlp.SgntrSt[1..n]

Ответ

Ответом является XML-документ, соответствующий схеме pain.002.001.06.

R/O Описание Путь Комментарий

Document.CstmrPmtStsRpt.GrpHdr

1

R

Уникальный id сообщения

MsgId

2

R

Дата и время создания сообщения

CreDtTm

Формат даты YYYY-MM-DDThh:mm:ss[.mmm]TZD (В случае, если часовой пояс не указан или указан отличный от московского, то время будет приведено к UTC +3).

3

R

SWIFT Альфа-Банка

InitgPty.Id.OrgId.AnyBIC

константа
"ALFARUMM"

4

R

БИК Альфа-Банка

InitgPty.Id.OrgId.Othr.Id

константа
"044525593"

Document.CstmrPmtStsRpt.OrgnlGrpInfAndSts

5

R

Идентификатор исходного сообщения

OrgnlMsgId

pacs.004.001.11
Document/CcyCtrlReqOrLttr/GrpHdr/MsgId

6

R

Тип исходного сообщения

OrgnlMsgNmId

константа
"pacs.004.001.11"

7

R

Дата и время формирования исходного сообщения

OrgnlCreDtTm

pacs.004.001.11
Document/CcyCtrlReqOrLttr/GrpHdr/CreDtTm

8

R

Статус исходного сообщения

GrpSts

ACSC - Запрос выполнен;
RJCT - Запрос не выполнен.

9

R

Код причины присвоения статуса сообщения

StsRsnInf.Rsn.Cd

NARR - Описание в поле AddtlInf.

10

R

Описание причины присвоения статуса сообщения

StsRsnInf.AddtlInf

Таблица с описанием причины присвоения статусов ACSC и RJCT

Document.CstmrPmtStsRpt.OrgnlPmtInfAndSts

11

O

Идентификатор пакета отзываемого платежа

OrgnlPmtInfId

pacs.004.001.11 Document.PmtRtr.TxInf.OrgnlInstrId

12

O

Статус пакета отзываемого платежа

PmtInfSts

ACSC - Запрос выполнен;
RJCT - Запрос не выполнен.

13

O

Идентификатор отзываемого платежа

TxInfAndSts.OrgnlInstrId

pacs.004.001.11
Document.PmtRtr.TxInf.OrgnlInstrId

15

O

Статус отзываемого платежа

TxInfAndSts.TxSts

ACSC - Запрос выполнен;
RJCT - Запрос не выполнен.

16

O

Код причины присвоения статуса

TxInfAndSts.StsRsnInf.Rsn.Cd

NARR - Описание в поле AddtlInf.

19

O

Описание кода причины присвоения статуса

TxInfAndSts.StsRsnInf.AddtlInf

Таблица с описанием причины присвоения статусов ACSC и RJCT

20

O

Дата и время присвоения статуса

TxInfAndSts.AccptncDtTm

Если платеж был ранее исполнен, то будет передана дата исполнения платежа.
В других случаях, будет передана дата запроса на отзыв.

Таблица с описанием причины присвоения статусов ACSC и RJCT

Статусы HTTP код Описание причины присвоения статуса

ACSC

200

Запрос на отзыв платежа выполнен: платеж отозван

ACSC

201

Запрос на отзыв платежа выполнен: идентификатор официального письма в банк указан в header Location

RJCT

208

Запрос на отзыв платежа не выполнен: платёж ранее был отклонён

RJCT

404

Платёж не найден! Проверьте идентификатор(ы) отзываемого платежа

HTTP код Тип Body Описание

200

OK

Запрос на отзыв платежа выполнен: платёж отозван

Платеж отозван автоматически

201

Created

Запрос на отзыв платежа выполнен: идентификатор официального письма в банк указан в header Location

Для отзыва платежа было отправлено письмо. В header Location сформирован URL

208

Already Reported

Запрос на отзыв платежа не выполнен: платёж ранее был отклонён

Платёж ранее был отклонён

404

Not Found

Платёж не найден! Проверьте идентификатор(ы) отзываемого платежа

Платеж по вашим данным не найден. Проверьте идентификатор(ы) исходного сообщения.

401

Err

Wrong username or password

Неверный логин или пароль

401

Err

User was not found

Пользователь не найден

403

Err

User is disabled

Пользователь заблокирован

500

Err

Warrant service error

Сервис проверки доверенности не отвечает

403

Err

User does not have permission

Нет прав на выполнения операции

406

Err

Signature is missing

Нет подписи

403

Err

Certificate is not valid

Сертификат подписи невалидный

403

Err

Signer’s warrant is expired

Доверенность подписанта истекла

403

Err

Signer’s warrant is disabled

Доверенность подписанта заблокирована

403

Err

Number of signatures is not enough for this operation type

Недостаточно подписей для типа операции

403

Err

Certificate is disabled

Сертификат заблокирован

403

Err

The signer certificate is not valid (revoked or not active)

Сертификат подписанта отозван или невалидный

406

Err

Signature value is not valid

Подпись невалидна

406

Err

Internal sign check state error

Внутренняя ошибка сервиса

502

Err

Bad Gateway

Ошибочный шлюз

503

Err

Service Unavailable

Сервис недоступен

504

Err

Gateway Timeout

Шлюз не отвечает

500

Err

Internal Error

Внутренняя ошибка приложения

400

Err

XML does not match schema

Документ не соответствует схеме

Пример запроса на отзыв платежа
<?xml version="1.0" encoding="utf-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.004.001.11">
  <PmtRtr>
    <GrpHdr>
        <MsgId>db810eeabf0b43a890f3b9943f2ce7bf</MsgId>
        <CreDtTm>2022-07-11T10:12:12</CreDtTm>
        <NbOfTxs>1</NbOfTxs>
        <SttlmInf>
            <SttlmMtd>INDA</SttlmMtd>
            <InstgRmbrsmntAgt>
                <FinInstnId>
                    <Nm>ООО "Тест Альфа-Линк"</Nm>
                    <Othr>
                        <Id>40702810200000000083</Id>
                        <SchmeNm>
                            <Cd>ACC</Cd>
                        </SchmeNm>
                    </Othr>
                </FinInstnId>
            </InstgRmbrsmntAgt>
            <InstdRmbrsmntAgt>
                <FinInstnId>
                    <Othr>
                        <Id>7013602245</Id>
                        <SchmeNm>
                            <Cd>TXID</Cd>
                        </SchmeNm>
                    </Othr>
                </FinInstnId>
            </InstdRmbrsmntAgt>
        </SttlmInf>
    </GrpHdr>
    <TxInf>
        <RtrId>TEST_ID_2022-07-13-150752711</RtrId>
        <OrgnlGrpInf>
            <OrgnlMsgId>TEST_MSG_2022-07-13-938247209</OrgnlMsgId>
            <OrgnlMsgNmId>pain.001.001.06</OrgnlMsgNmId>
        </OrgnlGrpInf>
        <OrgnlInstrId>TEST_PCT_2022-07-13-938247209</OrgnlInstrId>
        <OrgnlTxId>TEST_PMT_2022-07-13-938247209</OrgnlTxId>
        <RtrdIntrBkSttlmAmt Ccy="RUR">100</RtrdIntrBkSttlmAmt>
    </TxInf>
    <SplmtryData>
      <Envlp>
        <SgntrSt>
        </SgntrSt>
      </Envlp>
    </SplmtryData>
  </PmtRtr>
</Document>
Пример ответа при автоматическом отзыве платежа
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.06">
    <CstmrPmtStsRpt>
        <GrpHdr>
            <MsgId>660de3219004491397a5904ea486fd0e</MsgId>
            <CreDtTm>2022-08-10T11:36:11.977+03:00</CreDtTm>
            <InitgPty>
                <Id>
                    <OrgId>
                        <AnyBIC>ALFARUMM</AnyBIC>
                        <Othr>
                            <Id>044525593</Id>
                        </Othr>
                    </OrgId>
                </Id>
            </InitgPty>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>TEST_MSG_2022-08-10-476153300</OrgnlMsgId>
            <OrgnlMsgNmId>pacs.004.001.11</OrgnlMsgNmId>
            <OrgnlCreDtTm>2022-08-10T11:36:11.882+03:00</OrgnlCreDtTm>
            <GrpSts>ACSC</GrpSts>
        </OrgnlGrpInfAndSts>
        <OrgnlPmtInfAndSts>
            <OrgnlPmtInfId>TEST_PCT_2022-08-10-564604871</OrgnlPmtInfId>
            <PmtInfSts>ACSC</PmtInfSts>
            <TxInfAndSts>
                <OrgnlInstrId>TEST_PMT_2022-08-10-564604871</OrgnlInstrId>
                <TxSts>ACSC</TxSts>
                <StsRsnInf>
                    <Rsn>
                        <Cd>NARR</Cd>
                    </Rsn>
                    <AddtlInf>Запрос на отзыв платежа выполнен: платёж отозван</AddtlInf>
                </StsRsnInf>
                <AccptncDtTm>2022-08-10T11:36:11.907+03:00</AccptncDtTm>
            </TxInfAndSts>
        </OrgnlPmtInfAndSts>
    </CstmrPmtStsRpt>
</Document>
Пример ответа при отзыве платежа письмом
Headers
    ...
    Location = /API/v1/ISO20022/Letters/TEST_MSG_2022-07-21-170531660636652
    ...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.06">
    <CstmrPmtStsRpt>
        <GrpHdr>
            <MsgId>7c1af40c934b4cad809a645ded03d081</MsgId>
            <CreDtTm>2022-08-10T11:33:41.112+03:00</CreDtTm>
            <InitgPty>
                <Id>
                    <OrgId>
                        <AnyBIC>ALFARUMM</AnyBIC>
                        <Othr>
                            <Id>044525593</Id>
                        </Othr>
                    </OrgId>
                </Id>
            </InitgPty>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>TEST_MSG_2022-08-10-476153318</OrgnlMsgId>
            <OrgnlMsgNmId>pacs.004.001.11</OrgnlMsgNmId>
            <OrgnlCreDtTm>2022-08-10T11:33:40.629+03:00</OrgnlCreDtTm>
            <GrpSts>ACSC</GrpSts>
        </OrgnlGrpInfAndSts>
        <OrgnlPmtInfAndSts>
            <OrgnlPmtInfId>TEST_PCT_2022-08-10-999494950</OrgnlPmtInfId>
            <PmtInfSts>ACSC</PmtInfSts>
            <TxInfAndSts>
                <OrgnlInstrId>TEST_PMT_2022-08-10-999494950</OrgnlInstrId>
                <TxSts>ACSC</TxSts>
                <StsRsnInf>
                    <Rsn>
                        <Cd>NARR</Cd>
                    </Rsn>
                    <AddtlInf>Запрос на отзыв платежа выполнен: идентификатор официального письма в банк указан в header Location</AddtlInf>
                </StsRsnInf>
                <AccptncDtTm>2022-08-10T11:32:50.476+03:00</AccptncDtTm>
            </TxInfAndSts>
        </OrgnlPmtInfAndSts>
    </CstmrPmtStsRpt>
</Document>
Пример ответа, когда платеж не найден
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.002.001.06">
    <CstmrPmtStsRpt>
        <GrpHdr>
            <MsgId>56a130f1bedd4bd38be5b9b7dedcb24d</MsgId>
            <CreDtTm>2022-08-09T09:55:54.524+03:00</CreDtTm>
            <InitgPty>
                <Id>
                    <OrgId>
                        <AnyBIC>ALFARUMM</AnyBIC>
                        <Othr>
                            <Id>044525593</Id>
                        </Othr>
                    </OrgId>
                </Id>
            </InitgPty>
        </GrpHdr>
        <OrgnlGrpInfAndSts>
            <OrgnlMsgId>time_id:1660028154520</OrgnlMsgId>
            <OrgnlMsgNmId>pacs.004.001.11</OrgnlMsgNmId>
            <OrgnlCreDtTm>2022-08-09T09:55:54.520+03:00</OrgnlCreDtTm>
            <GrpSts>RJCT</GrpSts>
            <StsRsnInf>
                <Rsn>
                    <Cd>NARR</Cd>
                </Rsn>
                <AddtlInf>Платёж не найден! Проверьте идентификатор(ы) отзываемого платежа</AddtlInf>
            </StsRsnInf>
        </OrgnlGrpInfAndSts>
    </CstmrPmtStsRpt>
</Document>