Introduction
curl "https://meeg.io/api/v1/ping" \
-H "Authorization: Token <token>" \
-H "Idempotency-Key: 60Nk1zqhQJDoFnKj"
Common
This is a documentation for public https://meeg.io service. Before using this API you need to get API keys of the related page in your personal account.
Idempotent Requests
The API supports idempotency for safely retrying requests without accidentally performing the same operation twice. For example, if a request to create a charge fails due to a network connection error, you can retry the request with the same idempotency key to guarantee that only a single charge is created.
GET and DELETE requests are idempotent by definition, meaning that the same backend work will occur no matter how many times the same request is issued. You shouldn't send an idempotency key with these verbs because it will have no effect.
To perform an idempotent request, provide an additional Idempotency-Key: header to the request.
How you create unique keys is up to you, but we suggest using V4 UUIDs or another appropriately random string. We'll always send back the same response for requests made with the same key, and keys can't be reused with different request parameters. Keys expire after 24 hours.
Request IDs
Each API request has an associated request identifier. You can find this value in the response headers, under Request-Id. You can also find request identifiers in the URLs of individual request logs in your Dashboard. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.
Pagination
All top-level API resources have support for bulk fetches via "list" API methods. For instance, you can list transactions, wallets. These list API methods share a common structure, taking at least these two parameters: page
and limit
.
Argument | Description |
---|---|
page |
Pagination starts at page 1, not at page 0 (page 0 will return the same results as page 1) |
limit |
A limit on the number if objects to be returned. (default 25, max 100) |
Dates
All dates should be passed and will be formatted according with iso8601
- YYYY-MM-DDTHH:mm:ss.sssZ
(ex. 2018-04-10T14:48:00.000Z
)
Wallets
Wallet object
Example
{
"id": "a0f1f57d-322e-4a90-9f60-ca17387fa2c5",
"name": "main",
"currency": "BTC",
"human": "Main BTC Wallet",
"description": "Default BTC wallet with multiple addresses",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "1.948",
"created_at": "2018-08-14T16:44:26.925Z",
"updated_at": "2018-08-21T12:22:37.391Z"
}
Represents wallet object
Attributes:
Attribute | Description |
---|---|
id |
Wallet ID |
name |
Wallet name |
currency |
Wallet's currency. Available options: ["BTC", "ETH", "EUR", "RUB", "USD", "USDT"] |
human |
Wallet full name |
description |
Wallet description |
system_fee_percent |
Processing fee percent |
merchant_fee_percent |
Merchant fee percent |
balance |
Wallet balance (by default this field is present only for requesting a specific wallet, you need to add an extra parameter when you request an array of wallets so that the balance is displayed) |
created_at |
Wallet creation date and time |
updated_at |
Wallet updated date and time |
Create wallet
POST https://meeg.io/api/v1/wallets
Example request
curl -X POST \
https://meeg.io/api/v1/wallets \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 7952c055-b8a1-498e-b0ea-737985e954c0' \
-d '{
"name": "crypto_btc",
"currency": "BTC",
"human": "Crypto BTC",
"description": "For inner use of the new crypto-exchange"
}'
The above command returns JSON structured like this:
{
"data": {
"id": "8961afc0-e2da-4807-a517-e82909c135ee",
"name": "crypto_btc",
"currency": "BTC",
"human": "Crypto BTC",
"description": "For inner use of the new crypto-exchange",
"system_fee_percent": "1.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-29T10:51:39.283Z",
"updated_at": "2018-08-29T10:51:39.881Z"
}
}
Create wallet from parent wallet
POST https://meeg.io/api/v1/wallets
Example request
curl -X POST \
https://meeg.io/api/v1/wallets \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"name": "Ethereum Token wallet from Ethereum wallet",
"currency": "ABX",
"human": "Human name",
"description": "Some description",
"parent_wallet": "44efc654-b40f-44e0-8e70-b3fcffbf5b98"
}'
The above command returns JSON structured like this:
{
"data": {
"id": "2d7964ab-f59e-4e4d-8f2b-aa6371132c82",
"name": "Ethereum Token wallet from Ethereum wallet",
"currency": "ABX",
"human": "Human name",
"description": "Some description",
"system_fee_percent": "1.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-11-21T09:51:57.153Z",
"updated_at": "2018-11-21T09:51:57.153Z"
}
}
You can create a wallet for Ethereum Token based on your Ethereum wallet. Or, based on a Ethereum Token wallet, create an Ethereum wallet.
Create wallet by seed phrase
GET https://meeg.io/api/v1/wallets/:wallet_id/seed
Example request
curl -X POST \
https://meeg.io/api/v1/wallets/seed \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: <token>' \
-d '{
"seed": "task olympic spoon remove answer method divert wet stick stuff cause trick",
"name": "Wallet name",
"currency": "BTC",
"segwit_type": "native",
"human": "Human name",
"description": "Some description"
}'
Example response
{
"data": {
"id": "8961afc0-e2da-4807-a517-e82909c135ee",
"name": "Wallet name",
"currency": "BTC",
"human": "Human name",
"description": "Some description",
"system_fee_percent": "1.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-29T10:51:39.283Z",
"updated_at": "2018-08-29T10:51:39.881Z"
}
}
Return wallet
POST https://meeg.io/api/v1/wallet/:id
Example request
curl -X GET \
https://meeg.io/api/v1/wallets/f17dc388-c93d-4934-87ca-b830151cb837 \
-H 'Authorization: Token <token>' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": "f17dc388-c93d-4934-87ca-b830151cb837",
"name": "main",
"currency": "ETH",
"human": "Main ETH Wallet",
"description": "Default ETH wallet with multiple addresses",
"system_fee_percent": "1.0",
"merchant_fee_percent": "0.0",
"balance": "0.5459715561",
"created_at": "2018-09-03T07:02:15.860Z",
"updated_at": "2018-09-03T07:02:16.195Z"
}
}
Wallets without balances
GET https://meeg.io/api/v1/wallets?page=1&limit=20
Example request
curl -X GET \
'https://meeg.io/api/v1/wallets?page=1&limit=20' \
-H 'Authorization: Token <token>' \
-H "Content-Type: application/json"
The above command returns JSON structured like this:
{
"_metadata": {
"total": 5,
"current_page": 1,
"last_page": 1,
"limit": 20,
"out_of_range": false
},
"data": [
{
"id": "a0f1f57d-322e-4a90-9f60-ca17387fa2c5",
"name": "main",
"currency": "BTC",
"human": "Main BTC Wallet",
"description": "Default BTC wallet with multiple addresses",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-14T16:44:26.925Z",
"updated_at": "2018-08-21T12:22:37.391Z"
},
{
"id": "c6136ee4-eabd-4cbe-aed8-ecd0ffdbcc4e",
"name": "main",
"currency": "ETH",
"human": "Main ETH Wallet",
"description": "Default ETH wallet with multiple addresses",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-14T16:44:27.478Z",
"updated_at": "2018-08-21T12:22:38.231Z"
},
{
"id": "3a488bed-1f03-4f89-9c04-0713d240c45f",
"name": "main",
"currency": "EUR",
"human": "Main EUR Wallet",
"description": "Default EUR wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-14T16:44:27.946Z",
"updated_at": "2018-08-21T15:42:08.601Z"
},
{
"id": "5b191e4b-e1c2-4e9c-8d0b-4c4ab87a4129",
"name": "main",
"currency": "RUB",
"human": "Main RUB Wallet",
"description": "Default RUB wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-14T16:44:27.950Z",
"updated_at": "2018-08-21T12:22:35.378Z"
},
{
"id": "50540b3f-3ebe-4397-8d96-80f78ad08e2d",
"name": "main",
"currency": "USD",
"human": "Main USD Wallet",
"description": "Default USD wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-14T16:44:27.954Z",
"updated_at": "2018-08-21T12:22:35.866Z"
}
]
}
Wallets with balances
GET https://meeg.io/api/v1/wallets?page=1&limit=20&extra[]=balance
Example request
curl -X GET \
'https://meeg.io/api/v1/wallets?page=1&limit=20&extra[]=balance' \
-H 'Authorization: Token <token>' \
-H "Content-Type: application/json"
The above command returns JSON structured like this:
{
"_metadata": {
"total": 5,
"current_page": 1,
"last_page": 1,
"limit": 20,
"out_of_range": false
},
"data": [
{
"id": "a0f1f57d-322e-4a90-9f60-ca17387fa2c5",
"name": "main",
"currency": "BTC",
"human": "Main BTC Wallet",
"description": "Default BTC wallet with multiple addresses",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "0.0",
"created_at": "2018-08-14T16:44:26.925Z",
"updated_at": "2018-08-21T12:22:37.391Z"
},
{
"id": "c6136ee4-eabd-4cbe-aed8-ecd0ffdbcc4e",
"name": "main",
"currency": "ETH",
"human": "Main ETH Wallet",
"description": "Default ETH wallet with multiple addresses",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "0.0",
"created_at": "2018-08-14T16:44:27.478Z",
"updated_at": "2018-08-21T12:22:38.231Z"
},
{
"id": "3a488bed-1f03-4f89-9c04-0713d240c45f",
"name": "main",
"currency": "EUR",
"human": "Main EUR Wallet",
"description": "Default EUR wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "0.0",
"created_at": "2018-08-14T16:44:27.946Z",
"updated_at": "2018-08-21T15:42:08.601Z"
},
{
"id": "5b191e4b-e1c2-4e9c-8d0b-4c4ab87a4129",
"name": "main",
"currency": "RUB",
"human": "Main RUB Wallet",
"description": "Default RUB wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "0.0",
"created_at": "2018-08-14T16:44:27.950Z",
"updated_at": "2018-08-21T12:22:35.378Z"
},
{
"id": "50540b3f-3ebe-4397-8d96-80f78ad08e2d",
"name": "main",
"currency": "USD",
"human": "Main USD Wallet",
"description": "Default USD wallet",
"system_fee_percent": "0.0",
"merchant_fee_percent": "0.0",
"balance": "0.0",
"created_at": "2018-08-14T16:44:27.954Z",
"updated_at": "2018-08-21T12:22:35.866Z"
}
]
}
This request takes longer to execute than the request without balances
Wallet addresses
Wallet address object
Example
{
"address": "0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336",
"final_balance": "2.189445976325668992",
"total_received": "2.289446",
"total_sent": "0.100000023674331008",
"txs_count": 15
}
Represents wallet object
Attributes:
Attribute | Description |
---|---|
id |
Address ID |
name |
Some human name |
address |
Address |
final_balance |
Current address balance |
total_received |
Incoming transactions amount |
total_sent |
Outgoing transactions amount |
txs_count |
Transactions count |
Return wallet addresses
GET https://meeg.io/api/v1/wallets/:id/addresses?page=1&limit=25
Example request
curl -X GET \
'https://meeg.io/api/v1/wallets/c6136ee4-eabd-4cbe-aed8-ecd0ffdbcc4e/addresses?page=1&limit=25' \
-H 'Authorization: Token <token>' \
-H "Content-Type: application/json"
The above command returns JSON structured like this:
{
"_metadata": {
"total": 3,
"current_page": 1,
"last_page": 1,
"limit": 25,
"out_of_range": false
},
"data": [
{
"address": "0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336",
"final_balance": "2.189445976325668992",
"total_received": "2.289446",
"total_sent": "0.100000023674331008",
"txs_count": 15
},
{
"address": "0x2a9f57585de532f675660f3ec3f73f41195fa8bb",
"final_balance": "0.0",
"total_received": "0.0",
"total_sent": "0.0",
"txs_count": 0
}
]
}
Return wallet addresses
GET https://meeg.io/api/v1/wallets/:id/addresses?page=1&limit=25
Example request
curl -X GET \
'https://meeg.io/api/v1/wallets/c6136ee4-eabd-4cbe-aed8-ecd0ffdbcc4e/addresses?page=1&limit=25' \
-H 'Authorization: Token <token>' \
-H "Content-Type: application/json"
The above command returns JSON structured like this:
{
"_metadata": {
"total": 3,
"current_page": 1,
"last_page": 1,
"limit": 25,
"out_of_range": false
},
"data": [
{
"address": "0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336",
"final_balance": "2.189445976325668992",
"total_received": "2.289446",
"total_sent": "0.100000023674331008",
"txs_count": 15
},
{
"address": "0x2a9f57585de532f675660f3ec3f73f41195fa8bb",
"final_balance": "0.0",
"total_received": "0.0",
"total_sent": "0.0",
"txs_count": 0
}
]
}
Return wallet address
GET https://meeg.io/api/v1/wallets/:id/addresses/:address
Example request
curl -X GET \
'https://meeg.io/api/v1/wallets/c6136ee4-eabd-4cbe-aed8-ecd0ffdbcc4e/addresses/0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336' \
-H 'Authorization: Token <token>' \
-H "Content-Type: application/json"
The above command returns JSON structured like this:
{
"data": {
"address": "0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336",
"final_balance": "2.189445976325668992",
"total_received": "2.289446",
"total_sent": "0.100000023674331008",
"txs_count": 15
}
}
Create address
Parameters:
Parameter | Description |
---|---|
name |
Some human name |
Returns an address object
Wallet's address transactions
The ETH or TOKEN transaction object
Parameter | Description |
---|---|
hash |
Transaction hash |
block_number |
Block number where the transaction is included |
confirmations_count |
Transaction confirmation count |
description |
Transaction description |
gas_price |
Gas price |
gas_limit |
Gas limit |
nonce |
Ethereum transaction nonce |
type |
Transaction type |
value |
Transaction amount |
sender_address |
A ethereum address of the sender |
receiver_address |
A ethereum address of the recipient |
statuses |
Array of transaction statuses |
forwarded_for |
Hash of the transaction for which the forwarding was made |
All possible transaction statuses:
- "non confirmed" - newly created transaction in the application, not sent to mempool
- "queued" - transaction is in the queue to be sent
- "in mempool" - transaction in mempool
- "in block" - transaction is mined
- "failed" - transaction is rejected
- "pending" - queued up for virtual machine execution
- "success" - transfer completed successfully
Possible statuses for outgoing transactions: "non confirmed", "queued", "in mempool", "in block", "failed", "pending", "success"
Possible statuses for incoming transactions: "in mempool", "in block", "failed", "pending", "success"
The BTC transaction object
Parameter | Description |
---|---|
hash |
Transaction hash |
amount |
Transaction amount |
block_number |
Block number where the transaction is included |
confirmations_count |
Transaction confirmation count |
fee |
Transaction fee |
type |
Transaction type |
description |
Transaction description |
receiver_addresses |
Array of receiver addresses with amount |
sender_address |
Array of sender addresses with amount |
statuses |
Array of transaction statuses |
forwarded_for |
Hash of the transaction for which the forwarding was made |
All possible transaction statuses:
- "non confirmed" - newly created transaction in the application, not sent to mempool
- "queued" - transaction is in the queue to be sent
- "in mempool" - transaction in mempool
- "in block" - transaction is mined
- "failed" - transaction is rejected
Possible statuses for outgoing transactions: "non confirmed", "queued", "in mempool", "in block", "failed"
Possible statuses for incoming transactions: "in mempool", "in block", "failed"
Get All transactions
GET https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address_id/transactions
curl "https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address_id/transactions?
&from_date=2016-04-12T00:00:00.000Z&to_date=2019-04-30T00:00:00.01100Z&page=1&limit=10&fromaddress&toaddress
-H "Authorization: Token <token>"
For the Ethereum the above command returns JSON structured like this:
{
"_metadata": {
"total": 1,
"current_page": 1,
"last_page": 1,
"limit": 10,
"out_of_range": false
},
"data": [
{
"hash": "0xa59ae3c19ab383143918cfe032271e2182855a5a3449f068f533379e4ea46fab",
"block_number": 4267539,
"confirmations_count": 302,
"description": "Incoming transaction",
"gas_price": "0.000000111",
"gas_limit": 21000,
"nonce": 94,
"type": "receive",
"value": "2.0",
"sender_address": "0x8abAb4093391340180CACe15404866499bb7D701",
"receiver_address": "0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336",
"forwarded_for": "0x11a37d55786b781b01dda4405646c43bcc36574b45b9f83470ebd19fba7470c3",
"statuses": [
{
"status": "in mempool",
"date": "Fri, 19 Oct 2018 10:06:58 GMT"
},
{
"status": "in block",
"date": "Fri, 19 Oct 2018 10:07:06 GMT"
}
]
}
]
}
For the Bitcoin the above command returns JSON structured like this:
{
"_metadata": {
"total": 1,
"current_page": 1,
"last_page": 1,
"limit": 10,
"out_of_range": false
},
"data": [
{
"hash": "ea574e5982434a920b6d3be80090fb8da97f6f4d20c7eb522c9c36772a81fad9",
"amount": "0.00013",
"block_number": 1439531,
"confirmations_count": 11,
"fee": "0.00001",
"type": "send",
"description": "Transaction [CURL]",
"forwarded_for": "3b10b68f8703efae9c71134feeca6770670e1e2aae78faba9868da0d341fa157",
"receiver_addresses": [
{
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB",
"amount": "0.0001"
},
{
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB",
"amount": "0.00003"
},
{
"address": "2N8QznL4ifxkg5nUakQL4aAwNTCREWrDdgv",
"amount": "0.01453181"
}
],
"sender_addresses": [
{
"address": "2N8QznL4ifxkg5nUakQL4aAwNTCREWrDdgv"
}
],
"statuses": [
{
"status": "non confirmed",
"date": "Fri, 19 Oct 2018 10:11:24 GMT"
},
{
"status": "in mempool",
"date": "Fri, 19 Oct 2018 10:11:24 GMT"
},
{
"status": "in block",
"date": "Fri, 19 Oct 2018 10:36:37 GMT"
}
]
}
]
}
Create BTC transaction
POST https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/45346ce2-b905-49f9-8463-cb0959c93784/addresses/2N8QznL4ifxkg5nUakQL4aAwNTCREWrDdgv/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"to_": [
{
"amount": "0.0001",
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
},
{
"amount": "0.00003",
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"description": "Transaction [CURL]",
"fee": "hourFee"
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "2d4217e45c1e3ff6a1257a95662eebce30bb6ac195e874fb3fbcd337dff5f464"
}
}
Parameter | Description |
---|---|
to_ |
Recipient addresses with amount |
description |
Transaction description |
fee |
"fastestFee", "halfHourFee", "hourFee" or value in bitcoin |
Create ETH transaction
POST https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/568c5ed2-10c5-4a80-b91d-5a80f8e1f7e0/addresses/0x05cb0eab06fbb7ab1aa5708bab3bce35b6bff336/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"to_": "0x8abAb4093391340180CACe15404866499bb7D701",
"description": "Transaction [CURL]",
"gas_price": "0.00000000001",
"gas_limit": 21000,
"amount": "0.0000000505"
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "0x1cc19b3a7f80d12b992c5bed3f101548b374d2c9c4804fde4d02508c36e4fcbc"
}
}
Parameter | Description |
---|---|
to_ |
Recipient address |
description |
Transaction description |
gas_price |
GasPrice in ether |
gas_limit |
GasLimit |
amount |
Amount in ether |
Create TOKEN transaction
POST https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/ae8e53dd-c42e-43b1-9b6f-eecb2c4aa934/addresses/0xf019ea768e154219935ff957f2216c66d9eb802a/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"to_": "0x8abAb4093391340180CACe15404866499bb7D701",
"description": "Transaction [CURL]",
"gas_price": "0.0000000001",
"gas_limit": 150000,
"amount": "100.005",
"use_liquidity_wallet_for_fee": false
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "0x1cc19b3a7f80d12b992c5bed3f101548b374d2c9c4804fde4d02508c36e4fcbc"
}
}
Parameter | Description |
---|---|
to_ |
Recipient address |
description |
Transaction description |
gas_price |
GasPrice in ether |
gas_limit |
GasLimit |
amount |
Amount in ether |
use_liquidity_wallet_for_fee |
Payment of commission with liquidity wallet (true/false) |
Create USDT transaction
POST https://meeg.io/api/v1/wallets/:wallet_id/addresses/:address/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/73b819fb-0332-24ec-8ac9-49a247c3299a/addresses/2N8QznL4ifxkg5nUakQL4aAwNTCREWrDdgv/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"to_": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB",
"amount": "0.01",
"description": "Transaction [CURL]"
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "2d4217e45c1e3ff6a1257a95662eebce30bb6ac195e874fb3fbcd337dff5f464"
}
}
Wallet's transactions
The diff in comparison with Wallet's address transactions is that you need to specify the sender address(es) (from_
field in requests)
Create transaction (ETH)
POST https://meeg.io/api/v1/wallets/:wallet_id/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/acded3fc-5144-4726-b45b-d83fa56136b0/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"from_": "0x822c09d5f89261c02d4fc0bb65bb45c7ea234efe",
"to_": "0x8abAb4093391340180CACe15404866499bb7D701",
"description": "Transaction [CURL]",
"gas_price": "0.0000000045",
"gas_limit": 21000,
"amount": "0.0000000000356"
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "0x7a3ba664212845234dba3cc6ed37d1279226255d6d7878e2544a1b19f02d7f21"
}
}
Parameter | Description |
---|---|
from_ |
Sender address |
to_ |
Recipient address |
description |
Transaction description |
gas_price |
GasPrice in ether |
gas_limit |
GasLimit |
amount |
Amount in ether |
Create transaction (TOKEN)
POST https://meeg.io/api/v1/wallets/:wallet_id/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/ae8e53dd-c42e-43b1-9b6f-eecb2c4aa934/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"from_": "0x2c6a31f12c1b10ed0506afb104d4aab6be3333b1",
"to_": "0x8abAb4093391340180CACe15404866499bb7D701",
"description": "Transaction [CURL]",
"gas_price": "0.0000000001",
"gas_limit": 150000,
"amount": "100.005",
"use_liquidity_wallet_for_fee": false
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "0x1cc19b3a7f80d12b992c5bed3f101548b374d2c9c4804fde4d02508c36e4fcbc"
}
}
Parameter | Description |
---|---|
from_ |
Sender address |
to_ |
Recipient address |
description |
Transaction description |
gas_price |
GasPrice in ether |
gas_limit |
GasLimit |
amount |
Amount in tokens |
use_liquidity_wallet_for_fee |
Payment of commission with liquidity wallet (true/false) |
Create transaction (BTC)
POST https://meeg.io/api/v1/wallets/:wallet_id/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/45346ce2-b905-49f9-8463-cb0959c93784/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"from_": ["2N8QznL4ifxkg5nUakQL4aAwNTCREWrDdgv", "2N14ygepzQ51ymqw4WnUnPcu4cQkJ29EVgj"],
"to_": [
{
"amount": "0.0001",
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
},
{
"amount": "0.000013",
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"description": "Transaction [CURL]",
"fee": "hourFee"
}'
The above command returns JSON structured like this: json { "data": { "hash": "44ea4b8e6ba8d4408e5d4d0e101a7c0cb0ad4391350dd1d885b4621a32ff9d30" } }
Parameter | Description |
---|---|
from_ |
Sender address |
to_ |
Recipient addresses with amount |
description |
Transaction description |
fee |
"fastestFee", "halfHourFee", "hourFee" or value in bitcoin |
Create transaction (USDT)
POST https://meeg.io/api/v1/wallets/:wallet_id/transactions
curl -X POST \
https://meeg.io/api/v1/wallets/73b809fb-0332-44ec-1ac9-49a247c3292a/transactions \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"from_": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX",
"to_": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB",
"amount": "0.01"
}'
The above command returns JSON structured like this:
{
"data": {
"hash": "44ea4b8e6ba8d4408e5d4d0e101a7c0cb0ad4391350dd1d885b4621a32ff9d30"
}
}
Parameter | Description |
---|---|
from_ |
Sender address |
to_ |
Recipient addresses |
amount |
Amount |
Wallet's webhooks
With the help of webhooks you will receive notifications about transactions in the blockchain. Maximum number of webhooks 20.
Webhook object
Example
{
"id": "746d6b9e-7ce2-4231-87ea-d746a6f40db2",
"url": "https://emample.com/endpoint",
"max_confirmations": 6,
"max_retries": 3
}
Represents webhook object
Attributes:
Parameter | Description |
---|---|
id |
Webhook ID |
url |
Webhook url |
max_confirmations |
The number of transaction confirmations in the blockchain to be notified about. Valid value from 0 to 100 |
max_retries |
Maximum number of attempts to send a webhook. Valid value from 0 to 100 |
Create webhook
POST https://meeg.io/api/v1/wallets/:id/webhooks
Example request
curl -X POST \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/webhooks \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://emample.com/endpoint",
"max_confirmations": 6,
"max_retries": 3
}'
The above command returns JSON structured like this:
{
"data": {
"id": "485380ca-5b59-4236-976c-20429c68e3ff",
"url": "https://emample.com/endpoint",
"max_confirmations": 6,
"max_retries": 3
}
}
Return webhooks
GET https://meeg.io/api/v1/wallets/:id/webhooks
Example request
curl -X GET \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/webhooks \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"_metadata": {
"total": 2
},
"data": [
{
"id": "f6303175-c86e-4ff4-81b8-40f23e6b3402",
"url": "https://emample.com/endpoint1",
"max_confirmations": 2,
"max_retries": 1
},
{
"id": "485380ca-5b59-4236-976c-20429c68e3ff",
"url": "https://emample.com/endpoint2",
"max_confirmations": 6,
"max_retries": 3
}
]
}
Delete webhook
DELETE https://meeg.io/api/v1/wallets/:id/webhooks/:webhook_id
Example request
curl -X DELETE \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/webhooks/cd0d8b1d-b20a-41f0-80d1-faf2c4629a82 \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json'
The above command returns only HTTP code (204)
Webhook request
Webhook for ETH
{
"account": {
"id": "1f02413b-c08e-1eef-b3b7-f6b07c136d01"
},
"transaction": {
"hash": "0x976d866a7e5cb9f0106fd74f48b4ebf9f484067cf786a541b012099e28fbd2a6",
"position": null,
"from_address": "0x235cE7409D8Dfc72D0B6377761dc9c20e3967198",
"to_address": "0x8cbbbf681ee97e4bf86fa54ae171d7efa108d867",
"value": 2133990000000000,
"gas_price": 7000000000,
"nonce": 0,
"input_data": "0x",
"type": "receive"
},
"event": {
"event_type": "SUCCESS",
"event_group": "TX"
},
"block_number": 5981239,
"confirmation": 0
}
Webhook for TOKEN
{
"account": {
"id": "d18108eb-bee5-4b41-be5b-e6156a496147"
},
"transaction": {
"hash": "0x8abb8862899c19c04b7ce517d54cd6a5aabd5858683be854a2f634e3dd9990a0",
"position": 0,
"from_address": "0x274F3c32C90517975e29Dfc209a23f315c1e5Fc7",
"to_address": "0xefbd0c505ad422134e6cd1a8af63b9c70ed538e9",
"value": 1.0085e+21,
"gas_price": 50000000000,
"nonce": 134458,
"input_data": "0xa9059cbb000000000000000000000000efbd0c505ad422134e6cd1a8af63b9c70ed538e9000000000000000000000000000000000000000000000036abbfbebced720000",
"type": "receive",
"currency": "ABX"
},
"event": {
"event_type": "UPDATE",
"event_group": "TX"
},
"block_number": 6937111,
"confirmation": 3
}
Webhook for BTC
{
"event": {
"event_type": "CREATE",
"event_group": "TX"
},
"block_number": null,
"account": {
"id": "1af71414-bdf1-4a16-9b41-133f5b6b9ae1"
},
"confirmation": 0,
"transaction": {
"ins": [
{
"script": "47304402207a8e712b394f5abb98f2f3c710babe8dbc7b2da7e57aa3dfcbbed08807b90c2c022055cd332d047cce7eeff4bd8b319b90a5899811d22f8e7f8fa32fda07a91e95d80121035a9347865719fe1f7aae59dcb19f6eb70a471808d5424a41013177dbab92b26a",
"address": "13jrfpw3tRppxNrfaBxmWtrKnAG6EEteUa",
"position": 0,
"previous_hash": "c917b524fc65a378e872bcc65c86c751246d5be7d4708f4e299a0026cfc89645"
},
{
"script": "473044022002724d5e5216296bd34e94afc617bbd12258efd2efac2e94da6655c843f4d8e4022047ada12af99bb0fa31a6f2dc7022fb804aa52dbd96e6e63e4fa3b29dbcbf5e780121036a06338df7b1af63e76e7f46af27874762ca5d87cd9be8cb21043a57d7a42b08",
"address": "14sQ2ERZaeEUHXZ94ZAbjuKbPaeSuisDYp",
"position": 0,
"previous_hash": "131091397a2c3ae643af545d8aa5f9f2409b78aef3914bb9f9100d288b11205e"
}
],
"outs": [
{
"position": 0,
"address": "32ZVTU6oHMBqMemArPaQuXtV2zroMqZ2to",
"script": "a914098bc818d1e632a9bf9023d49ff5f50ad19d54d987",
"value": 808035
},
{
"position": 1,
"address": "18SJDwJKYpnKppedyBZpURgFrjHqveEGf1",
"script": "76a9145191a816dec73e10c4de7dbaebba8d8785be1d7d88ac",
"value": 2028090
}
],
"hash": "964755b5fdff53807a9df96a33bfd5b7af832beb827d5117f181a08ede0fba7c",
"lock_time": 538363,
"position": null
}
}
Represents the request body from our server.
Possible attribute values.
event.event_type: UPDATE CREATE DELETE PENDING QUEUED FAILED SUCCESS
transaction.type: receive send sendraw send_token
Wallet's Webhooks for Outgoing Transactions
Webhook Payload
Example for a new operation
{
"approved": false,
"approved_at": null,
"created_at": "2019-12-05T22:31:19.854Z",
"data": {
"type": "send",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"from_": [
"2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx"
],
"fee": "hourFee"
},
"declared_params": {
"id": "6d121844-31d4-4de8-8320-5dd17f36193e",
"from_": "2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"fee": "hourFee"
},
"declined": false,
"declined_at": null,
"error": null,
"has_error": null,
"id": "3cafa58f-9725-4eca-93ff-59ad07767bb6",
"lock_version": 0,
"result": null,
"txid": null,
"updated_at": "2019-12-05T22:31:19.854Z",
"wallet_id": "6d121844-31d4-4de8-8320-5dd17f36193e"
}
Example for a declined operation
{
"approved": false,
"approved_at": null,
"created_at": "2019-12-05T22:31:19.854Z",
"data": {
"type": "send",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"from_": [
"2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx"
],
"fee": "hourFee"
},
"declared_params": {
"id": "6d121844-31d4-4de8-8320-5dd17f36193e",
"from_": "2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"fee": "hourFee"
},
"declined": true,
"declined_at": "2019-12-05T22:52:45.948Z",
"error": null,
"has_error": null,
"id": "3cafa58f-9725-4eca-93ff-59ad07767bb6",
"result": null,
"txid": null,
"updated_at": "2019-12-05T22:52:45.960Z",
"wallet_id": "6d121844-31d4-4de8-8320-5dd17f36193e"
}
Example for approved operation
{
"approved": true,
"approved_at": "2019-12-05T22:54:57.667Z",
"created_at": "2019-12-05T22:52:35.984Z",
"data": {
"type": "send",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"from_": [
"2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx"
],
"fee": "hourFee"
},
"declared_params": {
"id": "6d121844-31d4-4de8-8320-5dd17f36193e",
"from_": "2MxDEYUuFaVHY5gRsLhodscU3rQ3gcxxNXx",
"to_": [
{
"amount": 50000,
"address": "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB"
}
],
"fee": "hourFee"
},
"declined": false,
"declined_at": null,
"error": null,
"has_error": false,
"id": "784b1d57-0364-449c-a71c-967143ea01a0",
"result": {
"status": "success",
"transaction": "4ba3d9942f6f882ab356707beb5ee54c3e4a79a933cb3aca004bdf13e5fd37c8"
},
"txid": "4ba3d9942f6f882ab356707beb5ee54c3e4a79a933cb3aca004bdf13e5fd37c8",
"updated_at": "2019-12-05T22:55:00.494Z",
"wallet_id": "6d121844-31d4-4de8-8320-5dd17f36193e"
}
Exchange Callbacks
Callback object
Example
{
"orders": [
{
"id": "d136f2e0-c938-4596-b226-140d557d5eda",
"wallet_id": "a0f1f57d-322e-4a90-9f60-ca17387fa2c5",
"address": "39Sqhiw9KVWWLBkHKRkMohatFnUhy7esYm",
"tx_hash": "8b4f535d4bae8e6219ee2f9be279a0a2ac6256573fc38df6a49e9f2e868d308e",
"amount": "1.000023",
"currency": "BTC",
"filled": [
{
"amount": "7960.02",
"currency": "USD",
}
]
}
]
}
Callbacks is used to sent notifications once exchange order is executed.
Attributes:
Attribute | Description |
---|---|
id |
Unique order ID |
wallet_id |
Wallet ID |
address |
Address was used for deposit |
tx_hash |
Transaction ID was used for deposit |
amount |
Sold amount |
currency |
Wallet currency |
filled |
Array of stock orders values |
Wallet's payment forwarding
Payment forwarding points to what address to transfer the arriving money.
Payment forwarding object
Example
{
"id": "a1c28479-6e6c-4504-87ed-ea56ab09cafc",
"address": "1LpkYGhsQEeE11KmsxdTmC6kM1vo1mk7b8",
"blocks_count": 1,
"fee": "0.0000001"
}
Example
{
"address": "0xE0bB087dc0F751F2b87E1323f1700F514EB635f0",
"blocks_count": 1,
"gas_price": "0.0003"
}
Represents webhook object
Attributes:
Attribute | Description |
---|---|
id |
Payment forwarding ID |
address |
The address to which money will be transferred |
blocks_count |
The expected number of confirmations for the incoming transaction. Valid value from 0 to 100 |
gas_price |
GasPrice for ETH |
fee |
Fee for BTC |
Create payment forwarding
POST https://meeg.io/api/v1/wallets/:id/payment_forwarding
Example request
curl -X POST \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/payment_forwarding \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"address": "1LpkYGhsQEeE11KmsxdTmC6kM1vo1mk7b8",
"blocks_count": 1,
"fee": "0.000001"
}'
The above command returns JSON structured like this:
{
"data": {
"id": "d220089b-8cef-4374-968b-f1746354e840",
"address": "1LpkYGhsQEeE11KmsxdTmC6kM1vo1mk7b8",
"blocks_count": 1,
"fee": "0.000001"
}
}
Return payment forwarding
GET https://meeg.io/api/v1/wallets/:id/payment_forwarding
Example request
curl -X GET \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/payment_forwarding \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json'
The above command returns JSON structured like this:
{
"data": {
"id": "d220089b-8cef-4374-968b-f1746354e840",
"address": "1LpkYGhsQEeE11KmsxdTmC6kM1vo1mk7b8",
"blocks_count": 1,
"fee": "0.000001"
}
}
Update payment forwarding
PUT https://meeg.io/api/v1/wallets/:id/payment_forwarding
Example request
curl -X PUT \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/payment_forwarding \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-d '{
"address": "1N8hwYGo2uvFGr6z1Hysp3j7V9nBrZ1dmm",
"blocks_count": 2,
"fee": 0.000002"
}'
The above command returns JSON structured like this:
{
"data": {
"id": "d220089b-8cef-4374-968b-f1746354e840",
"address": "1N8hwYGo2uvFGr6z1Hysp3j7V9nBrZ1dmm",
"blocks_count": 2,
"charge": "0.000002"
}
}
DELETE payment forwarding
DELETE https://meeg.io/api/v1/wallets/:id/payment_forwarding
Example request
curl -X DELETE \
https://meeg.io/api/v1/wallets/1cf72914-d5fc-425b-ad72-ca9320d4cbcf/payment_forwarding \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json'
The above command returns only HTTP code (204) if payment forwarding removed and code (404) if payment forwarding for wallet doesn't exist
Wallet's seed
Seed object
Example
{
"seed": "task olympic spoon remove answer method divert wet stick stuff cause trick",
"segwit_type": "non_native"
}
Attributes:
Attribute | Description |
---|---|
seed |
Seed recovery phrase |
segwit_type |
Only for bitcoin (legacy, non-native, native). Not required. |
Get wallet's seed
GET https://meeg.io/api/v1/wallets/:wallet_id/seed
Example request
curl -X GET \
https://meeg.io/api/v1/wallets/45346ce2-b905-49f9-8463-cb0959c93784/seed \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json'
Example response
{
"data": {
"seed": "task olympic spoon remove answer method divert wet stick stuff cause trick",
"segwit_type": "non_native"
}
}
Create wallet by seed phrase
GET https://meeg.io/api/v1/wallets/:wallet_id/seed
Example request
curl -X POST \
https://meeg.io/api/v1/wallets/seed \
-H 'Authorization: Token <token>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: <token>' \
-d '{
"seed": "task olympic spoon remove answer method divert wet stick stuff cause trick",
"name": "Wallet name",
"currency": "BTC",
"segwit_type": "native",
"human": "Human name",
"description": "Some description"
}'
Example response
{
"data": {
"id": "8961afc0-e2da-4807-a517-e82909c135ee",
"name": "Wallet name",
"currency": "BTC",
"human": "Human name",
"description": "Some description",
"system_fee_percent": "1.0",
"merchant_fee_percent": "0.0",
"created_at": "2018-08-29T10:51:39.283Z",
"updated_at": "2018-08-29T10:51:39.881Z"
}
}
Errors
Processing uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). Codes in the 5xx range indicate an error with processing's servers (these are rare).
Some 4xx errors that could be handled programmatically (e.g., a card is declined) include an error code that briefly explains the error reported.
Processing API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The requested is not authorized. |
404 | Not Found -- Resource could not be found. |
405 | Method Not Allowed -- You tried to access resource with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The resource requested has been removed from our servers. |
429 | Too Many Requests -- You're requesting too frequently! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Signing API requests
Key generation
The client on his side generates a public and private key based on the RSA256 algorithm. After that it sends only the public key to [email protected], this key will be used to validate all requests. Unsigned requests will be rejected.
Create request signature
Sample code for creating a signature:
Base64.strict_encode64(OpenSSL::PKey::RSA.new(YOUR_PRIVATE_KEY).private_encrypt(Digest::SHA256.hexdigest("#{API_KEY}#{URL}#{BODY_STR}")))
The signature is added to the Sign header of the request.
Sample code to add a Sign header:
post URL, params: JSON.load(BODY_STR), as: :json, headers: {
"Content-Type": "application/json",
"Authorization": "Token #{API_KEY}",
"Sign": Base64.strict_encode64(OpenSSL::PKey::RSA.new(YOUR_PRIVATE_KEY).private_encrypt(Digest::SHA256.hexdigest("#{API_KEY}#{URL}#{BODY_STR}")))
}
Variable | Meaning |
---|---|
YOUR_PRIVATE_KEY | private key |
API_KEY | key generated in your account |
URL | request URL (for example, https://meeg.io/api/v1/ping) |
BODY_STR | request body, if any |
Address validation
Validate address
https://meeg.io/api/v1/validate/btc/2NGZrVvZG92qGYqzTLjCAewvPZ7JE8S8VxE
{
"data": {
"is_valid": false
}
}
https://testnet.meeg.io/api/v1/validate/btc/2NGZrVvZG92qGYqzTLjCAewvPZ7JE8S8VxE
{
"data": {
"is_valid": true
}
}
https://meeg.io/api/v1/validate/eth/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
{
"data": {
"is_valid": true
}
}
To validate an address in mainnet, you need to make a request to meeg.io domain. If you want to validate addresses in testnet, you need to make a request to testnet.meeg.io domain.
URL structure: /api/v1/validate/:currency/:address
Attribute | Description |
---|---|
currency |
currency, available currencies: eth, btc |
address |
address for specified currency |
Invoice processing
Invoice object
Example
{
"id": "3cc95f4b-8b14-4c02-95e2-0002b77caa4d",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "NEW",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-28T10:10:34.791Z",
"updated_at": "2020-12-28T10:10:34.791Z",
"customer_email": "[email protected]",
"btc_address": "2N84FHPk745t1Ws7vjTX2V4UTvDtwMVfzQq",
"btc_amount": "0.045762499579444076",
"btc_rate": "0.000045692133693556",
"usd_amount": "1181.8172",
"usd_rate": "1.18"
}
Attributes:
Attribute | Description |
---|---|
id | Invoice ID |
store_id | Store ID |
amount | Amount set at invoice creation |
currency | Settlement currency, available values: "EUR", "USD", "BTC" |
status | Available statuses: "NEW", "PAID" |
success_redirect_url | Redirect url for paid invoice |
error_redirect_url | URL for "RETURN TO STORE" link |
created_at | Time of creation |
updated_at | Time of updating |
customer_email | Customer email |
btc_address | BTC address |
btc_amount | BTC amount |
btc_rate | BTC per settlement currency |
usd_amount | USD amount |
usd_rate | USD per settlement currency |
Create invoice
POST https://meeg.io/api/v1/checkout/stores/:store_id/invoices
Example request
curl --location --request POST 'https://meeg.io/api/v1/checkout/stores/8f314370-83ab-4c00-8c77-c9874d4b2a6a/invoices' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token <token>' \
--data-raw '{
"amount": "1001.54",
"currency": "EUR",
"customer_email": "[email protected]",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error"
}'
The above command returns JSON structured like this:
{
"id": "165152de-4fde-4c40-ab3e-354a580c8e99",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "NEW",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-30T12:49:49.899Z",
"updated_at": "2020-12-30T12:49:49.899Z",
"customer_email": "[email protected]",
"btc_address": "2N9HjtJZLvoiZ4kpXnJv9nGPSAYydEQhJQW",
"btc_amount": "0.044237474907194096",
"btc_rate": "0.000044169453948114",
"usd_amount": "1181.8172",
"usd_rate": "1.18"
}
Show invoice
GET https://meeg.io/api/v1/checkout/stores/:store_id/invoices/:invoice_id
Example request
curl --location --request GET 'http://meeg.io/api/v1/checkout/stores/8f314370-83ab-4c00-8c77-c9874d4b2a6a/invoices/7e0eea17-5433-4879-b0e0-52081fbf7431' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token <token>'
The above command returns JSON structured like this:
{
"id": "165152de-4fde-4c40-ab3e-354a580c8e99",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "NEW",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-30T12:49:49.899Z",
"updated_at": "2020-12-30T12:49:49.899Z",
"customer_email": "[email protected]",
"btc_address": "2N9HjtJZLvoiZ4kpXnJv9nGPSAYydEQhJQW",
"btc_amount": "0.044237474907194096",
"btc_rate": "0.000044169453948114",
"usd_amount": "1181.8172",
"usd_rate": "1.18"
}
Invoice webhook
Example
{
"id": "165152de-4fde-4c40-ab3e-354a580c8e99",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "PAID",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-30T12:49:49.899Z",
"updated_at": "2020-12-30T12:49:49.899Z",
"customer_email": "[email protected]",
"btc_address": "2N9HjtJZLvoiZ4kpXnJv9nGPSAYydEQhJQW",
"btc_amount": "0.044237474907194096",
"btc_rate": "0.000044169453948114",
"usd_amount": "1181.8172",
"usd_rate": "1.18"
}
Callback object
Callbacks is used to sent notifications once invoice is updated.
Deactivate invoice
PUT https://meeg.io/api/v1/checkout/invoices/:invoice_id/deactivate
Example request
curl -X PUT 'https://meeg.io/api/v1/checkout/invoices/8f314370-83ab-4c00-8c77-c9874d4b2a6a/deactivate' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <token>' \
-d ''
The above command returns JSON structured like this:
{
"id": "165152de-4fde-4c40-ab3e-354a580c8e99",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "NEW",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-30T12:49:49.899Z",
"updated_at": "2020-12-30T12:49:49.899Z",
"customer_email": "[email protected]",
"btc_address": "2N9HjtJZLvoiZ4kpXnJv9nGPSAYydEQhJQW",
"btc_amount": "0.044237474907194096",
"btc_rate": "0.000044169453948114",
"usd_amount": "1181.8172",
"usd_rate": "1.18",
"activated": false
}
Activate invoice
PUT https://meeg.io/api/v1/checkout/invoices/:invoice_id/activate
Example request
curl -X PUT 'https://meeg.io/api/v1/checkout/invoices/8f314370-83ab-4c00-8c77-c9874d4b2a6a/activate' \
-H 'Content-Type: application/json' \
-H 'Authorization: Token <token>' \
-d ''
The above command returns JSON structured like this:
{
"id": "165152de-4fde-4c40-ab3e-354a580c8e99",
"store_id": "8f314370-83ab-4c00-8c77-c9874d4b2a6a",
"amount": "1001.54",
"currency": "EUR",
"status": "NEW",
"success_redirect_url": "https://example.com/process/success",
"error_redirect_url": "https://example.com/process/error",
"created_at": "2020-12-30T12:49:49.899Z",
"updated_at": "2020-12-30T12:49:49.899Z",
"customer_email": "[email protected]",
"btc_address": "2N9HjtJZLvoiZ4kpXnJv9nGPSAYydEQhJQW",
"btc_amount": "0.044237474907194096",
"btc_rate": "0.000044169453948114",
"usd_amount": "1181.8172",
"usd_rate": "1.18",
"activated": true
}
Errors
The Kittn API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The kitten requested is hidden for administrators only. |
404 | Not Found -- The specified kitten could not be found. |
405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The kitten requested has been removed from our servers. |
418 | I'm a teapot. |
429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |