Skip to content

Get merchant account status

GET
/organizations/{oid}/merchant-account
curl --request GET \
--url https://apisandbox.puurk.com/organizations/example/merchant-account \
--header 'Authorization: Bearer <token>'

Reports whether an organization can be priced. GET /terms and POST /offers/{offerId}/services require a merchant account with a card method, both created by Stripe Connect onboarding. Poll this until status is active and card_method_configured is true — that is exactly the precondition those endpoints check. It reads stored state and never calls Stripe, so polling is cheap.

oid
required
string

Organization ID

Successful operation

Media typeapplication/json

Whether an organization can be priced. The raw Stripe account id is never returned.

object
status

setup — onboarding started but not complete. active — the organization can be priced. disabled — set by Puurk; payouts and scheduled payments stop for the organization. Onboarding only ever moves status forward to active; use charges_enabled / payouts_enabled for the live picture.

string
Allowed values: setup active disabled
has_gateway_account

A Stripe Connect account exists for this organization.

boolean
card_method_configured

A card payment method is configured. Pricing requires this and status: active.

boolean
charges_enabled

Stripe’s flag as of the last account.updated sync. Null means no sync has reported it yet, which is not the same as false.

boolean
nullable
payouts_enabled

Stripe’s flag as of the last account.updated sync. Null means no sync has reported it yet.

boolean
nullable
updated_at
string format: date-time
Example
{
"status": "setup"
}

Invalid parameter — the oid path parameter is blank.

Media typeapplication/json

The standard error body. error is a stable, machine-readable code — branch on it rather than on message, which is for humans and may change.

object
error

Machine-readable error code.

string
message

Human-readable detail.

string
Example
{
"error": "merchant_account_missing",
"message": "The organization has no merchant account. Complete Stripe Connect onboarding for this organization before generating pricing."
}

Unauthorized

forbidden — the token lacks the read action on organizations for this organization.

Media typeapplication/json

The standard error body. error is a stable, machine-readable code — branch on it rather than on message, which is for humans and may change.

object
error

Machine-readable error code.

string
message

Human-readable detail.

string
Example
{
"error": "merchant_account_missing",
"message": "The organization has no merchant account. Complete Stripe Connect onboarding for this organization before generating pricing."
}

merchant_account_missing — the organization has no merchant account yet. Create one with the onboarding-link endpoint.

Media typeapplication/json

The standard error body. error is a stable, machine-readable code — branch on it rather than on message, which is for humans and may change.

object
error

Machine-readable error code.

string
message

Human-readable detail.

string
Example
{
"error": "merchant_account_missing",
"message": "The organization has no merchant account. Complete Stripe Connect onboarding for this organization before generating pricing."
}

Server Error — unexpected failure reading the account.

Media typeapplication/json

The standard error body. error is a stable, machine-readable code — branch on it rather than on message, which is for humans and may change.

object
error

Machine-readable error code.

string
message

Human-readable detail.

string
Example
{
"error": "merchant_account_missing",
"message": "The organization has no merchant account. Complete Stripe Connect onboarding for this organization before generating pricing."
}