Skip to content
MultigateAPI
Support Staff

Reference

Status lifecycles

Every status you can see, in one place: what it means, whether it's final (it will never change again) and whether a webhook tells you about it. Each section links to the product guide with the full details.

Timings differ in the sandbox

Statuses and transitions are the same in both environments, but non-final statuses last much longer in the sandbox: payouts can stay processing for 15 minutes or more, and customers processing for days. See Sandbox vs production.

Some final statuses send no webhook

Wherever the Webhook column says "—" or "None", poll the object until it's final. Never wait for a webhook alone.

Transfers (payouts, remittances, bulk rows)

Details: Payouts.

stateDiagram-v2
    direction LR
    [*] --> pending
    [*] --> pending_approval
    [*] --> processing
    pending --> processing
    pending --> failed
    pending_approval --> processing
    pending_approval --> rejected
    processing --> pending
    processing --> completed
    processing --> failed
    processing --> rejected
    pending_security_review --> pending
    pending_security_review --> pending_approval
    pending_security_review --> processing
    pending_security_review --> cancelled
Status Final Webhook Meaning
pending No — Being screened (responseCode null), retrying after the bank couldn't be reached (31), or a manually settled payout being completed.
pending_approval No — Waiting for an approver in your business (42).
processing No — Sent for payment (01; 05 just after approval). USD payouts, and some other currencies, stay processing until Multigate's operations team completes them. With some banks, a payout the bank reports as failed also stays processing until operations confirms the failure and the money is returned.
completed Yes transfer_completed Paid (00).
failed Yes transfer_failed, not always Not paid. Bank and partner failures are normally reversed to your account. A failed balance check just before the debit (22) is not debited and sends the webhook. No webhook for: 43 (declined by compliance before any debit), 03 when the debit couldn't be posted, and a Nigerian account number that isn't 10 digits.
rejected Yes — 04. Declined by an approver in your business (nothing debited), or in Multigate's compliance or settlement review.
pending_security_review No — (webhooks show pending) Web-app transfers only, never API-created ones, and today only in the sandbox: held by Multigate's security check for its compliance team (43). Nothing debited. Released, it continues like a new transfer.
cancelled Yes — 04. A held web-app transfer that Multigate declined or didn't review within 24 hours. Nothing debited.

Common responseCode values: 00 paid, 01 processing, 05 approved, 31 bank unreachable (retrying), 42 waiting for approval, 22 balance too low at the pre-debit check, 03 failed, 04 rejected, 43 declined by compliance.

A transfer whose outcome at the bank Multigate can't confirm stays pending or processing, with responseMessage "CBI provider dispatch outcome is unknown", until Multigate reconciles it. No webhook is sent until then; don't pay it again. See Payouts.

Bulk batches

Details: Bulk payouts. Each row is a transfer with the statuses above.

Status Final Meaning
pending_approval No At least one row waits for an approver.
processing No Rows are being paid.
completed Yes Every row is final and at least one was paid. Some rows may still have failed.
failed Yes Every row is final and none was paid.
rejected Yes An approver declined every row.

The batch status is a summary. Always check each row's status.

Accounts

Details: Accounts.

Status Webhook Meaning
processing, pending — Being opened; waiting for a partner bank.
profiling — Virtual accounts only: waiting for the partner bank to approve your business profile.
active account_opened, not always Usable. The webhook can arrive more than once, as each partner bank activates. It's often missing when the account is activated by Multigate's approval of your bank profile, and never sent for linked accounts: poll accounts that stay processing.
failed None Couldn't be opened. Open a new account with a new uniqueRequestId.
disabled None Closed or blocked, for example a dynamic account after its payment or a suspended business. It can't send or receive money.
inactive None Closed at the bank.
enabled None Re-enabled after being disabled. It can't send money until Multigate sets it back to active.

Linking requests (linked accounts)

Details: Accounts. No webhooks are sent for linking.

ApprovalStatus Final Meaning
PENDING No Waiting for a second user to approve. Stays PENDING if an approval attempt fails.
APPROVED Yes Approved; the linked account is created and active.
DECLINED Yes Declined; the same account can't be requested again.

Customers

Details: Customers.

status Webhook Meaning
draft — Created, not submitted.
processing — Submitted. Waiting for your approver, screening, or Multigate compliance.
active subclient_approved (client customers only) Approved. Only active customers can have accounts, payouts and conversions.
rejected subclient_approved with status: rejected Declined by Multigate compliance. Fix and resubmit.
inactive — Deactivated in your business. Customers declined by your own approver are also set to inactive and removed, so you won't see them.
deleted — Deleted in your business.
blocked — Blocked by Multigate compliance. Contact Multigate.

approvalStatus tracks approval inside your business: pending, approved or declined. It stays approved when Multigate compliance declines, so use status.

Conversions

Details: FX conversions.

Status Final Meaning
processing No Debited; the credit is waiting for settlement. trade_completed follows.
awaiting_balance No Post-funded account (by agreement with Multigate) short of funds; the debit is deferred.
completed Yes Target account credited, at once or after processing. trade_completed is sent. Today it can also show when the provider failed a processing conversion later, so check that the target account was credited.
failed Yes The provider refused the conversion, usually at lock time (the lock call returns 400). The debit is reversed.

Refunds

Details: Refunds.

Status Final Webhook Meaning
pending No — Held for screening.
processing No — Being paid. Also while Multigate reconciles a refund whose outcome at the bank is unclear, for example one the bank accepted and later reported failed; another refund of the same inflow gets 409 meanwhile.
completed Yes refund The sender was paid and your account debited.
failed Yes refund, except when the balance can't be reserved just before payment Not paid; your account isn't debited.

Receivables

Details: Receivables.

Status Webhook Meaning
processing — Account being opened.
unpaid None: poll Get a receivable Ready: give the payer fundingDetails.
partially_paid receivables / inflow and account / inflow Some money received; amountPaid is less than amount.
paid receivables / inflow and account / inflow Exactly the invoice amount received. The account is closed and paidDate is set. A payment that arrives before the closure completes moves it to overpaid.
overpaid receivables / inflow and account / inflow More than the invoice amount received. The account is closed.
failed None: poll The account couldn't be opened.

Trade finance

Letters of credit and guarantees send no webhooks: poll the lists and details, or rely on the emails. Each record has a status and an approvalStatus (pending while waiting for an approver, then approved or rejected; empty on records nobody has acted on yet).

Letters of credit

Details: Letters of credit. Both types show it in lcStatus.

Status Export LC Import LC Final
draft Manual record being prepared. Application being prepared. No
pending Received from the bank, not yet advised. Submitted, waiting for an approver. No
applied Approved and sent to your bank. No
issued Issued by the bank. No
advised Accepted into your records. No
pending_amendment Amendment sent to the bank. No
amended The bank's amendment is waiting for your response. The bank accepted the amendment; waiting for the beneficiary. No
accepted_amendment You accepted the amendment. The beneficiary accepted it. No
refused_amendment You refused the amendment. The beneficiary refused it. No
rejected Declined by an approver. Declined by an approver. Yes

processing, documents_discrepant, documents_rejected, documents_accepted, partially_settled, settled and closed only appear on manual records. An export LC can be amended again after accepted_amendment or refused_amendment; an import LC in either status can't be amended or updated again through the API.

Guarantees

Details: Guarantees. Inward guarantees show it in guaranteeStatus, outward guarantees in status.

Status Inward Outward Final
draft Manual record being prepared. Application being prepared. No
pending Received from the bank, not yet advised. Submitted, waiting for an approver. No
applied Approved and sent to your bank. No
issued Issued by the bank. No
advised Accepted into your records. No
pending_amendment Amendment sent to the bank. No
amended The bank's amendment is waiting for your response. The bank accepted the amendment; waiting for the beneficiary. No
accepted_amendment, refused_amendment Your response was sent. The beneficiary accepted or refused it. No
rejected Declined by an approver. Declined by an approver. Yes

An inward guarantee can be amended again after accepted_amendment or refused_amendment; an outward guarantee in either status can't be amended or updated again through the API. Expiry, claims and discharges don't change the status automatically: expired, claimed, discharged, under_claim and similar values only appear on manual records.