Introduction
Welcome to the Prompt.Cash REST API docs.
For code examples how to integrate our gateway please visit our GitHub.
Authentication
To authorize, use this code:
# With shell, you can just pass the correct header with each request
curl "https://prompt.cash/api/v1/get-something" \
-H "Authorization: Your-Secret-Account-Token"
Make sure to replace
Your-Secret-Account-Token
All REST API calls are authorized by an additional HTTP header:
Authorization: Your-Secret-Account-Token
Payments
Create a new payment
curl "https://prompt.cash/api/v1/create-payment" \
-H "Authorization: Your-Secret-Account-Token" \
-d "token=Your-Public-Account-Tokenk&tx_id=Your-Unique-Order-ID&amount=0.01¤cy=USD&desc+Your+Product&return=http://your-store.com/order-received-page.html" \
-X POST
The above command returns JSON structured like this:
{
"payment": {
"id": 10,
"tx_id": "Your-Unique-Order-ID",
"amount_crypto": 0.000020576132,
"amount_fiat": 0.01,
"status": "PENDING",
"paid_amount_crypto": 0,
"fiat_currency": "USD",
"crypto_currency": "BCH",
"slp_token": "SPICE",
"description": "",
"callback_url": "",
"return_url": "http://your-store.com/order-received-page.html",
"referer": "",
"email": "",
"address": "bitcoincash:qptj65anjpvwcfdvvn5qgxjzauc9hkaxsv7fxadkzl",
"confirmations": 0,
"hash": "",
"created_at": "2021-01-22T20:07:37.666707+07:00",
"paid": "0001-01-01T00:00:00Z",
"remaining_amount_crypto": 0.00002058,
"payment_link": "bitcoincash:qptj65anjpvwcfdvvn5qgxjzauc9hkaxsv7fxadkzl?amount=0.00002058",
"qr_url": "https://prompt.cash/pub/temp/qr/4cd1db6642a018c48ae41825e241b0d26813bbc7f80b68a41d2f3abefe5c40ec.png"
},
"existing": false
}
HTTP Request
POST https://prompt.cash/api/v1/create-payment
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
token | yes | "" | Your Public Token from your account settings. |
tx_id | yes | "" | A unique string as ID you must choose for each payment. A good candidate is a MySQL Primary Key for your order (or MongoDB _id ). |
amount | yes | 0 | The amount the customer has to pay. |
currency | yes | "" | The currency for the amount parameter in your request. Possible values: BCH , USD , EUR , GBP , JPY , CNY , ... |
slp_token | no | "" | SLP token identifier: SPICE , USDT , USDH , ... |
desc | no | "" | A description to identify this payment in your payment history. |
callback | no | "" | A URL to receive a HTTP POST callback when the payment status changes. |
return | no | "" | A URL to redirect the customer back to after a successful payment. This will usually be the "order confirmed" page of your store. |
expiration | no | 30 | The time in minutes how long the customer has to pay (until the payment is expired). |
confirm | no | 0 | The required confirmations (included blocks on chain) before the payment is considered PAID . |
time | no | 0 | The current UNIX timestamp (in seconds). Required with signature . |
signature | no | "" | Required if Enforce API Signatures is enabled in your account. The SHA2 hash of all your parameters with Secret-Token as prefix: SHA256(Secret + token=...&tx_id=...&time=123) Ensure the parameters have the same order as listed here! Secret means Your-Secret-Account-Token and + means string concatenation of UTF-8 strings. |
Possible payment status
values in the returned JSON are:
PENDING|CONFIRMING|PAID|CANCELLED|EXPIRED|HOLD|REFUNDED
Get a single payment
curl "https://prompt.cash/api/v1/get-payment" \
-H "Authorization: Your-Secret-Account-Token"
The above command returns JSON structured like this:
{
"data": {
"id": 2,
"tx_id": "Your-Unique-Order-ID",
"amount_crypto": 5.0299997,
"amount_fiat": 2416,
"status": "PAID",
"paid_amount_crypto": 1,
"fiat_currency": "USD",
"crypto_currency": "BCH",
"slp_token": "",
"description": "Your Product",
"callback_url": "",
"return_url": "http://your-store.com/order-received-page.html",
"referer": "",
"email": "",
"address": "bitcoincash:qzh7zxv6t6vlh3djl5jeyllqymcnucs56cy06gmp04",
"confirmations": 0,
"hash": "",
"created_at": "2021-01-20T11:07:21.589+07:00",
"paid": "0001-01-01T00:00:00Z"
}
}
This endpoint retrieves a specific payment.
HTTP Request
GET https://prompt.cash/api/v1/get-payment/<tx_id>
URL Parameters
Parameter | Description |
---|---|
tx_id | The tx_id of the payment to retrieve. You created this tx_id when sending the customer to our gateway. Usually this will be your internal order ID. |
Query Parameters
Parameter | Required | Default | Description |
---|---|---|---|
force | no | false | Check the blockchain immediately for payments. Otherwise it might take 1-2 minutes for your new payments to show up via API. |
Get a list of payments
curl "https://prompt.cash/api/v1/get-payments" \
-H "Authorization: Your-Secret-Account-Token"
The above command returns JSON structured like this:
{
"data": [
{
"id": 2,
"tx_id": "foo2",
"amount_crypto": 5.0299997,
"amount_fiat": 2416,
"status": "PAID",
"paid_amount_crypto": 1,
"fiat_currency": "USD",
"crypto_currency": "BCH",
"slp_token": "",
"description": "Your Product",
"callback_url": "",
"return_url": "http://your-store.com/order-received-page.html",
"referer": "",
"email": "",
"address": "bitcoincash:qzh7zxv6t6vlh3djl5jeyllqymcnucs56cy06gmp04",
"confirmations": 0,
"hash": "",
"created_at": "2021-01-20T11:07:21.589+07:00",
"paid": "0001-01-01T00:00:00Z"
},
{
"id": 3,
"tx_id": "next-payment",
"amount_crypto": 5.0299997,
"amount_fiat": 2416,
"status": "PAID",
"paid_amount_crypto": 1,
"fiat_currency": "USD",
"crypto_currency": "BCH",
"slp_token": "",
"description": "Your Product",
"callback_url": "",
"return_url": "http://your-store.com/order-received-page.html",
"referer": "",
"email": "",
"address": "bitcoincash:qzh7zxv6t6vlh3djl5jeyllqymcnucs56cy06gmp04",
"confirmations": 0,
"hash": "",
"created_at": "2021-01-20T11:07:22.549+07:00",
"paid": "0001-01-01T00:00:00Z"
}
]
}
This endpoint retrieves all payments matching your query in the order they have been created.
HTTP Request
GET https://prompt.cash/api/v1/get-payments
Query Parameters
Parameter | Default | Description |
---|---|---|
currency | "" | Only return the payments in the specified currency. Otherweise return all. For example: USD or EUR |
status | "" | Only return payments with the specified status (empty value returns all). Values: PENDING PAID CANCELLED EXPIRED REFUNDED |
from | 0 | Only return payments created after this UNIX timestamp in seconds (compared as >= ). |
to | 0 | Only return payments created before this UNIX timestamp in seconds (compared as < ). |
limit | 100 | Limit the max number of returned payments (max 500 ). |
offset | 0 | Skip the specified amount of payments from the beginning of results (to retrieve batches of limit payments per request). |
URL Shortener
Create URL
This command adds a new shortened URL entry.
curl "https://prompt.cash/api/v1/surl/create" \
-H "Authorization: Your-Secret-Account-Token" \
-d "url=url-to-be-shortened&title=user-title&description=user-description&amount=paywall-price¤cy=used-currency&mode=paywall-mode" \
-X POST
The above command returns JSON structured like this:
{
"status": "SUCCESS",
"token": "abcdef"
}
HTTP Request
POST https://prompt.cash/api/v1/surl/create
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
url | yes | "" | Url that is to be added. |
title | no | "" | User provided title for the entry. |
description | no | "" | User provided description of the entry. |
amount | yes | 0.00 | Paywall amount asked. |
currency | yes | BCH | Used currency. |
mode | yes | PASS | Redirection mode. |
Possible returned status
values in the returned JSON are:
SUCCESS|FAILED
The token
contains the token (URL param) for tne new entry on success.
Update Url
This command updates an existing shortened URL entry.
curl "https://prompt.cash/api/v1/surl/update" \
-H "Authorization: Your-Secret-Account-Token" \
-d "token=existing-token-if&title=user-title&description=user-description&amount=paywall-price¤cy=used-currency&mode=paywall-mode" \
-X POST
The above command returns JSON structured like this:
{
"status": "SUCCESS"
}
HTTP Request
POST https://prompt.cash/api/v1/surl/update
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
token | yes | "" | Existing token to be updated. |
title | no | "" | User provided title for the entry. |
description | no | "" | User provided description of the entry. |
amount | yes | 0.00 | Paywall amount asked. |
currency | yes | BCH | Used currency. |
mode | yes | PASS | Redirection mode. |
Possible returned status
values in the returned JSON are:
SUCCESS|FAILED
Get Url
This command gets an existing shortened URL entry.
curl "https://prompt.cash/api/v1/surl/get?token=existing-token-if" \
-H "Authorization: Your-Secret-Account-Token" \
The above command returns JSON structured like this:
{
"url": {
"token": "abcdef",
"url": "https://example.com",
"title": "Example site",
"description": "bla bla bla",
"amount": 0.0,
"currency": "BCH",
"mode": "PASS"
},
"status": "SUCCESS"
}
HTTP Request
GET https://prompt.cash/api/v1/surl/get
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
token | yes | "" | Existing token to retrieve the short URL data for. |
Possible returned status
values in the returned JSON are:
SUCCESS|FAILED
Delete Url
This command deletes an existing shortened URL entry.
curl "https://prompt.cash/api/v1/surl/delete?token=existing-token-if" \
-H "Authorization: Your-Secret-Account-Token" \
-X POST
The above command returns JSON structured like this:
{
"status": "SUCCESS"
}
HTTP Request
POST https://prompt.cash/api/v1/surl/delete
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
token | yes | "" | Existing token to be updated. |
Possible returned status
values in the returned JSON are:
SUCCESS|FAILED
List Urls
This command lists existing shortened URL entries for the authenticated user.
curl "https://prompt.cash/api/v1/surl/list?limit=entry-limit&offset=entry-offset" \
-H "Authorization: Your-Secret-Account-Token" \
The above command returns JSON structured like this:
{
"data": [{
"token": "abcdef",
"url": "https://example.com",
"title": "Example site",
"description": "bla bla bla",
"amount": 0.0,
"currency": "BCH",
"mode": "PASS"
},{
"token": "ghijkl",
"url": "https://an-otner-example.com",
"title": "Example site",
"description": "bla bla bla",
"amount": 0.0,
"currency": "BCH",
"mode": "PASS"
}],
"status": "SUCCESS"
}
HTTP Request
GET https://prompt.cash/api/v1/surl/list
POST Parameters
Parameter | Required | Default | Description |
---|---|---|---|
limit | no | 100 | Limit the max number of returned entries (max 500 ). |
offset | no | 0 | Skip the specified amount of entries from the beginning of results (to retrieve batches of limit payments per request). |
Possible returned status
values in the returned JSON are:
SUCCESS|FAILED
Errors
Our API uses the following error codes:
HTTP Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key (Secret token) is wrong. |
404 | Not Found -- The requested data could not be found. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
To get a detailed explanation of the error please look at the "error" property in the response JSON.
See the example on the right.
{
"error": "this is what went wrong..."
}