Check payment status (via Api Key)
This endpoint checks whether a project (or a specific domain under the project) has been marked as paid.
It can also optionally return paid-only injectables when payment is confirmed.
Endpoint
GET /api/v1/project/{project}/has-paidAuthentication
This endpoint uses your API Key.
Required header
X-API-KEY: <your_api_key>Optional headers
Some checks are domain-aware, so DevPayr may need to know the domain making the request.
X-Devpayr-Domain
Sometimes
Recommended. Used to check payment status for the calling domain under the project.
Accept
No
application/json
β
Best practice: always send X-Devpayr-Domain if you want domain-specific checks.
Example:
X-Devpayr-Domain: yourapp.comPath Parameters
project
integer
Yes
The project ID.
Query Parameters
action
string
No
Set to check_project to force a project-level check (ignores domain).
include
string
No
Set to injectables to include paid-only injectables when has_paid=true.
Examples:
/api/v1/project/42/has-paid?action=check_project/api/v1/project/42/has-paid?include=injectables/api/v1/project/42/has-paid?action=check_project&include=injectables
What this endpoint checks
DevPayr decides has_paid using one of these flows:
Project-level (forced)
If
action=check_project, it checks the projectβs paid state.
Domain-level (if applicable)
Otherwise, DevPayr attempts to evaluate paid status for a specific domain under the project.
To do this, DevPayr needs the request domain β send
X-Devpayr-Domain.
If the domain cannot be determined, it returns 400. If the domain is not registered under the project, it returns 403.
Request Example (cURL)
Response Fields Explained
Top-level response keys
status
string
success or error
message
string
Human-readable message
data
object | null
Payload
errors
object | null
Error details (if any)
data keys
data keyshas_paid
boolean
Whether payment is confirmed for the evaluated target
injectables
array
Present only when include=injectables and has_paid=true
injectables[] object keys
injectables[] object keysid
integer
Injectable ID
slug
string
Identifier slug
title
string | null
Display title
type
string
Injectable type
mode
string
Injectable mode
target_path
string | null
Where it should apply
content
string
Encrypted content
file_path
string | null
Encrypted file path (only for file-type injectables)
is_active
boolean
Whether injectable is active
only_if_paid
boolean
Whether injectable is paid-only
meta
object
Optional metadata
Error Responses
401 β Missing API key
403 β API key not allowed for this project
400 β Domain could not be determined (domain-aware check)
403 β Domain not registered under the project
Last updated