Validate a credit
Confirm the recipient account can receive the credit before any money moves.
Authorizations
Assume OAuth 2.0 client credentials issued by the bank, presented as a bearer token. Meridian can adapt to the bank's preferred authentication scheme during onboarding.
Body
A credit (payout) instruction from Meridian to the bank.
Meridian's unique identifier for this credit and the idempotency key. Stable across retries and across the validate/commit/status lifecycle of one transaction.
64"mrdn-9f2c1e4a-71bd-4c5e-a2f3-8d6b0c9e1a27"
The customer being credited at the home bank.
Originator of the funds (KYC data). Included on commit for compliance screening. Field-level availability is confirmed during onboarding, and some corridors add further compliance fields (for example the sender's relationship to the recipient, or source of income) that Meridian agrees with the bank at that time.
Human-readable purpose / remittance information for the transfer.
140"Wallet withdrawal payout"
Additional key/value context supplied by Meridian (e.g. a customer-facing reference to print on statements). Banks should persist and echo these where their core allows, but must not require fields beyond those agreed at onboarding.
Response
Validation outcome (both eligible and ineligible accounts return 200).
Outcome of a validate, commit, or status call. One shape for all three.
Echo of Meridian's transaction identifier.
Transaction state machine:
RECEIVED— registered; nothing checked and nothing movedVALIDATED— the recipient account passed eligibility checksPROCESSING— money movement is underwayCOMPLETED— terminal; the funds reached the recipientFAILED— terminal; the credit will not be deliveredUNKNOWN— outcome not yet determinable, for example a timeout in your core system or an unreachable downstream rail; not terminal
Status moves only forward through that order, though skipping steps is fine, and terminal
statuses must never change once reported. UNKNOWN is exempt from the ordering and may be
followed by any status. Prefer it over guessing FAILED, since a terminal status can never
be walked back.
RECEIVED, VALIDATED, PROCESSING, COMPLETED, FAILED, UNKNOWN The bank's own reference for the transfer, if one exists. Meridian stores this for reconciliation and support. Include it on every response after commit.
64Machine-readable failure code. Required whenever status is FAILED. Use a stable,
documented set; Meridian maps these to customer-facing outcomes. Recommended baseline:
ACCOUNT_NOT_FOUNDACCOUNT_INACTIVENAME_MISMATCHLIMIT_EXCEEDEDINVALID_AMOUNTCOMPLIANCE_REJECTEDINSUFFICIENT_FUNDS(sponsored account)DUPLICATE_TRANSACTIONBANK_SYSTEM_ERROR
Human-readable detail for the failure. Not shown to customers verbatim.
500RFC 3339 timestamp when the credit reached a final status.