Note: Replace YOUR_ACCESS_TOKEN with a valid access token when making requests.
Learn more about Authorization
/api/transaction/transferThis endpoint initiates the transfer for Money-Go transactions. The functionality differs based on the role of the user:
(Withdraw).(Buy Funds).Important Notes:
Wallet Currencies: The currencies of both the sender’s and receiver’s wallets must be identical. Any mismatch in currencies will cause the transaction to fail.
Transaction Limits: The minimum and maximum transaction amounts depend on the currency. Contact our managers to determine the exact limits for each currency.
Wallet Verification: You can also use it to check another user’s wallet using the CHECK wallet! method.
Recipient Wallets: The recipient’s wallet must not be the same as the sender’s wallet and must belong to a different user. This ensures that funds are not inadvertently transferred within the same account.
POSThttps://api.money-go.com/api/transaction/transferAuthorization: Bearer YOUR_ACCESS_TOKENContent-Type: application/json
Note: Replace YOUR_ACCESS_TOKEN with a valid access token when making requests.
Learn more about Authorization
{ "wallet_from": "U68", "wallet_to": "U41", "amount": "10", "payment_id": "", "description": ""}| Field | Type | Description |
|---|---|---|
| wallet_from | string | The sender’s wallet identifier. |
| wallet_to | string | The recipient’s wallet identifier. |
| amount | string | The transaction amount (e.g., "10"). |
| payment_id | string | (Optional) The payment identifier. |
| description | string | (Optional) A description for the transaction. |
curl -X POST "https://api.money-go.com/api/transaction/transfer" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \-d '{ "wallet_from": "U68", "wallet_to": "U41", "amount": 10, "payment_id": "", "description": ""}'<?php$url = "https://api.money-go.com/api/transaction/transfer";$data = [ "wallet_from" => "U68", "wallet_to" => "U41", "amount" => 10, "payment_id" => "", "description" => ""];$options = [ ‘http’ => [ ‘header’ => “Content-Type: application/json\r\nAuthorization: Bearer YOUR_ACCESS_TOKEN\r\n”, ‘method’ => ‘POST’, ‘content’ => json_encode($data) ]];
$context = stream_context_create($options);$result = file_get_contents($url, false, $context);if ($result === FALSE) { die(‘Error occurred while processing transaction transfer’);}
$response = json_decode($result, true);print_r($response);import fetch from 'node-fetch';
async function transfer(): Promise<void> { const url = "https://api.money-go.com/api/transaction/transfer"; const requestBody = { wallet_from: "U68", wallet_to: "U41", amount: 10, payment_id: "", description: "" };
try { const response = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Bearer YOUR_ACCESS_TOKEN" }, body: JSON.stringify(requestBody) });
if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); }
const data = await response.json(); console.log("Transfer Response:", data); } catch (error) { console.error("Error during transfer:", error); }}{ "status": true, "data": { "id": 123, "message": "Transaction complete success" }}| Field | Type | Description |
|---|---|---|
| status | boolean | Indicates whether the request was successful. |
| data | object | Contains additional details about the transaction. |
| Field | Type | Description |
|---|---|---|
| id | number | Unique identifier for the transaction. |
| message | string | Confirmation message indicating that the transaction was successfully completed. |
When a POST request is made to the /api/transaction/transfer endpoint, the API may return error responses with HTTP status code 4XX if any validation fails. Below is a table summarizing the possible error responses:
| Error Code | Error Message | Description |
|---|---|---|
| 403 | Sorry scope missed | Role model compliance check (authorization token matches user role) |
| 422 | Route locked to avoid duplication | The endpoint was called twice simultaneously. The second call is blocked to prevent duplicate processing. |
| 422 | Method locked please try again later | The number of requests per minute has been exceeded. The request limit is enforced; please try again later. |
| 422 | This value should not be blank. | A required field (such as amount, wallet_from or wallet_to) is missing a value. |
| 422 | This value should be positive. | The value of the amount field must be positive. |
| 422 | Wallet to not exists | The destination wallet (wallet_to) does not exist or is inactive (e.g., deleted or in status NEW) or insufficient balance. |
| 422 | Wallet from not exists | The sender wallet (wallet_from) does not exist or is inactive (e.g., deleted or in status NEW) or insufficient balance. |
| 422 | Minimum amount exceeded %min% for %currency% | The transaction amount is below the allowed minimum for the specified currency. |
| 422 | Maximum amount exceeded %max% for %currency% | The transaction amount is above the allowed maximum for the specified currency. |
| 422 | Currency is disabled | The specified currency is currently disabled and cannot be used for transactions. |
| 422 | balance - amount - commission < 0 | The sender’s wallet does not have sufficient funds, taking into account the commission (i.e., the amount exceeds the available balance). |
| 422 | Direction not active | The direction for the specified currency is not active at the moment |
| 422 | User is blocked | The recipient’s or sender’s account has been blocked. Please check the “translation” field for more details ("server_error.sender_account_is_blocked" or "server_error.recipient_account_is_blocked"). |