Skip to main content
POST
/
invoices
/
validate
Validate invoice data
curl --request POST \
  --url https://api.bitgpt.xyz/invoices/validate \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "items": [
    {
      "type": "PRODUCT",
      "product_id": "product_0197a8d9-8426-7e71-9edf-26301686ed26",
      "billing_schema_id": "schema_0197a8d9-8427-7dc4-9b9f-4e29594b5d12",
      "quantity": 2
    }
  ],
  "customer_email": "[email protected]",
  "currency": "BITCOIN",
  "metadata": {},
  "redirect_url": "<string>"
}
'
{
  "status": 200,
  "data": {
    "id": "123"
  },
  "error": null,
  "log": null,
  "validator": null,
  "support_id": null,
  "message": "Resource created successfully",
  "env": "development"
}

Authorizations

Authorization
string
header
required

Send your access token as header Authorization: Bearer {accessToken}

Authorization
string
header
required

Your API key that starts with sk_live or sk_test. You can create yours at go.bitgpt.xyz/api-keys.

Body

application/json

Request body for creating a new invoice

items
object[]
required
Minimum array length: 1

Invoice item for product type

Example:
{
  "type": "PRODUCT",
  "product_id": "product_0197a8d9-8426-7e71-9edf-26301686ed26",
  "billing_schema_id": "schema_0197a8d9-8427-7dc4-9b9f-4e29594b5d12",
  "quantity": 2
}
customer_email
string<email>
required

Customer email address

currency
enum<string>

Main currency for calculation (optional, can be determined from items). You must specify currency if all items do not have the same currency

Available options:
BITCOIN,
ETHEREUM,
USDT,
USDC,
USDC_NATIVE,
SOLANA,
BINANCE_COIN,
RIPPLE,
POLYGON,
TRON,
LITECOIN,
BITCOIN_CASH,
DOGECOIN,
USD,
EUR,
CHF,
GBP,
AUD,
JPY,
CNY,
CAD,
HKD,
SGD,
SEK,
KRW,
NOK,
NZD,
INR,
MXN,
TWD,
ZAR,
BRL,
DKK,
PLN,
THB,
ILS,
IDR,
CZK,
AED,
TRY,
HUF,
CLP,
SAR,
PHP,
MYR,
COP,
RUB,
RON,
PEN
Examples:

"GBP"

"BITCOIN"

metadata
object

Additional metadata for the invoice

redirect_url
string<uri>

URL to redirect to after payment completion

Response

Validate invoice

status
enum<integer>
required

Status code of the response

Available options:
200,
201,
202
data
required

Response data containing the requested object

message
string
required

Message of the response, human readable

Example:

"Invoice is valid"

env
enum<string>
required

API environment

Available options:
development,
production
error
string | null

Error message of the response, human readable

Example:

"Invalid email address"

log

Useful informaiton, not always present, to debug the response

Examples:
{ "request_id": "req_1234567890" }

"Some pertinent log message"

validator
object

Validator response object, each key is the field name and value is the error message

Example:
{
  "email": "Invalid email address",
  "password": "Password is required"
}
support_id
string<uuid> | null

Support ID linked to the response, used to identify it when talking with our team

Example:

"support_uuidv7-something-else"