Payouts
Wooshpay is able to make payouts to your bank account. You can view a list of all of your payouts in your bank account on the Dashboard. Also, you can retrieve the payout list by API.
Payout Status
There are five states of one payout request. Once the payout is created, the initial state will be pending. When cancel API is called, the status will be canceled, leading to the cancellation of the payout process. When the request is submitted to the bank, the state turns to in_transit. Then it breaks down into two possibilities: if the bank processing fails, it will lead to Failed of the payout result; if the bank processing is successful, then it will lead to paid status.
Payout Speed
While payout schedule refers to the cadence your funds are paid out on (for example, day of the week), payout speed refers to the amount of time it takes for your funds to become available. The payout speed varies per country and is typically expressed as T+X days. Some payment processors may start “T” from their internal settlement time, meaning when the funds land in their bank accounts.
“T” refers to transaction time, meaning the time of initial payment confirmation or capture. For example, if your account is based in a country with a T+3 standard payout speed and you’re on a manual payout schedule, your balance will be available to payout within 3 business days from the time you captured a payment.
Minimum Payout Amount
The minimum payout amount is typically one base unit of the local currency. For example, in the US, the minimum payout is one US dollar, whereas in Singapore the minimum payout is one Singapore dollar.
Payout Speed and Minimum Amount
COUNTRY/REGION | PAYOUT SPEED(BUSINESS DAYS) | MINIMUM AMOUNT(LOCAL CURRENCY) | MAXIMUM AMOUNT(LOCAL CURRENCY) |
---|---|---|---|
United States of America | 1-3 | 0.01 USD | / |
Canada | 1-3 | 0.01 CAD | 2,000,000 CAD |
Japan | 1-3 | 100.00 JPY | / |
Hong Kong | 1-3 | 0.01 HKD | / |
Singapore | 1-3 | 0.01 SGD | / |
South Korea | 1-3 | 1.00 KRW | / |
Malaysia | 1-3 | 1.00 MYR | / |
Thailand | 1-3 | 10 THB | 500000 THB |
Philippines | 1-3 | 10 PHP | / |
Vietnam | 1-3 | 10000 VND | 300000000 VND |
Indonesia | 1-3 | 10000 IDR | 1000000000 IDR |
India | 1-3 | 100.00 INR | 10000.00 INR |
Israel | 1-3 | 0.01 ILS | 100000 USD |
Pakistan | 1-3 | 0.01 PKR | 1000000 PKR |
Turkey | 1-3 | 0.01 TRY | 250000 TRY |
UAE | 1-3 | 0.01 AED | / |
European Union(Single Euro Payment Area) | 1-3 | 0.01 EUR | / |
United Kingdom | 1-3 | 0.01 GBP | / |
Denmark | 1-3 | 0.01 DKK | / |
Norway | 1-3 | 0.01 NOK | 25000000 NOK |
Poland | 1-3 | 0.01 PLN | 150000 PLN |
Sweden | 1-3 | 0.01 SEK | / |
Australia | 1-3 | 0.01 AUD | / |
New Zealand | 1-3 | 0.01 NZD | / |
China Mainland | 1-3 | 300 CNY | / |
The table above is a standard case. The Payout Speed may vary due to different banks, and it may take a few extra days. The type of business and the country you’re in can also affect payout timing.
Start your payout
Supported payment types:
- Bank account
- Card
- Carrier billing
- Alipay
- IMPS
- UPI
Bank account
Request
{
"payment_amount": 1000,
"payment_currency": "CNY",
"source_currency":"USD",
"description": "description something",
"metadata": {
"document_1": "file_1673896475416854528"
},
"beneficiary_data": {
"nickname": "test1",
"destination_data": {
"destination_type": "bank_account",
"bank_account": {
"country": "CN",
"currency": "CNY",
"swift": "ABOCCNBJ070",
"account_holder_name":"Wang Ming",
"account_holder_type": "individual",
"routing_number": "888888888888",
"account_number": "123412341234",
"bank_name": "Bank of China"
}
}
}
}
Alipay
Request
{
"payment_currency": "CNY",
"source_currency":"USD",
"source_amount":1000
"description": "description something",
"beneficiary_data": {
"nickname": "test1",
"destination_data": {
"destination_type": "alipay",
"alipay": {
"user_id": "+86123456789",
"first_name": "lei",
"last_name": "li"
}
}
}
}
Carrier billing
Request
{
"payment_currency": "CNY",
"source_currency":"USD",
"source_amount":1000
"description": "description something",
"beneficiary_data": {
"nickname": "test1",
"destination_data": {
"destination_type": "carrier_billing",
"carrier_billing": {
"carrier": "megafon",
"phone_number": "+7 123456789",
"country": "li",
"description":"Transfer"
}
}
}
}
Card
Request
{
"payment_currency": "CNY",
"source_currency":"USD",
"source_amount":1000
"description": "description something",
"beneficiary_data": {
"nickname": "test1",
"destination_data": {
"destination_type": "card",
"card": {
"name": "Bill Megafon",
"number": "4111111111111111",
"description":"Transfer"
}
}
}
}
IMPS
Request
{
"payment_currency": "INR",
"payment_amount": 100000,
"source_currency": "INR",
"beneficiary_data": {
"destination_data": {
"destination_type": "imps",
"imps": {
"account_number": "412422211444411",
"phone_number": "91-1234567",
"email":"XXXXX@XXXX.com",
"name":"XXXXX XXXXX"
"bank_code":"XXXX0XXXXXX"
}
}
},
"merchant_payout_id":"pay_123123123"
}
UPI
Request
{
"payment_currency": "INR",
"payment_amount": 100000,
"source_currency": "INR",
"beneficiary_data": {
"destination_data": {
"destination_type": "upi",
"upi": {
"vpa": "Test@gmail.com",
"phone_number": "91-1234567"
}
}
},
"merchant_payout_id":"pay_123123123"
}
Create a Payout with compliance documents
If you need to submit compliance documents to us, there are three steps to creating a Payout with compliance documents
- Upload the compliance documents using Create a file
Request Create a file
curl --location --request POST 'https://apitest.wooshpay.com/v1/files' \
--header 'Accept: application/json' \
--header 'Authorization: Your key' \
--header 'User-Agent: Apifox/1.0.0' \
--form 'file=@"/path/xxx.pdf"'
Response
{"id": "file_1654416327596572672","object": "file","created": 1683278565516,"url": "https://oss.swooshtransfer.cn/oa/product/1654416327596572672_9gKPHbFsa5pUq47TafAMfVvJ.pdf","type": "pdf","filename": "1654416327596572672_9gKPHbFsa5pUq47TafAMfVvJ.pdf"}
- Copy the URL on your response
- In the above case, the
URL
ishttps://oss.swooshtransfer.cn/oa/product/1654416327596572672_9gKPHbFsa5pUq47TafAMfVvJ.pdf
- Apply
metadata
to the payout created
metadata
: It consists of two parts, the first part is thekey
and the second part is thevalue
.- eg:
"metadata": { "compliance document": "Your document url", "key2": "value2", "...": "..." }
- eg:
Create a payout
Request
{
"beneficiary": "bf_1702584723433324544",
"payment_amount": 1000,
"payment_currency": "CNY", //the currency that the beneficiary receives
"source_currency":"USD", //the currency that the Payer uses to fund the payment
"description": "You can add description here",
"type": "to_China",
"metadata": {"compliance document": "https://oss.swooshtransfer.cn/oa/product/1654416327596572672_9gKPHbFsa5pUq47TafAMfVvJ.pdf"},
"payment_intents_id": [
"pi_1577840204872417280"
]
}
For Japanese Payout:
The typical format for a Japanese cash card number is: 4-digit bank code + 3-digit branch code + 7-digit account number.
When Creating a Beneficiary, the "destination_data" can be passed in the following format:
...
"destination_data": {
"destination_type": "bank_account",
"bank_account": {
"country": "JP",
"currency": "JPY",
"account_holder_name": "Bill Han", // Receiver's bank account holder name
"routing_number": "0001+130", // Bank code + Branch code
"account_holder_type": "individual", // Account holder type
"account_number": "1234567", // 7-digit bank account number
"bank_name": "みずほ銀行+ 新橋支店" // Bank name + Branch name
}
}
...
Payout failures
If the bank account can’t receive a payout for any reason, the bank sends the funds back to us. This returns an error with the reason for the failure. It can take several business days for your bank to return the payout and inform us that it failed. If this happens, you’re notified in the Dashboard. Make sure that the bank account information you provide is correct. If it’s not (a typo in the account number, for example), payouts may be sent to another bank account holder.
Negative payouts
Each payout reflects your available account balance at the time it was created. In some cases, you may have a negative account balance. For example, if you receive 100 USD in payments but refund 200 USD of prior payments, your account balance would be -100 USD. If you don’t receive further payments to balance out the negative amount, a new payout will fail.
Learn about the outcomes of your payout.
To know whether a payout to a bank account was successful, you need to set up a webhook.
The following Event Type are important when you make payouts to bank accounts, and you can create webhook to learn about the status of your payout.
payout.canceled
: Occurs whenever a payout is canceled.payout.created
: Occurs whenever a payout is created.payout.failed
: Occurs whenever a payout attempt fails.payout.paid
: Occurs whenever a payout is expected to be available in the destination account. If the payout fails, a payout.failed notification is also sent, at a later time.payout.updated
: Occurs whenever a payout is updated.
After identifying the events to monitor, you can refer to the webhook guide to Create a webhook.
Request
{
"description": "This is your description of the webhook",
"enabled_events": [
"payout.canceled",
"payout.created",
"payout.failed",
"payout.paid",
"payout.updated"
],
"url": "https://your_call_back_address.com"
}
Instant Payouts
With Instant Payouts, sending funds to a supported bank account (in the United Kingdom) can be processed within a day. You can request Instant Payouts any day or time, including weekends and holidays, and funds typically appear in the associated bank account.
Country/Region | Payout Speed(Business days) | Minimum Amount(Local currency) |
---|---|---|
United Kingdom | 0 | 0.01 GBP |