Marketplace
Get Merchant Details
Retrieve detailed information about a specific sub-merchant.
GET
Intro
Returns everything you need to know about one sub-merchant in your marketplace — profile, commission, payout readiness, KYC status, and product count — in a single call.Context
This is the detail view in the merchant lifecycle: use List Merchants to find amerchant_id, then call this endpoint for the full picture, or Update Merchant / Remove Merchant to change or suspend the relationship. The payout.charge_eligible field here is the same check Create Charge runs before accepting a marketplace charge for this merchant — check it here first rather than discovering it via a failed charge.
Hows
Path Parameters
string
required
The ID of the sub-merchant to retrieve.
Response
Response Fields
profile
marketplace
payout
payout.details (Bank Transfer — NG, GH, ZA, KE)
payout.details (International Transfer — US, GB, etc.)
bank_name, last4, country, currency, routing_number, account_holder_name) are fetched live from Stripe when a connected account exists, and are omitted if that lookup fails or no bank is on file yet.
kyc
kyc.verification_status values
settings
stats
Full setup flow
Before a sub-merchant can receive charges, complete the following steps:For local bank countries (NG, GH, ZA, KE), submitting KYC with full bank details can auto-verify payout in one step — no separate payout setup call needed if
kyc.verification_status comes back as kyc_approved and payout.charge_eligible is already true.Error Codes
Whys
charge_eligible is deliberately separate from status and payout_ready because “linked to the marketplace” and “KYC approved” are each necessary but not sufficient for “can actually receive money right now.” A merchant can have an active relationship and approved KYC and still be missing the real-time payout account (a local transfer account for NGN, Stripe connected account for international) that a charge actually settles into. Exposing one boolean that mirrors the exact check Create Charge runs means you can validate readiness before attempting a charge instead of parsing a payment failure to figure out why it was blocked.
KYC status and payout status are read from the same underlying KYC submission record rather than two independently-updated fields, so they can’t drift out of sync with each other.
Why nots
This endpoint does not let you modify anything — it’s read-only. Use Update Merchant for profile/commission changes, the KYC endpoints for identity verification, and the payout endpoints for bank/Stripe configuration. It does not mask sensitive payout details (account numbers, Stripe account IDs) — treat the response accordingly in your own logging and UI.settlement_currency reflects the currency locked by the merchant’s KYC submission, not a currency you can set directly through this or the merchant-update endpoint.