Skip to content
Loading keys…
Authorization<token>

A public key (pk./pk_test.) is accepted on /payments, /customers, /links, /invoices and the catalogue reads (/channels, /providers, /countries, /currencies); anything that moves money out, reads the balance or manages the account answers 406 to it. It is an identifier, never an authorization. Use a secret key (sk./sk_test.) for sensitive operations (transfers, refunds, balance), or a restricted key (rk./rk_test.) scoped to specific permissions. The _test. variant of any key selects the sandbox environment, there is no separate sandbox URL. Never expose your secret key in client-side code.

In: header

Request Body

application/json

referencestring | null

Your own reference for this subaccount. Unique among your connections of the environment for good: a cancelled connection keeps its reference, and it cannot be changed afterwards.

capabilitiesarray<string>required

One or more of: read, payments, withdrawals, refunds, disputes, customers, invoices.

pricingobject | null

Your fee on the account's activity: `percentage_fee`, `fixed_fee`, `min_fee`, `max_fee`, `currency`.

percentage_feenumber | null

Percentage the platform retains (0–100).

fixed_feenumber | null

Flat fee per operation (major unit).

max_feenumber | null

Cap on the computed fee.

min_feenumber | null

Floor on the computed fee.

currencystring | null

Currency for the fee figures, required if any of fixed_fee/min_fee/max_fee is set.

callbackstring | null

The page the merchant is sent back to once they have accepted the connection. HTTPS only; `http://localhost` and `http://127.0.0.1` are accepted with a sandbox key. It also registers the origin a `redirect_uri` on the authorization link must share. No event is sent to it: `account.*` events go to your webhook endpoints.

metadataobject | null

Free-form key-value data of yours, returned on the Account object and editable with `PUT /accounts/{id}`.

emailstring | null

The merchant's address. Wajub sends the invitation reminder there three days before the invitation expires. Kept in `profile.email`.

commission_refund_policy"prorata" | "full" | "none"

What happens to your commission when a sale is refunded: `prorata` (default, in proportion to the refund), `full` (all of it, on the first refund) or `none`.

"prorata""full""none"
account_type"direct" | "lite" | "relay"

The connection mode: `direct` (the merchant runs a full Wajub account), `lite` (a hosted portal, always collecting on the Wajub rail) or `relay` (no merchant account, you collect, Wajub relays the payouts). Defaults to `direct` and cannot be changed afterwards.

"direct""lite""relay"
payout_schedule"manual" | "daily" | "weekly" | "monthly"

How often a `lite` merchant is paid what they have earned: `manual` (default, you ask, with `POST /accounts/{id}/payouts`), `daily`, `weekly` or `monthly`.

"manual""daily""weekly""monthly"
payout_min_amountnumber | null

Do not pay out below this, in the merchant's own currency. Defaults to the platform minimum.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.wajub.com/accounts" \  -H "Content-Type: application/json" \  -d '{    "capabilities": [      "read",      "payments",      "refunds"    ]  }'
POST
/accounts
{  "code": 201,  "account": {    "id": "acc_Gt6yU3nE8rM1kS5vX9bQ",    "reference": "shop-amina",    "status": "pending",    "authorization_url": "https://sync.wajub.com/oauth/v2/authorize?access_token=…"  }}

Created

What did you think of this content?