Skip to main content

ND8 API (1.1.0)

Download OpenAPI specification:Download

Payments: hosted checkout (POST /checkout/create/ on the API base, e.g. …/api/checkout/create/), get payment by id (GET /transactions/{id}/), create refund (POST /transactions/{id}/refund/), list/get refunds (GET /refunds/, GET /refunds/{id}/). Charge currencies: USD and EUR only.

Merchant (dashboard session): organization profile, API keys, webhooks, and payment links (payment links are not available with API keys—use Authorization: Token from the merchant web app).

Subscriptions: lifecycle (create, update, cancel, charges) is managed in the merchant dashboard; subscription REST endpoints for API keys are not part of this reference until published.

Webhooks: configure under Organization in the dashboard; events such as transaction.status_changed and refund.status_changed are documented in the product guides.

Create payment

Start a payment (hosted checkout session); USD or EUR

Create payment (hosted checkout)

Create a payment session (hosted checkout). Returns checkout_url and token. Redirect the customer to checkout_url to complete payment. Requires API key with checkout:create scope.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
billing_country
required
string <= 2 characters
billing_postal_code
string
billing_first_name
required
string <= 100 characters
billing_last_name
required
string <= 100 characters
billing_email
required
string <email>
billing_phone
string
currency
string
Default: "USD"
Enum: "USD" "EUR"

Charge currency; omitted values default to USD (matches the API).

required
Array of objects or objects (ProductItem)
successUrl
string <uri>
failedUrl
string <uri>
cancelUrl
string <uri>
sandbox_simulate
string
Enum: "payment_failed" "checkout_canceled" "canceled" "success_pending_deposit" "checkout_pending"

Sandbox API key only; rejected with production keys. Scripted provider outcomes apply only when the server runs internal simulation (e.g. CI). Otherwise the value may be stored on the session but does not change live provider GET results.

Responses

Request samples

Content type
application/json
{
  • "billing_country": "US",
  • "billing_postal_code": "string",
  • "billing_first_name": "string",
  • "billing_last_name": "string",
  • "billing_email": "user@example.com",
  • "billing_phone": "string",
  • "currency": "USD",
  • "products": [
    ],
  • "successUrl": "http://example.com",
  • "failedUrl": "http://example.com",
  • "cancelUrl": "http://example.com",
  • "sandbox_simulate": "payment_failed"
}

Response samples

Content type
application/json
{
  • "checkout_id": "string",
  • "order_id": "string",
  • "checkout_url": "http://example.com",
  • "token": "string",
  • "expires_at": 0
}

Get payment

Retrieve payment by ID (amount, status, etc.)

Get payment by ID

Retrieve a payment by its public ID (e.g. TXabc123) or numeric ID. Returns amount, status, currency, products, and timestamps. Requires API key.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Payment ID — use public ID (e.g. TXabc123) or numeric transaction ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "amount": "99.00",
  • "status": "string",
  • "currency": "USD",
  • "payer_email": "user@example.com",
  • "products": [
    ],
  • "created_at": "2019-08-24T14:15:22Z",
  • "depositAttempts": [
    ]
}

Refunds

Create and retrieve refunds for payments (API key)

Create refund for payment

Request a full or partial refund for a paid transaction. Requires API key with refunds:write or payments:write scope. No 2FA is required for API requests (unlike the merchant dashboard). Partial refunds are supported via amount. Refunds are subject to the same eligibility rules as the dashboard (paid status, wallet balance, provider limits). Partial refunds are supported when wallet balance is below the full payment amount. On success the refund status is processing while Inflow processes the request. Subscribe to refund.status_changed webhooks for updates.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Payment ID — public ID (e.g. TXabc123) or numeric transaction ID

Request Body schema: application/json
required
reason
required
string <= 500 characters

Reason shown to the customer and sent to the payment provider

amount
string

Partial refund amount in charge currency (TTC). Omit for full remaining refundable amount.

Responses

Request samples

Content type
application/json
{
  • "reason": "Customer request",
  • "amount": "40.00"
}

Response samples

Content type
application/json
{
  • "status": "processing",
  • "refund_id": 0,
  • "refund_public_id": "string",
  • "transaction_id": 0,
  • "amount": "string",
  • "currency": "string",
  • "amount_usd": "string",
  • "amount_in_cents": 0
}

List refunds

List refunds for the organization. Requires API key with refunds:read or payments:read scope.

Authorizations:
ApiKeyAuth
query Parameters
status
string
Enum: "pending" "processing" "completed" "failed" "rejected"
created_at__gte
string <date-time>
created_at__lte
string <date-time>
search
string

Search payment ID or refund reason

ordering
string

Sort field, e.g. -created_at, amount

page
integer
page_size
integer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get refund by ID

Retrieve a refund by public ID (e.g. RFabc123) or numeric ID. Requires refunds:read or payments:read.

Authorizations:
ApiKeyAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "transaction_id": "string",
  • "amount": "string",
  • "currency": "string",
  • "amount_in_cents": 0,
  • "amount_usd": "string",
  • "reason": "string",
  • "status": "pending",
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z"
}

Organization

Merchant organization, dashboard snapshot, API keys, webhooks (requires Token session)

Get organization (merchant session)

Returns the current user's organization profile. Requires dashboard session token.

Authorizations:
TokenAuth

Responses

Response samples

Content type
application/json
{ }

Update organization (merchant session)

Partial update of editable organization fields (e.g. name, website, contact_email, telegram, price_mode).

Authorizations:
TokenAuth
Request Body schema: application/json
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Organization dashboard snapshot

Stats and wallet summary for the merchant dashboard.

Authorizations:
TokenAuth

Responses

Response samples

Content type
application/json
{ }

List current API key metadata

Authorizations:
TokenAuth

Responses

Create organization API key

Authorizations:
TokenAuth
Request Body schema: application/json
name
string
allowed_scopes
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "allowed_scopes": "string"
}

Rotate API key

Authorizations:
TokenAuth

Responses

Get webhook configuration

Authorizations:
TokenAuth

Responses

Set webhook endpoint URL

Authorizations:
TokenAuth
Request Body schema: application/json
endpoint_url
required
string <uri>

Responses

Request samples

Content type
application/json
{}

List payments for a payment link

Authorizations:
TokenAuth
path Parameters
id
required
string <uuid>

Responses

Start checkout from payment link (customer)

Creates a hosted checkout session from the link snapshot. USD or EUR. No merchant API key required.

path Parameters
token
required
string <uuid>
Request Body schema: application/json
required
billing_country
required
string <= 2 characters
billing_postal_code
string
billing_first_name
required
string
billing_last_name
required
string
billing_email
required
string <email>
billing_phone
string
currency
string
Enum: "USD" "EUR"
successUrl
string <uri>
failedUrl
string <uri>
cancelUrl
string <uri>

Responses

Request samples

Content type
application/json
{
  • "billing_country": "st",
  • "billing_postal_code": "string",
  • "billing_first_name": "string",
  • "billing_last_name": "string",
  • "billing_email": "user@example.com",
  • "billing_phone": "string",
  • "currency": "USD",
  • "successUrl": "http://example.com",
  • "failedUrl": "http://example.com",
  • "cancelUrl": "http://example.com"
}