Base URLs & Request Format

Base URLs

EnvironmentURLUse Case
Productionhttps://api.inflowpay.xyzLive transactions
Card Paymentshttps://api-card.inflowpay.comServer-to-server card payments (send card data here)

When processing card data server-to-server, always use api-card.inflowpay.com instead of the standard API URL. This ensures PCI-compliant handling of card information.

Heads up — no sandbox yet. Inflow currently only ships a production API, so every request you make hits real-money infrastructure with the keys from your dashboard. A separate sandbox / test environment with its own base URL and dedicated test keys is on the roadmap and will be released soon. Until then, integrate carefully against production using small test amounts.

URL Prefixes by Resource

Note: Subscription endpoints use a different path prefix than payment endpoints.

ResourceExample Path
Paymentshttps://api.inflowpay.xyz/api/payment
Checkout paymentshttps://api.inflowpay.xyz/api/checkout/payment
Webhookshttps://api.inflowpay.xyz/api/webhook
Subscriptionshttps://api.inflowpay.xyz/subscription/... (no /api/ prefix)
Payment linkshttps://api.inflowpay.xyz/api/link

Request Format

All API requests use JSON for both request and response bodies.

Headers

HeaderRequiredDescription
Content-TypeYes (for POST/PUT/PATCH)Always application/json
AcceptRecommendedapplication/json
X-Inflow-Api-KeyYesYour private API key

Example Request

curl -X POST https://api.inflowpay.xyz/api/checkout/payment \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "X-Inflow-Api-Key: inflow_prod_your_key" \
  -d '{
    "products": [{ "name": "Product", "price": 4999, "quantity": 1 }],
    "currency": "EUR",
    "customerEmail": "[email protected]",
    "successUrl": "https://yoursite.com/success"
  }'

Example Response

{
  "paymentId": "pay_abc123",
  "purchaseUrl": "https://checkout.inflowpay.com/pay/pay_abc123"
}

HTTP Methods

MethodUsage
GETRetrieve resources (payments, subscriptions, links)
POSTCreate resources or perform actions
PATCHPartially update a resource
PUTFully update a resource
DELETEDelete a resource or cancel a subscription

HTTP Status Codes

CodeMeaning
200Success (GET, PATCH, PUT, DELETE)
201Created (POST)
400Bad Request — Invalid parameters
401Unauthorized — Invalid or missing API key
404Not Found — Resource doesn't exist
500Internal Server Error — Something went wrong on our side

Error Response Format

All errors return a consistent JSON structure:

{
  "statusCode": 400,
  "message": "Validation failed",
  "error": "Bad Request"
}

For validation errors, message may be an array of error strings:

{
  "statusCode": 400,
  "message": [
    "currency must be one of the following values: EUR, USD",
    "customerEmail must be an email"
  ],
  "error": "Bad Request"
}