GET/loans/bnpl/customers/{customerId}/eligibility

Debt as a Service

Debt as a Service lets eligible Customers finance a purchase through your platform. Create a Customer first, then check eligibility, request the loan, collect consent, and track status.


Check Eligibility GET/loans/bnpl/customers/{customerId}/eligibility

Returns whether the Customer is eligible for Debt as a Service and the available amount band and tenures.

Path Parameters

  • Name
    customerId
    Type
    string
    Description

    Customer id from Create Customer.

GET/loans/bnpl/customers/{customerId}/eligibility
curl https://api.aellaapp.com/loans/bnpl/customers/cust-uuid/eligibility \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "BNPL eligibility fetched successfully",
  "data": {
    "is_eligible": true,
    "min_amount": 1000,
    "max_amount": 50000,
    "currency": "NGN",
    "durations": [
      1,
      2,
      3
    ],
    "ineligible_reason": null
  },
  "status": 200
}

Request Loan POST/loans/bnpl/customers/{customerId}/loans

Creates a Debt as a Service loan request for the Customer. Disbursement requires a merchant bank account.

Request Body

  • Name
    customerId
    Type
    string
    Description

    Customer id from Create Customer.

  • Name
    amount
    Type
    number
    Description

    Loan amount in Naira. Minimum 1.

  • Name
    tenor
    Type
    number
    Description

    Loan tenor. Must be one of the tenures from eligibility.

  • Name
    bank_account_no
    Type
    string
    Description

    Ten-digit merchant disbursement account number.

  • Name
    bank_code
    Type
    string
    Description

    Six-digit bank code for the disbursement account.

  • Name
    interest_rate
    Type
    number
    Description

    Optional interest rate override for the loan request.

  • Name
    start_date
    Type
    string
    Description

    Optional loan start date.

  • Name
    end_date
    Type
    string
    Description

    Optional loan end date.

  • Name
    metadata
    Type
    object
    Description

    Optional merchant metadata stored on the Sabo request log.

POST/loans/bnpl/customers/{customerId}/loans
curl https://api.aellaapp.com/loans/bnpl/customers/cust-uuid/loans \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"amount":10000,"tenor":3,"bank_account_no":"0123456789","bank_code":"090416","metadata":{"reference":"merchant-order-1"}}' \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "BNPL loan request created successfully",
  "data": {
    "id": "loan-uuid",
    "customer_id": "cust-uuid",
    "amount": 10000,
    "tenor": 3,
    "downstream_loan_id": "mkopo-id",
    "consent_status": "pending_consent",
    "requirements": {
      "min_cards": 1,
      "linked_cards": 0,
      "cards_satisfied": false,
      "min_direct_debits": 1,
      "linked_direct_debits": 0,
      "direct_debits_satisfied": false,
      "all_satisfied": false
    }
  },
  "status": 200
}

Get Active Loans GET/loans/bnpl/customers/{customerId}/loans/active

Returns the Customer's current active Debt as a Service loans for the authenticated merchant, including repayment schedules.

Path Parameters

  • Name
    customerId
    Type
    string
    Description

    Customer id from Create Customer.

GET/loans/bnpl/customers/{customerId}/loans/active
curl https://api.aellaapp.com/loans/bnpl/customers/cust-uuid/loans/active \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "Active BNPL loans fetched successfully",
  "data": [
    {
      "id": "mkopo-id",
      "customer_id": "cust-uuid",
      "organization_id": "merchant-uuid",
      "merchant_id": "merchant-uuid",
      "amount": 10000,
      "tenor": 3,
      "downstream_loan_id": "mkopo-id",
      "status": "running",
      "status_text": "Running",
      "sub_status": null,
      "environment": "SANDBOX",
      "schedules": [
        {
          "id": "schedule-uuid",
          "loan_id": "mkopo-id",
          "amount": 3333.33,
          "principal_amount": 3000,
          "interest_amount": 333.33,
          "balance": 3333.33,
          "payment_channel": "directdebit",
          "status_id": 0,
          "status_text": "pending",
          "due_date": "2026-09-01T00:00:00.000Z"
        }
      ],
      "created_at": "2026-08-01T00:00:00.000Z"
    }
  ],
  "status": 200
}

Starts the consent challenge for a pending Debt as a Service loan. The Customer receives an OTP to approve.

Request Body

  • Name
    loanId
    Type
    string
    Description

    Loan id returned from Request Loan.

POST/loans/bnpl/loans/{loanId}/consent/request
curl https://api.aellaapp.com/loans/bnpl/loans/loan-uuid/consent/request \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{}' \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "Consent OTP sent successfully",
  "data": null,
  "status": 200
}

Verifies the OTP from Request Consent and marks the loan as consented when valid.

Request Body

  • Name
    loanId
    Type
    string
    Description

    Loan id returned from Request Loan.

  • Name
    otp
    Type
    string
    Description

    One-time password sent to the Customer.

POST/loans/bnpl/loans/{loanId}/consent/verify
curl https://api.aellaapp.com/loans/bnpl/loans/loan-uuid/consent/verify \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"otp":"123456"}' \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "Consent verified and loan accepted",
  "data": {
    "id": "loan-uuid",
    "consent_status": "consented"
  },
  "status": 200
}

Get Loan Status GET/loans/bnpl/loans/{loanId}

Fetches the current status of a Debt as a Service loan, including consent state.

Path Parameters

  • Name
    loanId
    Type
    string
    Description

    Loan id returned from Request Loan.

GET/loans/bnpl/loans/{loanId}
curl https://api.aellaapp.com/loans/bnpl/loans/loan-uuid \
  -H "Authorization: Bearer {token}"

Response

{
  "success": true,
  "message": "BNPL loan fetched successfully",
  "data": {
    "id": "loan-uuid",
    "status": "pending_acceptance",
    "status_text": "Offer Awaiting Acceptance",
    "schedules": [
      {
        "id": "schedule-uuid",
        "loan_id": "mkopo-id",
        "amount": 3333.33,
        "principal_amount": 3000,
        "interest_amount": 333.33,
        "balance": 3333.33,
        "payment_channel": "directdebit",
        "status_id": 0,
        "status_text": "pending",
        "due_date": "2026-09-01T00:00:00.000Z"
      }
    ],
    "requirements": {
      "all_satisfied": true
    }
  },
  "status": 200
}

Was this page helpful?