API Examples
Copy-paste curl commands for the common resource-first integration path. Replace slk_test_YOUR_KEY with your API key.
First Integration
/v1/participantsRegister a creator, seller, or contractor on your platform. This creates the treasury anchor used by checkouts, wallets, holds, and payouts.
Request
curl -X POST https://api.soledgic.com/v1/participants \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"participant_id": "creator_001",
"display_name": "Jane Doe",
"email": "jane@example.com",
"default_split_percent": 80
}'Response
{
"success": true,
"participant": {
"id": "creator_001",
"account_id": "0e8e3fd8-7b7c-4f41-8b62-4a95a9fd6a30",
"display_name": "Jane Doe",
"email": "jane@example.com",
"default_split_percent": 80
},
"request_id": "req_abc123"
}/v1/checkout-sessionsCreate a hosted checkout session for a participant sale. Redirect the buyer to the returned checkout_url.
Request
curl -X POST https://api.soledgic.com/v1/checkout-sessions \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"participant_id": "creator_001",
"amount": 3500,
"currency": "USD",
"product_name": "Digital product",
"success_url": "https://yoursite.com/success",
"cancel_url": "https://yoursite.com/cancel",
"idempotency_key": "checkout_order_1001",
"metadata": {
"order_id": "order_1001"
}
}'Response
{
"success": true,
"checkout_session": {
"id": "chk_abc123",
"mode": "session",
"checkout_url": "https://checkout.example/session/chk_abc123",
"status": "pending",
"amount": 3500,
"currency": "USD"
},
"request_id": "req_def456"
}/v1/participants/{id}Retrieve a participant treasury snapshot after checkout completion or webhook processing.
Request
curl https://api.soledgic.com/v1/participants/creator_001 \ -H "x-api-key: slk_test_YOUR_KEY"
Response
{
"participant_id": "creator_001",
"display_name": "Jane Doe",
"balance": 15000,
"held_balance": 2500,
"available_balance": 12500,
"currency": "USD",
"request_id": "req_ghi789"
}Wallets and Holds
/v1/walletsList wallet objects scoped to a participant or owner. Creator earnings wallets are created through participant and checkout flows.
Request
curl "https://api.soledgic.com/v1/wallets?owner_id=creator_001&wallet_type=creator_earnings" \ -H "x-api-key: slk_test_YOUR_KEY"
Response
{
"wallets": [
{
"id": "wallet_uuid",
"owner_id": "creator_001",
"wallet_type": "creator_earnings",
"balance": 15000,
"available_balance": 12500,
"currency": "USD",
"is_active": true
}
],
"request_id": "req_jkl012"
}/v1/wallets/{wallet_id}/topupsTop up a wallet when that wallet type supports external funding. Consumer credit wallets support this flow; creator earnings are funded by sales.
Request
curl -X POST https://api.soledgic.com/v1/wallets/wallet_uuid/topups \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": 1000,
"reference_id": "dep_001",
"description": "Wallet top-up"
}'Response
{
"success": true,
"transaction_id": "txn_uuid",
"balance": 3000,
"request_id": "req_mno345"
}/v1/holdsInspect held funds before release or payout decisions.
Request
curl "https://api.soledgic.com/v1/holds?participant_id=creator_001" \ -H "x-api-key: slk_test_YOUR_KEY"
Response
{
"holds": [
{
"id": "hold_uuid",
"participant_id": "creator_001",
"amount": 2500,
"status": "active",
"ready_for_release": false
}
],
"request_id": "req_pqr678"
}/v1/holds/{hold_id}/releaseRelease a held-funds entry once your platform policy allows it.
Request
curl -X POST https://api.soledgic.com/v1/holds/hold_uuid/release \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"execute_transfer": true
}'Response
{
"success": true,
"hold_id": "hold_uuid",
"status": "released",
"request_id": "req_stu901"
}Payout Readiness
/v1/participants/{participant_id}/payout-eligibilityCheck whether the participant can request payouts. Eligibility depends on active creator access, approved identity/KYC review, certified tax profile, bank payout setup, and available balance.
Request
curl https://api.soledgic.com/v1/participants/creator_001/payout-eligibility \ -H "x-api-key: slk_test_YOUR_KEY"
Response
{
"participant_id": "creator_001",
"eligible": false,
"blocked_reasons": [
"kyc_under_review",
"tax_profile_not_certified",
"bank_payout_setup_missing"
],
"request_id": "req_vwx234"
}/v1/payoutsCreate a payout only after eligibility is true. Reuse the same reference_id when retrying the same payout request.
Request
curl -X POST https://api.soledgic.com/v1/payouts \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"participant_id": "creator_001",
"reference_id": "payout_2026_05_10_001",
"amount": 1500,
"payout_method": "bank"
}'Response
{
"success": true,
"payout": {
"id": "payout_uuid",
"transaction_id": "payout_uuid",
"gross_amount_cents": 1500,
"net_amount_cents": 1500,
"status": "completed",
"simulated": true,
"payout_rail": "sandbox"
},
"request_id": "req_yza567"
}Refunds
/v1/refund-requestsUse this from your server when a buyer clicks Request refund. It creates review state only; it does not move money.
Request
curl -X POST https://api.soledgic.com/v1/refund-requests \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"sale_reference": "order_1001",
"customer_id": "buyer_123",
"reason": "Item did not match the description",
"idempotency_key": "refund_request_order_1001_001"
}'Response
{
"success": true,
"refund_request": {
"id": "refund_request_uuid",
"sale_reference": "order_1001",
"status": "pending",
"amount_cents": 2500
}
}/v1/refundsUse this after support approves a refund. Soledgic routes the refund and records the ledger reversal.
Request
curl -X POST https://api.soledgic.com/v1/refunds \
-H "x-api-key: slk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"original_sale_reference": "order_1001",
"reason": "Customer requested refund",
"amount": 2500,
"idempotency_key": "refund_order_1001_partial_001"
}'Response
{
"success": true,
"refund_id": "refund_uuid",
"amount": 2500,
"status": "completed",
"request_id": "req_bcd890"
}Reports
/v1/trial-balanceRetrieve debit/credit balances for all accounts.
Request
curl https://api.soledgic.com/v1/trial-balance \ -H "x-api-key: slk_test_YOUR_KEY"
Response
{
"accounts": [
{
"name": "Cash",
"account_type": "asset",
"debit_balance": 50000,
"credit_balance": 0
},
{
"name": "Creator Balance (creator_001)",
"account_type": "liability",
"debit_balance": 0,
"credit_balance": 15000
}
],
"total_debits": 50000,
"total_credits": 50000,
"balanced": true,
"request_id": "req_efg123"
}