POST
https://api.fps.pro/invoices/create
Request formatapplication/json
amountrequired number | Payment amount in the selected fiat currency |
currencyrequired string | Accepted fiat currency (see the fiat list) |
order_idstring | Order ID in your system |
networkstring | You can specify the network where payment must be accepted, or leave the field empty to accept payment in any available network |
webhook_linkurl | URL where the payment status will be returned Default: merchant settings |
success_linkurl | URL where the client will be redirected after a successful payment Default: merchant settings |
error_linkurl | URL where the client will be redirected after an unsuccessful payment Default: merchant settings |
part_paymentboolean | You can allow or prohibit partial payment within a single payment Default: true or merchant settings |
ignore_client_amountboolean | If you set this value to True, any amount paid by your client will successfully complete the invoice Default: false or merchant settings |
payment_accuracynumber | Specify a percentage value from 1 to 100. If you set 5 for a $100 payment, then when the client pays $95, the payment will be considered successful and completed Default: 0 or merchant settings |
feenumber | A value from 1 to 100 that adds a percentage-based fee to the payment Default: 0 |
discountnumber | A value from 1 to 100 that applies the specified discount percentage to the payment Default: 0 |
additional_infostring | Any information |
auto_convertboolean | Automatically convert the payment after it is received Default: false |
Response formatdata object
iduuid | Invoice ID |
info.currencystring | null | Fiat currency code of the invoice |
info.tokenstring | null | Payment token |
info.networkstring | null | Payment network |
info.addressstring | null | Wallet address for payment |
amount.starting_pricenumber | Initial invoice amount in fiat |
amount.discount_percentnumber | Discount amount as a percentage |
amount.merchant_fee_percentnumber | Merchant fee as a percentage |
amount.service_fee_percentnumber | null | Platform service fee as a percentage |
amount.totalnumber | Final amount after discount and fee |
url.webhookurl | null | Merchant Webhook URL |
url.successurl | null | Redirect URL after successful payment |
url.errorurl | null | Redirect URL after failed payment |
url.paymenturl | Payment page link |
options.part_paymentboolean | Whether partial payment is allowed |
options.ignore_client_amountboolean | Whether the exact client amount is ignored |
options.payment_accuracynumber | Allowed payment tolerance |
additional.order_idstring | null | External order ID |
additional.infostring | null | Additional order information |
statusstring | Current invoice status |
expired_atstring (ISO 8601, UTC) | Invoice expiration date |
created_atstring (ISO 8601, UTC) | Invoice creation date |
Request examples
curl --request POST 'https://api.fps.pro/invoices/create' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: YOUR_CLIENT_ID' \
--header 'X-Timestamp: 1720000000' \
--header 'X-Signature: YOUR_HMAC_SHA256_SIGNATURE' \
--data '{
"amount": 150.75,
"currency": "usd",
"order_id": "ORD-1001",
"network": "tron",
"webhook_link": "https://merchant.example.com/webhooks/fps",
"success_link": "https://merchant.example.com/payments/success",
"error_link": "https://merchant.example.com/payments/error",
"part_payment": true,
"ignore_client_amount": false,
"payment_accuracy": 0,
"fee": 1.5,
"discount": 3,
"additional_info": "Premium subscription",
"auto_convert": false
}'Successful response
{
"status": 201,
"message": "invoice created",
"data": {
"id": "0a718b02-138d-495a-9661-39ca52139c07",
"info": {
"currency": "USD",
"token": null,
"network": null,
"address": null
},
"amount": {
"starting_price": 1000,
"discount_percent": 0,
"merchant_fee_percent": 10,
"service_fee_percent": 1,
"total": 1100
},
"url": {
"webhook": "https://merchant.example/webhook",
"success": "https://merchant.example/success",
"error": "https://merchant.example/error",
"payment": "https://frontend.example/0a718b02-138d-495a-9661-39ca52139c07"
},
"options": {
"part_payment": true,
"ignore_client_amount": false,
"payment_accuracy": 0
},
"additional": {
"order_id": "1",
"info": ""
},
"status": "init",
"expired_at": "2026-01-05 14:30:43",
"created_at": "2026-01-05T13:30:43.000Z"
}
}Errors
Detailed authorization errors are listed in Authorization - Errors
{
"status": 422,
"message": "Validation Error",
"errors": [
{
"field": "currency",
"message": "currency is required"
}
]
}{
"status": 500,
"message": "Internal Server Error"
}