Request money (atomic flow)
Request money (atomic / full): validates input, ensures a trusted requester (UserServices.ensureTrustedUser),
then enqueues the RequestMoneyFull queue job (worker: CIP → contact → payment method → requestMoneyV2).
HTTP responds immediately with RequestMoneyFullResponse (status: "Accepted", operationId = correlationId, tenant attribution link).
Synchronous 4xx/5xx: tenant/country, corridor, currency alignment, correlation id uniqueness, name/DOB/phone, and basic payout-method rules.
Webhook (operationStatusHook + sharedSecret): async outcome as RequestMoneyFullOutcomePayload
(eventType: "request_money_full_outcome"; status "Accepted" or "Failed" with errorCode, reason, phase).
Header x-raas-signature = Base64(HMAC-SHA256(raw JSON body, tenant sharedSecret)).
See also: Webhooks reference.
Authorizations
Body
RequestMoneyFullParams body
POST /request-money-full body: register-or-link the requester, then async money request to requestTo
with destinationPaymentMethod (see RaaSPartnerPaymentMethod).
Controller validates partner vs requester.countryCode, phone prefix, names, DOB, amounts/currency vs partner country, corridor (DestinationCountry / DestinationPaymentMethodType from destination PM), and idempotent correlationId.
End-user profile and address. Same shape as partner registration; becomes the trusted sender after ensureTrustedUser.
Field-level docs: RegisterUserParams (model/partner/auth).
Correlation id, beneficiary, amounts, optional reason, and payout method. Processed asynchronously after HTTP 200.
Response
Immediate HTTP 200 payload after the job is enqueued (not final operation state).
Final async outcome is delivered only via RequestMoneyFullOutcomePayload webhook when configured.
Trusted user id created or resolved during the call.
Same value as request.correlationId.
Always "Accepted" here meaning “accepted for processing”, not platform operation completed.
Accepted Tenant attribution / tracking URL for this correlation id.