BatchAdminReq |
Enc(M, P, BatchAdminReqData) |
BatchAdminReqData |
{BatchAdminRRTags, [BatchID], [BrandAndBINSeq], [BatchOperation], ReturnBatchSummaryInd, [ReturnTransactionDetail], [BatchStatus], [TransDetails], [BARqExtensions]} |
BatchAdminRRTags |
RRTags.
Новый идентификатор RRPID и Date (дата) |
BatchID |
Идентификатор платежной линии для счета банка продавца |
BrandAndBINSeq |
{BrandAndBIN +} |
BatchOperation |
Числовая величина, указывающая на операцию, которая должна быть выполнена в рамках платежной линии |
ReturnBatchSummaryInd |
Обозначает, что в BatchAdminRes должны быть возвращены итоговые данные. |
ReturnTransactionDetail |
{StartingPoint, MaximumItems, ErrorsOnlyInd, [BrandID]}
Если специфицирован BrandID, присылаются данные только для позиций, определяемых платежной системой карты. |
BatchStatus |
См. табл. 4.6.2.53. |
TransDetails |
{NextStartingPoint, TransactionDetailSeq} |
BARqExtensions |
Данные в расширении административного сообщения платежной линии должны иметь финансовый характер и быть важными для обработки административных запросов. |
BrandAndBIN |
{BrandID, [BIN]} |
StartingPoint |
Нуль указывает на то, что следует прислать данные для первой группы позиций, в противном случае NextStartingPoint предшествующего BatchAdminRes |
MaximumItems |
Максимальное число позиций, которые следует прислать в этой группе. |
ErrorsOnlyInd |
Булево число, индицирующее, следует ли присылать только позиции с состоянием ошибки. |
BrandID |
Тип платежной системы (без указания типа продукта). |
NextStartingPoint |
Нуль индицирует, что это последняя группа позиций, в противном случае, используется значение, идентифицирующее начальную точку следующей группы позиций. |
TransactionDetailSeq |
{TransactionDetail +} |
BIN |
Идентификационный номер банка для обработки транзакций продавца. |
TransactionDetail |
См. табл. 4.6.2.54 |
Расчетный центр обрабатывает запрос BatchAdminReq следующим образом.
Шаг |
Действие |
1 |
Выделить запрос из входного сообщения |
2 |
Проверить подпись. Если проверка не прошла, присылается отклик Error c ErrorCode = signatureFailure. |
3 |
Проверить, что RRPID в BatchAdminReq соответствует RRPID в цифровом конверте сообщения. Если проверка не прошла, присылается отклик Error c ErrorCode = unknownRRPID. |
4 |
Если BatchOperation = open:
Проверить, что BatchID еще не открыт. Если это не так, установить BAStatus = batchAlreadyOpen.
Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
Если имеется BrandIDSeq:
- Проверить, что каждый BrandID поддерживается. Если это не так, установить BAStatus = brandNOTSupported.
- Проверить, что каждый BIN поддерживается. Если это не так, установить BAStatus = unknownBIN.
- Запомнить платежные системы и BIN, которые можно использовать для данной платежной линии.
- Открыть платежную линию для использования продавцом и установить BAStatus = success.
- Продолжить процесс посылкой BatchAdminRes
Любые другие поля, присутствующие в сообщении BatchAdminReq будут игнорироваться, когда BatchOperation = open. |
5 |
Если BatchOperation = purge:
Проверить, что BatchID уже открыт. Если это не так, установить BAStatus = unknownbatchID.
Если BrandIDSeq присутствует:
- Проверить, что каждый BatchID относится к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
- Проверить, что каждый BIN относится к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
- Удалить все транзакции платежной линии, ассоциированные со специфицированной платежной системой и BIN.
- В противном случае, удалить все транзакции из группы платежей
- Установить BAStatus = success
- Продолжить работу посылкой сообщения BatchAdminRes
Любые другие поля, присутствующие в сообщении BatchAdminReq, будут игнорироваться, когда BatchOperation = purge. |
6 |
Если BatchOperation = close:
Проверить, что BatchID уже открыт. Если это не так, установить BAStatus = unknownbatchID.
Установить BAStatus = success
Продолжить работу посылкой сообщения BatchAdminRes
Любые другие поля, присутствующие в сообщении BatchAdminReq будут игнорироваться, когда BatchOperation = close. |
7 |
Если BatchOperation опущено, а возвращенное значение ReturnBatchSummaryInd = TRUE:
Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
Если BrandAndBIN включен:
Проверить, что каждый BatchID относится к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
Проверить, что каждый BIN относится к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
Вычислить BatchTotals и заполнить структуры данных BrandBatchDetails для каждого специфицированного значения BrandAndBIN.
Вычислить BatchTotals для платежных систем, включенных в BrandAndBIN, или для всех транзакций, если BrandAndBIN отсутствует. Заполнить BatchTotals в структурах данных BatchStatus вычисленными значениями.
Если TransmissionStatus и SettlementInfo доступны в клиринговой системе, используемой расчетным центром, занести эту информацию в BatchAdminRes.
Если StartingPoint опущено, установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes, в противном случае перейти к следующему шагу.
NextStartingPoint и TransactionDetailSeq игнорируются, если ReturnBatchSummaryInd = TRUE. |
8 |
Если включено поле StartingPoint:
Если MaximumItem установлен равным 0, аннулировать любую предшествующую информацию для данной платежной линии и установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes.
Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
Если StartingPoint не равен нулю, проверить, что StartingPoint равен NextStartingPoint, присланном в предыдущем отклике BatchAdminRes.
Если StartingPoint равен нулю, установить указатель на начало списка платежей, в противном случае установить указатель согласно содержимому StartingPoint.
Если имеется BrandAndBIN:
- Проверить, что каждый BatchID имеет отношение к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
- Проверить, что каждый BIN имеет отношение к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
- Если специфицировано поле MaximumItems, заполнить TransactionDetail вплоть до MaximumItems из текущей позиции и установить NextStartingPoint в позицию, из которой можно получить данные для последующих транзакций. Если система достигла конца списка платежей, установить NextStartingPoint = 0. Выбор позиции ограничивается BrandandBIN и ErrorOnlyInd.
f) Установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes
|
9 |
Если код BatchOperation опущен, а BatchStatus имеется:
Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
Если имеется поле BrandBatchDetails:
- Проверить, что каждый BatchID имеет отношение к данной платежной линии. Если это не так, установить BAStatus = brandBatchMismatch.
- Проверить, что каждый BIN имеет отношение к данной платежной линии. Если это не так, установить BAStatus = unknownBIN.
- Вычислить BatchTotals и заполнить информационные структуры BrandBatchDetails для каждого специфицированного BrandAndBIN.
- Вычислить BatchTotals для платежных систем, включенных в BrandAndBIN или для всех транзакций, если BrandAndBIN отсутствует.
- Для любого значения BatchTotals, которое не согласуется с приведенным в сообщении BatchAdminReq, занести вычисленные значения в BatchTotals информационной структуры BatchStatus.
- Если какое-либо итоговое значение не согласовано, установить BAStatus = totalsOutOfBalance и перейти к следующему пункту.
- Если поле TransactionDetails опущено, установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes
|
|
10 |
Если код BatchOperation опущен и включено поле TransactionDetails:
Проверить, что BatchID доступен. Если это не так, установить BAStatus = batchIDUnavailable.
Если указатель StartingPoint не равен нулю и не согласуется с NextStartingPoint из предыдущего BatchAdminReq, установить BAStatus = unknownStartingPoint.
Если NextStartingPoint не равен нулю, запомнить TransactionDetails, скопировать NextStartingPoint в сообщение BatchAdminRes и установить BAStatus = success. Продолжить работу посылкой отклика BatchAdminRes.
Проверяется соответствие полученных транзакций с теми, что хранятся в расчетном центре. Если отличие обнаружено, установить BAStatus = totalsOutOfBalance. Продолжить работу посылкой отклика BatchAdminRes.
Опционно установить BAStatus = stopItemDetail, чтобы проинформировать продавца о том, что расчетный центр не желает обрабатывать позиции в данной последовательности платежей (batch). Продолжить работу посылкой отклика BatchAdminRes.
Установить BAStatus = success и продолжить работу посылкой отклика BatchAdminRes.
Последовательность BrandAndBIN игнорируется. |
Формирование отклика BatchAdminRes осуществляется согласно следующему алгоритму.