OpenSylo Marketplace API
    OpenSylo Marketplace API
    • Introduction
    • Getting Started
    • OAuth 2.0 Flow
    • Webhook Integration
    • Sandbox Testing
    • Error Reference
    • Marketplace Dashboard
      • Login to the marketplace dashboard
        POST
      • View OAuth credentials
        GET
      • Regenerate client secret
        POST
    • OAuth 2.0
      • Start OAuth authorization
        GET
      • Exchange code or refresh token
        POST
      • Revoke a token
        POST
      • OAuth discovery / client metadata
        GET
    • Data Ingestion
      • Submit single merchant data
        POST
      • Submit bulk merchant data
        POST
      • Get merchant credit score
        GET
      • Integration health check
        GET
    • Loan API
      • Get active loans for a merchant
        GET
      • Get loan status
        GET
      • Validate deduction amounts
        POST
      • Bulk loan status check
        POST
    • Inbound Webhooks
      • Send repayment webhook
        POST
      • Send settlement webhook
        POST
    • Sandbox
      • Sandbox environment info
        GET
      • Get sandbox test credentials
        GET
      • Get sandbox test merchants
        GET
    • Schemas
      • DashboardLoginRequest
      • DashboardLoginResponse
      • CredentialsResponse
      • RegenerateSecretResponse
      • TokenRequest
      • TokenResponse
      • RevokeRequest
      • ClientMetadataResponse
      • MerchantIdentity
      • SalesPerformance
      • RevenueConsistency
      • FulfillmentMetrics
      • PayoutCashFlow
      • PlatformDependency
      • HistoricalCredit
      • BehavioralRisk
      • MerchantDataRequest
      • ScoreBreakdown
      • CreditScore
      • MerchantDataResponse
      • BulkMerchantDataRequest
      • BulkMerchantDataResponse
      • CreditScoreResponse
      • HealthResponse
      • ActiveLoansResponse
      • LoanStatusResponse
      • ValidateDeductionsRequest
      • ValidateDeductionsResponse
      • BulkLoanStatusRequest
      • BulkLoanStatusResponse
      • RepaymentWebhookRequest
      • SettlementWebhookRequest
      • WebhookAckResponse
      • SandboxInfoResponse
      • SandboxCredentialsResponse
      • SandboxMerchantsResponse
      • OAuthError
      • ApiError

    Sandbox Testing

    OpenSylo provides a sandbox environment for testing the full integration without affecting production data.

    Sandbox Endpoints#

    EndpointDescription
    GET /sandbox/infoSandbox environment info, limitations, rate limits
    GET /sandbox/test-credentialsOAuth test credentials for sandbox marketplaces
    GET /sandbox/test-merchantsTest merchant accounts by credit tier
    No authentication is required for sandbox info endpoints.

    How Sandbox Works#

    Sandbox credentials are automatically generated when an admin invites a marketplace with sandbox mode enabled. Sandbox client IDs are prefixed with sb_ (e.g., sb_yourplatform_client_a1b2c3d4).
    Opensylo automatically detects sandbox requests by the sb_ prefix on the client ID — no code changes are needed on your side. All API endpoints work the same way in sandbox and production.

    Sandbox Environment Info#

    Response:
    {
      "enabled": true,
      "environment": "sandbox",
      "version": "1.0",
      "limitations": [
        "Sandbox data is reset daily at 2:00 AM UTC",
        "Sandbox tokens expire after 7 days",
        "No real financial transactions are processed",
        "Credit scores are simulated based on test merchant tier",
        "All sandbox credentials use plaintext secrets (documented publicly)",
        "Sandbox requests are isolated from production data"
      ],
      "documentationUrl": "https://api.opensylo.com/api-docs",
      "rateLimits": {
        "requestsPerMinute": 120,
        "requestsPerHour": 3600
      },
      "tokenExpiryDays": 7
    }

    Test Merchant Tiers#

    The sandbox includes 5 pre-seeded merchant accounts representing different credit profiles:
    TierEmailPasswordCredit ScoreRisk LevelLending Cap (NGN)Description
    Atier-a@sandbox.opensylo.comSandboxTierA123!85Low10,000,000Premium approval flow
    Btier-b@sandbox.opensylo.comSandboxTierB123!72Low5,000,000Standard approval flow
    Ctier-c@sandbox.opensylo.comSandboxTierC123!55Medium2,000,000Conditional approval
    Dtier-d@sandbox.opensylo.comSandboxTierD123!40High500,000Pilot/small ticket
    Etier-e@sandbox.opensylo.comSandboxTierE123!25Very High0Rejection flow
    Use different tiers to test various scenarios:
    Tier A/B — Test the full happy path: data submission, credit scoring, loan approval, disbursement, repayment, and completion.
    Tier C — Test conditional approval flows where additional requirements may apply.
    Tier D — Test small-ticket/pilot lending scenarios.
    Tier E — Test the rejection flow and how your integration handles denied applications.

    Sandbox Credentials#

    Default redirect URIs for sandbox:
    http://localhost:3000/oauth/callback
    http://localhost:8080/callback
    https://*/oauth/callback
    These redirect URIs are pre-configured, so you can test locally without registering specific URLs.

    Daily Reset#

    The sandbox environment is automatically reset daily at 2:00 AM UTC:
    All OAuth access tokens and authorization codes are cleared
    Test merchant data is re-seeded to default values
    Marketplace credentials are preserved (not affected by reset)
    Plan your testing accordingly — long-running test scenarios should be completed within a single day, or you should design your test flow to re-authenticate after a reset.

    Sandbox vs. Production Differences#

    AspectSandboxProduction
    Client ID prefixsb_No prefix
    Token expiry7 daysAccess: 1 hour, Refresh: 30 days
    Credit scoresSimulated (fixed per tier)Calculated from submitted data
    Financial transactionsNone processedReal transactions
    Data resetDaily at 02:00 UTCNever
    SecretsPlaintext (for convenience)Hashed
    Rate limitsDocumented but not enforcedEnforced
    Data isolationFully isolated from productionProduction data

    Testing Checklist#

    Use this checklist to verify your integration before going live:
    OAuth Flow — Successfully complete the authorization code + PKCE flow with a sandbox merchant
    Token Refresh — Refresh an expired access token using the refresh token
    Data Submission — Submit merchant data for a single merchant and receive a credit score
    Bulk Submission — Submit data for multiple merchants in a single batch
    Credit Score — Retrieve a credit score for a previously submitted merchant
    Active Loans — Query active loans for a merchant
    Loan Status — Check the status of a specific loan
    Deduction Validation — Validate deduction amounts for a sale
    Inbound Webhooks — Send a repayment webhook with correct HMAC-SHA256 signature
    Signature Verification — Verify that incorrect signatures are rejected
    Error Handling — Test with invalid tokens, missing fields, and expired codes
    Token Revocation — Revoke a token and verify it can no longer be used
    Modified at 2026-01-29 23:26:12
    Previous
    Webhook Integration
    Next
    Error Reference
    Built with