К содержимому
Содержание справочника

Операции

Операция — единица работы с деньгами клиента: создание, чтение состояния, список активных и передача решения по операции.

List active operationsGET/api/v1/operations

listActiveOperationsНужен токен

Returns the caller's operations that have not reached a final status (COMPLETED, PARTIALLY_COMPLETED, FAILED, CANCELLED) with their current phase, the action expected from the client and open timeout events. Pages are cursor-based: pass nextCursor from the previous page as cursor.

Параметры запроса

ПолеТипОписание
cursorstring
limitinteger (int32)
  • по умолчанию 20

Ответы

200OKListActiveOperationsResponse

ПолеТипОписание
itemsобязательномассив (объект ActiveOperationSummaryResponse)
operationIdобязательноstring
clientOperationIdобязательноstring
statusобязательноstring
  • Допустимые значения: CREATED IN_PROGRESS COMPLETED PARTIALLY_COMPLETED FAILED CANCELLED
phaseобязательноstring

Client-facing operational phase (ADR-0052). Distinct from status (lifecycle) and from internal log phase (logging-only).

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
requiredActionобязательноstring
  • Допустимые значения: NONE PERFORM_PAYMENTS SUBMIT_DECISION
requiredActionSincestring (дата и время, ISO 8601)
requiredActionPayloadобъект OperationRequiredActionPayloadResponse

Payload for required action

expectedDecisionVersioninteger (int32)
allowedDecisionKindsмассив (string)
  • Допустимые значения: finalize_as_is adjust compensate_and_finalize
paymentsобязательномассив (объект OperationRequiredActionPaymentResponse)
paymentIdобязательноstring
methodобязательнословарь (string)
amountобязательнообъект MoneyAmountResponse

Money amount representation

currencyобязательноstring
valueобязательноstring
linksобязательнословарь (string)
clientTransactionIdstring
statusstring
interactionобъект PaymentInteractionResponse

Payment interaction artifact (payer-facing link)

typeобязательноstring
urlобязательноstring
expiresAtstring (дата и время, ISO 8601)
createdAtобязательноstring (дата и время, ISO 8601)
updatedAtобязательноstring (дата и время, ISO 8601)
deadlineAtstring (дата и время, ISO 8601)
activeTimeoutEventsмассив (объект ActiveTimeoutEventResponse)
eventTypeобязательноstring

Тип события: EXECUTION_STUCK / AWAITING_PAYMENT_TOO_LONG / AWAITING_DECISION_TOO_LONG / TERMINAL_TIMEOUT (ADR-0097)

  • Допустимые значения: EXECUTION_STUCK AWAITING_PAYMENT_TOO_LONG AWAITING_DECISION_TOO_LONG TERMINAL_TIMEOUT
phasestring

Фаза операции на момент detection. null для terminal timeout.

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
actionTypeобязательноstring

Configured action для этого timeout-policy слота

  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
resultstring

Результат обработки. null — action ещё не применён.

  • Допустимые значения: NOTIFIED FINALIZED COMPENSATION_STARTED SKIPPED_ALREADY_HANDLED SKIPPED_NO_LONGER_APPLIES FAILED_TO_HANDLE
detectedAtобязательноstring (дата и время, ISO 8601)

Когда событие было обнаружено

handledAtstring (дата и время, ISO 8601)

Когда action был применён. null — ещё не обработано.

thresholdSecondsinteger (int64)

Threshold, который вызвал событие

deadlineAtstring (дата и время, ISO 8601)

Дедлайн операции на момент detection

nextCursorstring

Ошибки

Коды ошибок в контракте не описаны.

Create an operationPOST/api/v1/operations

createOperationНужен токен

Accepts a business operation — a sequence of money actions (payment, payout, refund) with execution policies — and starts executing it. The request is accepted as a whole and frozen at acceptance: later changes to settings do not affect it. Retrying with the same context.idempotencyKey and identical content returns the same operation; the same key with different content is rejected. The response carries operationId, the current status and phase, and the action expected from the client, if any.

Тело запросаобязательноCreateOperationRequest

ПолеТипОписание
settlementAccountIdобязательноstring

Settlement account ID that owns the operation

  • пример: 100500
typeобязательноstring
  • Допустимые значения: EXTERNAL_DECISION STANDARD
controlsобъект CreateOperationControlsRequest
timeoutPolicyобъект CreateTimeoutPolicyRequest
thresholdsобъект CreateTimeoutPolicyThresholdsRequest
terminalTimeoutSecondsinteger (int64)
processingStuckAfterSecondsinteger (int64)
awaitingDecisionAfterSecondsinteger (int64)
awaitingPaymentAfterSecondsinteger (int64)
actionsобъект CreateTimeoutPolicyActionsRequest
onProcessingStuckобъект TimeoutPolicyActionRequest
typeобязательноstring
  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
onAwaitingDecisionTooLongобъект TimeoutPolicyActionRequest
typeобязательноstring
  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
onAwaitingPaymentTooLongобъект TimeoutPolicyActionRequest
typeобязательноstring
  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
onTerminalTimeoutобъект TimeoutPolicyActionRequest
typeобязательноstring
  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
closurePolicyобъект CreateClosurePolicyRequest
onUnrecoverableExecutionstring
  • Допустимые значения: KEEP_OPEN_UNTIL_TIMEOUT FINALIZE_AS_IS
compensationPolicyобъект CreateCompensationPolicyRequest
refundModestring
  • Допустимые значения: REFUND_ONLY ALLOW_PAYOUT
webhookPolicyобъект CreateWebhookPolicyRequest
onCriticalDeliveryExhaustedstring
moneyобязательномассив (Один из вариантов)

Один из вариантов — Вариант выбирается значением поля kind

MoneyAwaitDecisionIntentRequestkind: await_decision

Await decision intent (business gate, ADR-0100)

kindобязательноstring
  • значение await_decision
descriptionstring

MoneyPaymentIntentRequestkind: payment

Payment intent

kindобязательноstring
  • значение payment
amountобязательнообъект MoneyAmountRequest

Money amount representation

currencyобязательноstring
valueобязательноstring
methodобязательноОдин из вариантов

Один из вариантов — Вариант выбирается значением поля kind

B2bSbpPaymentMethodRequestkind: sbp_b2b

B2B SBP payment method (ADR-0125)

kindобязательноstring
  • значение sbp_b2b
paymentPurposeобязательноstring
  • не длиннее 140
sourceNameобязательноstring
  • не длиннее 50
takeTaxобязательноboolean
totalTaxAmountinteger (int64)

Сумма налога в копейках; обязательна при takeTax=true.

MirCardPaymentMethodRequestkind: mir_card

MIR card payment method

kindобязательноstring
  • значение mir_card
tokenобязательноstring

SbpPaymentMethodRequestkind: sbp_c2b

C2B SBP payment method

kindобязательноstring
  • значение sbp_c2b
payerPhoneобязательноstring
captureboolean
metadataсловарь (string)
businessRefобъект BusinessRefRequest

Опциональный business/audit label платежа (ADR-0110). Non-authoritative, не является ключом адресации.

kindобязательноstring
idобязательноstring
clientTransactionIdstring

Client-facing идентификатор денежного действия (ADR-0110). Optional: если не передан, SettleOps заполняет его сам. После acceptance всегда присутствует.

MoneyPayoutIntentRequestkind: payout

Payout intent (ADR-0114)

kindобязательноstring
  • значение payout
amountобязательнообъект MoneyAmountRequest

Money amount representation

currencyобязательноstring
valueобязательноstring
destinationобязательноОдин из вариантов

Один из вариантов — Вариант выбирается значением поля kind

SbpPayoutDestinationRequestkind: sbp

SBP payout destination

kindобязательноstring
  • значение sbp
recipientPhoneобязательноstring
recipientBankIdобязательноstring

Идентификатор банка получателя в справочнике СБП, ровно 12 цифр

metadataсловарь (string)
businessRefобъект BusinessRefRequest

Опциональный business/audit label выплаты (ADR-0110). Non-authoritative, не является ключом адресации.

kindобязательноstring
idобязательноstring
clientTransactionIdstring

Client-facing идентификатор денежного действия (ADR-0110). Optional: если не передан, SettleOps заполняет его сам. После acceptance всегда присутствует.

contextобязательнообъект CreateOperationContextRequest

Operation context

idempotencyKeyобязательноstring
clientOperationIdобязательноstring
sourceобязательноstring
businessRefобъект BusinessRefRequest

Опциональный business/audit label всей операции (ADR-0110). Не является machine-key и не влияет на исполнение.

kindобязательноstring
idобязательноstring

Ответы

201CreatedCreateOperationResponse

ПолеТипОписание
operationIdобязательноstring
typeобязательноstring
  • Допустимые значения: EXTERNAL_DECISION STANDARD
statusобязательноstring
  • Допустимые значения: CREATED IN_PROGRESS COMPLETED PARTIALLY_COMPLETED FAILED CANCELLED
phaseобязательноstring

Client-facing operational phase (ADR-0052). Distinct from status (lifecycle) and from internal log phase (logging-only).

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
messagestring
requiredActionstring
  • Допустимые значения: NONE PERFORM_PAYMENTS SUBMIT_DECISION
requiredActionSincestring (дата и время, ISO 8601)
requiredActionPayloadобъект OperationRequiredActionPayloadResponse

Payload for required action

expectedDecisionVersioninteger (int32)
allowedDecisionKindsмассив (string)
  • Допустимые значения: finalize_as_is adjust compensate_and_finalize
paymentsобязательномассив (объект OperationRequiredActionPaymentResponse)
paymentIdобязательноstring
methodобязательнословарь (string)
amountобязательнообъект MoneyAmountResponse

Money amount representation

currencyобязательноstring
valueобязательноstring
linksобязательнословарь (string)
clientTransactionIdstring
statusstring
interactionобъект PaymentInteractionResponse

Payment interaction artifact (payer-facing link)

typeобязательноstring
urlобязательноstring
expiresAtstring (дата и время, ISO 8601)
linksобязательномассив (объект LinkResponse)
relобязательноstring
hrefобязательноstring
typestring
methodstring

Ошибки

Коды ошибок в контракте не описаны.

Get an operationGET/api/v1/operations/{operationId}

getOperationНужен токен

Returns the current state of an operation: status, phase, the action expected from the client with its payload (payments to perform or the decision to submit), the money actions with their outcomes, and open timeout events.

Параметры пути

ПолеТипОписание
operationIdобязательноstring

Ответы

200OKOperationViewResponse

ПолеТипОписание
operationIdобязательноstring
statusобязательноstring
  • Допустимые значения: CREATED IN_PROGRESS COMPLETED PARTIALLY_COMPLETED FAILED CANCELLED
typeобязательноstring
  • Допустимые значения: EXTERNAL_DECISION STANDARD
phaseобязательноstring

Client-facing operational phase (ADR-0052). Distinct from status (lifecycle) and from internal log phase (logging-only).

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
createdAtstring (дата и время, ISO 8601)
finalizedAtstring (дата и время, ISO 8601)
deadlineAtstring (дата и время, ISO 8601)
finalizationReasonstring
  • Допустимые значения: TERMINAL_TIMEOUT EXECUTION_STUCK AWAITING_PAYMENT_TOO_LONG AWAITING_DECISION_TOO_LONG CLIENT_COMPENSATED_AND_FINALIZED WEBHOOK_DELIVERY_EXHAUSTED
finalizationModestring
  • Допустимые значения: FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
requiredActionstring
  • Допустимые значения: NONE PERFORM_PAYMENTS SUBMIT_DECISION
requiredActionSincestring (дата и время, ISO 8601)
requiredActionPayloadобъект OperationRequiredActionPayloadResponse

Payload for required action

expectedDecisionVersioninteger (int32)
allowedDecisionKindsмассив (string)
  • Допустимые значения: finalize_as_is adjust compensate_and_finalize
paymentsобязательномассив (объект OperationRequiredActionPaymentResponse)
paymentIdобязательноstring
methodобязательнословарь (string)
amountобязательнообъект MoneyAmountResponse

Money amount representation

currencyобязательноstring
valueобязательноstring
linksобязательнословарь (string)
clientTransactionIdstring
statusstring
interactionобъект PaymentInteractionResponse

Payment interaction artifact (payer-facing link)

typeобязательноstring
urlобязательноstring
expiresAtstring (дата и время, ISO 8601)
linksмассив (объект LinkResponse)
relобязательноstring
hrefобязательноstring
typestring
methodstring
activeTimeoutEventsмассив (объект ActiveTimeoutEventResponse)
eventTypeобязательноstring

Тип события: EXECUTION_STUCK / AWAITING_PAYMENT_TOO_LONG / AWAITING_DECISION_TOO_LONG / TERMINAL_TIMEOUT (ADR-0097)

  • Допустимые значения: EXECUTION_STUCK AWAITING_PAYMENT_TOO_LONG AWAITING_DECISION_TOO_LONG TERMINAL_TIMEOUT
phasestring

Фаза операции на момент detection. null для terminal timeout.

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
actionTypeобязательноstring

Configured action для этого timeout-policy слота

  • Допустимые значения: NOTIFY FINALIZE_AS_IS COMPENSATE_AND_FINALIZE
resultstring

Результат обработки. null — action ещё не применён.

  • Допустимые значения: NOTIFIED FINALIZED COMPENSATION_STARTED SKIPPED_ALREADY_HANDLED SKIPPED_NO_LONGER_APPLIES FAILED_TO_HANDLE
detectedAtобязательноstring (дата и время, ISO 8601)

Когда событие было обнаружено

handledAtstring (дата и время, ISO 8601)

Когда action был применён. null — ещё не обработано.

thresholdSecondsinteger (int64)

Threshold, который вызвал событие

deadlineAtstring (дата и время, ISO 8601)

Дедлайн операции на момент detection

paymentsмассив (объект OperationPaymentResponse)
paymentIdобязательноstring
clientTransactionIdобязательноstring
statusобязательноstring
amountобязательнообъект MoneyAmountResponse

Money amount representation

currencyобязательноstring
valueобязательноstring
methodобязательноstring
interactionобъект PaymentInteractionResponse

Payment interaction artifact (payer-facing link)

typeобязательноstring
urlобязательноstring
expiresAtstring (дата и время, ISO 8601)
paymentsRevisioninteger (int64)

Ошибки

Коды ошибок в контракте не описаны.

Submit a decision on an operationPOST/api/v1/operations/{operationId}/decisions

submitOperationDecisionНужен токен

Submits the client's decision for an operation of type EXTERNAL_DECISION that is waiting for it (requiredAction = SUBMIT_DECISION): FINALIZE_AS_IS, ADJUST or COMPENSATE_AND_FINALIZE. decisionVersion must equal expectedDecisionVersion from the required-action payload; a repeated submission with the same version and content is idempotent. Responds with 202: the decision is accepted and executed asynchronously — follow the operation state or webhooks for the outcome. An operation that is not waiting for a decision rejects the request with OPERATION_NOT_WAITING_FOR_DECISION.

Параметры пути

ПолеТипОписание
operationIdобязательноstring

Тело запросаобязательноSubmitDecisionRequest

ПолеТипОписание
decisionVersionобязательноinteger (int32)
decisionобязательноОдин из вариантов

Один из вариантов — Вариант выбирается значением поля kind

AdjustDecisionRequestkind: adjust

Денежная корректировка решения (ADR-0111)

kindобязательноstring
  • значение adjust
notestring
moneyобязательномассив (Один из вариантов)

Один из вариантов — Вариант выбирается значением поля kind

MoneyDecisionPaymentIntentRequestkind: payment

Payment intent (ADR-0111 ADJUST)

kindобязательноstring
  • значение payment
amountобязательнообъект MoneyAmountRequest

Money amount representation

currencyобязательноstring
valueобязательноstring
methodобязательноОдин из вариантов

Один из вариантов — Вариант выбирается значением поля kind

B2bSbpPaymentMethodRequestkind: sbp_b2b

B2B SBP payment method (ADR-0125)

kindобязательноstring
  • значение sbp_b2b
paymentPurposeобязательноstring
  • не длиннее 140
sourceNameобязательноstring
  • не длиннее 50
takeTaxобязательноboolean
totalTaxAmountinteger (int64)

Сумма налога в копейках; обязательна при takeTax=true.

MirCardPaymentMethodRequestkind: mir_card

MIR card payment method

kindобязательноstring
  • значение mir_card
tokenобязательноstring

SbpPaymentMethodRequestkind: sbp_c2b

C2B SBP payment method

kindобязательноstring
  • значение sbp_c2b
payerPhoneобязательноstring
clientTransactionIdstring

Client-facing идентификатор нового платежа (ADR-0110). Optional: если не передан, SettleOps заполняет его сам при построении плана.

businessRefобъект BusinessRefRequest

Опциональный business/audit label (ADR-0110). Non-authoritative, не ключ адресации.

kindобязательноstring
idобязательноstring
metadataсловарь (string)

MoneyDecisionPayoutIntentRequestkind: payout

Payout intent (ADR-0114 ADJUST)

kindобязательноstring
  • значение payout
amountобязательнообъект MoneyAmountRequest

Money amount representation

currencyобязательноstring
valueобязательноstring
destinationобязательноОдин из вариантов

Один из вариантов — Вариант выбирается значением поля kind

SbpPayoutDestinationRequestkind: sbp

SBP payout destination

kindобязательноstring
  • значение sbp
recipientPhoneобязательноstring
recipientBankIdобязательноstring

Идентификатор банка получателя в справочнике СБП, ровно 12 цифр

clientTransactionIdstring

Client-facing идентификатор новой выплаты (ADR-0110). Optional: если не передан, SettleOps заполняет его сам при построении плана.

businessRefобъект BusinessRefRequest

Опциональный business/audit label (ADR-0110). Non-authoritative, не ключ адресации.

kindобязательноstring
idобязательноstring
metadataсловарь (string)

MoneyRefundIntentRequestkind: refund

Refund intent (ADR-0111 ADJUST)

kindобязательноstring
  • значение refund
amountобязательнообъект MoneyAmountRequest

Money amount representation

currencyобязательноstring
valueобязательноstring
sourceClientTransactionIdstring
clientTransactionIdstring
metadataсловарь (string)

CompensateAndFinalizeDecisionRequestkind: compensate_and_finalize

Компенсировать исполненные денежные действия и финализировать операцию (ADR-0111)

kindобязательноstring
  • значение compensate_and_finalize
notestring

FinalizeAsIsDecisionRequestkind: finalize_as_is

Закрыть операцию в текущем финансовом состоянии (ADR-0111)

kindобязательноstring
  • значение finalize_as_is
notestring
contextсловарь (string)

Ответы

202AcceptedSubmitDecisionResponse

ПолеТипОписание
operationIdобязательноstring
statusобязательноstring
  • Допустимые значения: CREATED IN_PROGRESS COMPLETED PARTIALLY_COMPLETED FAILED CANCELLED
phaseобязательноstring

Client-facing operational phase (ADR-0052). Distinct from status (lifecycle) and from internal log phase (logging-only).

  • Допустимые значения: PROCESSING AWAITING_CLIENT_PAYMENTS AWAITING_CLIENT_DECISION FINALIZED
decisionобязательнообъект DecisionStatusResponse

Decision status in response

statusобязательноstring
decisionVersionобязательноinteger (int32)
receivedAtstring (дата и время, ISO 8601)
linksобязательномассив (объект LinkResponse)
relобязательноstring
hrefобязательноstring
typestring
methodstring

Ошибки

Коды ошибок в контракте не описаны.