1. Loan API
marketplace-doc
  • Data Ingestion
  • Errors
  • Introduction
  • Loan API & Deduction Lifecycle
  • Getting Started
  • OAuth
  • Webhooks
  • Embedded Journey
  • OpenSylo Marketplace Integration API
    • OAuth 2.0
      • Start OAuth authorization
      • Exchange authorization code or refresh token
      • Revoke a token
      • Discover OAuth capabilities
    • Data Ingestion
      • Submit single merchant data
      • Submit bulk merchant data
      • Poll batch processing status
      • Get merchant credit score
      • Data ingestion health check
    • Sales & Events
      • Submit a sales event
      • Submit a repayment event
      • Submit an account flag
    • Loan API
      • Get active loans for a merchant
        GET
      • Get loan status
        GET
      • Validate deduction amounts
        POST
      • Bulk loan status
        POST
    • Inbound Webhooks
      • Repayment events
      • Settlement events
    • Outbound Webhooks
      • loan.approved
      • loan.disbursed
      • loan.repayment_updated
      • loan.nearly_complete
      • loan.completed
      • loan.defaulted
      • merchant.created
      • kyc.submitted
      • kyc.approved
      • kyc.rejected
      • funding_request.created
      • funding_request.fulfilled
      • funding_request.rejected
    • Embedded Journey (Marketplace API)
      • Create (or fetch) a merchant
      • Get merchant status (KYC, credit score, funding requests)
      • Update business KYC information
      • Add directors (bulk)
      • Attach a KYC document
      • Submit KYC for review
      • Submit sales data for credit scoring
      • Create a funding request
      • Mint an embed token for the hosted journey
    • Schemas
      • TokenRequest
      • TokenResponse
      • OAuthError
      • ClientMetadataResponse
      • MerchantIdentity
      • SalesPerformance
      • RevenueConsistency
      • FulfillmentMetrics
      • PayoutCashFlow
      • PlatformDependency
      • HistoricalCredit
      • BehavioralRisk
      • MonthlyHistoryEntry
      • MerchantDataRequest
      • CreditScore
      • LoanEligibilityResult
      • MerchantDataResponse
      • BulkMerchantDataRequest
      • AsyncBulkProcessingResponse
      • BatchStatusResponse
      • SalesEventRequest
      • RepaymentEventRequest
      • AccountFlagRequest
      • MerchantInfo
      • LenderInfo
      • RepaymentInfo
      • LoanTermsInfo
      • ActiveLoan
      • ActiveLoansSummary
      • ActiveLoansResponse
      • LoanStatusRepayment
      • LoanStatusResponse
      • ValidateDeductionsRequest
      • DeductionItem
      • DeductionSummary
      • ValidateDeductionsResponse
      • BulkLoanStatusRequest
      • BulkLoanStatusItem
      • BulkStatusSummary
      • BulkLoanStatusResponse
      • WebhookMarketplace
      • WebhookMerchant
      • WebhookLoan
      • DeductionDetails
      • SourceTransaction
      • LoanBalance
      • RepaymentDeductedWebhook
      • FailureDetails
      • RepaymentFailedWebhook
      • ReversalDetails
      • RepaymentReversedWebhook
      • SettlementDetails
      • SettlementSummaryByStatus
      • SettlementSummary
      • SettlementLoanIncluded
      • BankTransferDetails
      • SettlementCreatedWebhook
      • SettlementTransferredWebhook
      • TransferDetails
      • WebhookAckResponse
      • OutboundLoan
      • OutboundMerchant
      • OutboundLender
      • LoanTerms
      • RepaymentTerms
      • ScheduleInstallment
      • LoanApprovedPayload
      • DisbursementDetails
      • DisbursedRepayment
      • LoanDisbursedPayload
      • ChangeDetail
      • LoanRepaymentUpdatedPayload
      • RepaymentStatus
      • NearlyCompleteRecommendation
      • LoanNearlyCompletePayload
      • CompletionSummary
      • LoanCompletedPayload
      • DefaultDetails
      • CollectionInstructions
      • LoanDefaultedPayload
      • ApiError
      • RateLimitError
      • EmbedCreateMerchantRequest
      • EmbedCreateMerchantResponse
      • EmbedBusinessKyc
      • EmbedDirectorInfo
      • EmbedBulkDirectors
      • EmbedDirectorListItem
      • EmbedDocumentUpload
      • EmbedSalesDataAccepted
      • EmbedCreateFundingRequest
      • EmbedFundingRequestIntent
      • EmbedMerchantStatusResponse
      • EmbedTokenResponse
      • MarketplaceMerchantRef
      • MerchantCreatedPayload
      • KycStatusPayload
      • FundingRequestEventPayload
  • OpenSylo Marketplace API
    • OAuth 2.0
      • Start OAuth authorization
      • Exchange code or refresh token
      • Revoke a token
      • OAuth discovery / client metadata
    • Data Ingestion
      • Submit single merchant data
      • Submit bulk merchant data
      • Get merchant credit score
      • Integration health check
    • Loan API
      • Get active loans for a merchant
      • Get loan status
      • Validate deduction amounts
      • Bulk loan status check
    • Inbound Webhooks
      • Send repayment webhook
      • Send settlement webhook
    • Schemas
      • 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
      • OAuthError
      • ApiError
  1. Loan API

Validate deduction amounts

POST
https://api.opensylo.com/api/v1/marketplace/loans/deductions/validate
Given a sale amount, calculates how much should be deducted for each active loan.
Use this before settlement to determine the correct deduction breakdown.
Deductions are capped at the outstanding balance per loan and the total
sale amount. A valid_until timestamp indicates when the calculation expires
(typically 15 minutes).

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Body Params application/jsonRequired

Examples

Responses

🟢200OK
application/json
Deduction validation result.
Bodyapplication/json

🟠400Bad Request
🟠401Unauthorized
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.opensylo.com/api/v1/marketplace/loans/deductions/validate' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
    "merchant_id": "PLT_MERCH_001",
    "merchant_id_type": "marketplace",
    "sale_amount": 50000,
    "currency": "NGN"
}'
Response Response Example
200 - Success Example
{
    "merchant": {
        "opensylo_id": "mch_a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "marketplace_id": "PLT_MERCH_001",
        "name": "Adebayo Electronics"
    },
    "sale_amount": 50000,
    "should_deduct": true,
    "deductions": [
        {
            "loan_id": "loan_f1e2d3c4-b5a6-7890-1234-567890abcdef",
            "reference": "OSL-2026-00142",
            "status": "repaying",
            "deduction_percentage": 10,
            "calculated_amount": 5000,
            "outstanding_balance": 1380000,
            "capped_amount": 5000
        }
    ],
    "summary": {
        "total_deduction": 5000,
        "merchant_receives": 45000,
        "loans_count": 1
    },
    "valid_until": "2026-04-07T10:45:00.000Z",
    "timestamp": "2026-04-07T10:30:00.000Z"
}
Modified at 2026-06-10 14:59:29
Previous
Get loan status
Next
Bulk loan status
Built with