Payout

A Payout refers to sending funds to beneficiaries from your Finmo Wallet. Finmo acts as a remitter of funds for both domestic and cross-border fund transfers. Finmo Payouts include domestic fund transfers like NPP in Australia, FAST in Singapore, ACH in the US, SEPA SCT in the EU, or wire transfers using SWIFT.

Beneficiary will be activated after 24 hours of creation.

The platform is accessible through an API integration and allows Payouts via the dashboard. To use Payout via Finmo, you need to load funds into your Payout wallet. You can create a checkout page via the dashboard, and upon completing the transaction, the funds will be available in your Payin wallet. These funds can then be transferred to your Payout wallet through a wallet fund transfer. Alternatively, you can top up your Payout wallet directly using a static Virtual Account associated with it.

Supported Use-Cases for Disbursing Funds via Finmo

  • Digital goods and marketplaces

  • Payroll payments

  • Payout to suppliers (B2B)

  • Moving funds between your own entities

Required APIs for Performing a Payout via Finmo

Step 1: List all Payout Methods by Currency & Country

This API provides all the Payout Methods supported for a specific country and currency combination.

Step 2: Get the Required Fields by Payout Method

This API provides the SENDER and BENEFICIARY objects required to perform the Payout.

Step 3: Validate Beneficiary Details (Optional)

This API verifies beneficiary details using either the beneficiary_id or the supplied Payout_beneficiary information.

Step 4: Create and Save SENDER & BENEFICIARY Tokens

The platform offers the option to create and save both SENDER and BENEFICIARY tokens so you don't need to fill or store the details. Instead, you provide these tokens in the Create Payout API to complete the transaction.

Step 5: Simulate Payout in Sandbox

To complete your simulation in the sandbox, you must run the Simulate Payout API.

Payout Status & Webhook Notifications

Finmo will notify you about the Payout status via webhooks. You can configure a static webhook listener URL via the dashboard or provide a dynamic webhook URL in the Create Payout request.

  • Payout_CREATED: When a Payout is created, Finmo holds (RESERVE) the transferred amount on your Available Balance and triggers a Payout_CREATED webhook. And the Payout status updates to PENDING.

  • Payout_COMPLETED: When a Payout is completed (i.e., the underlying partner/bank confirms the processing of the Payout), Finmo will RELEASE the reserved funds, update the current balance, and create a DEBIT transaction on the Payout Wallet. Finmo will send you a Payout_COMPLETED webhook, and the Payout status updates to COMPLETED.

  • Payout_FAILED: If a Payout fails, Finmo will send you a Payout_FAILED webhook. And the Payout status updates to FAILED.

Note: For Payouts such as SWIFT wires or Direct Entry, the Payout_COMPLETED webhook does not necessarily mean that the beneficiary has received the funds. It indicates that the sender bank has processed the transaction request to the underlying network. If the recipient bank or any correspondent bank fails to process the transaction (for example, due to an invalid or inactive account number), the funds are returned to Finmo, and a Payout_FAILED webhook is sent. The Payout status updates from COMPLETED to FAILED, and funds are credited back to your Payout wallet. For real-time transfers such as NPP in Australia or FAST in Singapore, in 99% of cases, a Payout status of COMPLETED means the beneficiary has successfully received the funds.

post/payout

Request

  • Base URL
    https://api.finmo.net/v1
  • Auth
    HTTP basic

Request body

sender_amountnumber required

Sender transaction amount. The number of decimal place will be different for each currency according to ISO 4217

sender_currencystring required

Sender transaction currency

sender_countrystring

Sender transaction country

beneficiary_amountnumber required

Beneficiary transaction amount. The number of decimal place will be different for each currency according to ISO 4217

beneficiary_currencystring required

Beneficiary transaction currency

beneficiary_countrystring

Beneficiary transaction country

payout_method_namestring required

Payout method name (for e.g. au_bank_npp)

fx_rate_idstring

FX rate reference

debit_wallet_idstring required

Conditionally required: Organization Payout Wallet ID (implicit) or customer's Wallet ID. If you dont provide anything in this field, it assumes Payout wallet by default and funds will be debited from this wallet

fees_wallet_idstring

Fees wallet Id

organization_reference_idstring

A reference you can later use to identify this payment, such as an order number. Can only be alphanumeric and must be unique for Benefit.

descriptionstring

Transaction description

payout_method_paramobject

You will receive these params from Get Required fields by Payout method API

payout_beneficiary_idstring required

Conditionally required: Either pass the beneficiary params or provide the beneficiary token created using Create Beneficiary API

payout_sender_idstring

Conditionally required: Either pass the sender params or provide the sender token created using Create sender API

purpose_codestring required

The list of Purpose Codes of the transaction can be found <a href="https://finmo-assets.s3.ap-southeast-2.amazonaws.com/FinmoPurposeCodes.pdf" target="_blank">here</a>

receipt_emailstring

Provide an email if you would like to send a receipt to your customer or yourself after the payout is successfully completed

payout_referencestring

Payout Reference

webhook_urlstring

Custom webhook url for this payout. If not provided we will notify you on whats configured on the Dashboard

Example request

{
  "beneficiary_amount": 10,
  "beneficiary_currency": "AUD",
  "debit_wallet_id": "wallet1234",
  "description": "Payout description",
  "fees_wallet_id": "wallet_!23",
  "fx_rate_id": "id123",
  "metadata": {
    "any-custom-ref": "INV_123"
  },
  "organization_reference_id": "org123",
  "payout_beneficiary_id": "id456",
  "payout_sender_param": {
    "type": "company",
    "company": {
      "name": "Finmo",
      "incorporation_country": "SG",
      "registration_number": "123456789",
      "address_line1": "123456789",
      "address_city": "Singapore"
    }
  },
  "payout_beneficiary_param": {
    "account_number": "12345678",
    "bsb": "123456",
    "individual": {
      "first_name": "John",
      "last_name": "Doe"
    }
  },
  "payout_controls": {
    "is_beneficiary_name_match_enabled": false,
    "is_payout_on_name_mismatch_allowed": false
  },
  "payout_method_name": "au_bank_acct",
  "payout_method_param": {},
  "payout_reference": "ref",
  "purpose_code": "SELF",
  "receipt_email": "example@finmo.net",
  "sender_amount": 10,
  "sender_country": "AU",
  "beneficiary_country": "AU",
  "sender_currency": "AUD",
  "webhook_url": "finmo.net"
}

Response

Created

request_idstring
request_timestring date-time
status_codeinteger
status_textstring
successboolean

Changes