LayUp Technologies MerchantService API

The MerchantService API from LayUp Technologies — 4 operation(s) for merchantservice.

Operations 6

POST /v1/merchants Merchant service create #
GET /v1/merchants-to-settle Merchant service get merchants to settle #
GET /v1/merchants/shop-directory Merchant service get shops #
GET /v1/merchants/{_id} Merchant service get #
DELETE /v1/merchants/{_id} Merchant service del #
PUT /v1/merchants/{_id} Merchant service update #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/layup-technologies-merchantservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

layup-technologies-merchantservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Layup endpoints Merchant Service API
  version: 1.4.16
  description: Welcome to The Layup Swagger page.
servers:
- url: http://localhost:3000
- url: https://localhost:3000
- url: wss://localhost:3000
security:
- apiKey:
  - read
  - write
tags:
- name: MerchantService
paths:
  /v1/merchants:
    post:
      operationId: MerchantService_Create
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: _id
        in: query
        required: false
        schema:
          type: string
      - name: avs
        in: query
        required: false
        schema:
          type: string
      tags:
      - MerchantService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelMerchantRequest'
        required: true
      summary: Merchant service create
      x-summary-source: derived
  /v1/merchants-to-settle:
    get:
      operationId: MerchantService_getMerchantsToSettle
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantToSettleResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      tags:
      - MerchantService
      summary: Merchant service get merchants to settle
      x-summary-source: derived
  /v1/merchants/shop-directory:
    get:
      operationId: MerchantService_getShops
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantResponseShops'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: featured
        in: query
        required: false
        schema:
          type: boolean
      tags:
      - MerchantService
      summary: Merchant service get shops
      x-summary-source: derived
  /v1/merchants/{_id}:
    get:
      operationId: MerchantService_Get
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: _id
        in: path
        required: true
        schema:
          type: string
      tags:
      - MerchantService
      summary: Merchant service get
      x-summary-source: derived
    delete:
      operationId: MerchantService_Del
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: _id
        in: path
        required: true
        schema:
          type: string
      tags:
      - MerchantService
      summary: Merchant service del
      x-summary-source: derived
    put:
      operationId: MerchantService_Update
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelMerchantResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: _id
        in: path
        required: true
        schema:
          type: string
      - name: avs
        in: query
        required: false
        schema:
          type: string
      tags:
      - MerchantService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelMerchantRequest'
        required: true
      summary: Merchant service update
      x-summary-source: derived
components:
  schemas:
    modelBankValidation:
      type: object
      properties:
        verified:
          type: boolean
        value:
          type: string
    modelMerchantResponseShops:
      type: object
      properties:
        categories:
          type: array
          items:
            type: string
        shops:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelMerchantResponseGetShops'
    modelMerchantAccountSettings:
      type: object
      properties:
        numberOfUsers:
          type: integer
          format: int32
        apiAccess:
          type: boolean
    modelCommunicationMessage:
      type: object
      properties:
        orderExpiryReminder:
          $ref: '#/components/schemas/modelOrderExpiryReminder'
        orderActivated:
          $ref: '#/components/schemas/modelMessageNotification'
        cancellation:
          $ref: '#/components/schemas/modelMessageNotification'
        refund:
          $ref: '#/components/schemas/modelMessageNotification'
    modelMerchantRequest:
      type: object
      properties:
        name:
          type: string
        domain:
          type: string
        active:
          type: boolean
        flatFee:
          type: integer
          format: int32
        percFee:
          type: number
          format: double
        notifyUrl:
          type: string
        paymentNotifyUrl:
          type: string
        expire:
          type: integer
          format: int32
        merchantTermsLink:
          type: string
        supportEmail:
          type: string
        supportMobile:
          type: string
        imageUrl:
          type: string
        newOrder:
          $ref: '#/components/schemas/modelNotification'
        amendmentOrder:
          $ref: '#/components/schemas/modelNotification'
        cancelledOrder:
          $ref: '#/components/schemas/modelNotification'
        completedOrder:
          $ref: '#/components/schemas/modelNotification'
        successfulPayment:
          $ref: '#/components/schemas/modelNotification'
        failedPayment:
          $ref: '#/components/schemas/modelNotification'
        missedPayment:
          $ref: '#/components/schemas/modelNotification'
        autoSettlement:
          type: boolean
        settlementFrequency:
          type: string
        settlementType:
          type: string
        settlementDay:
          type: integer
          format: int32
        bankDetails:
          $ref: '#/components/schemas/modelBankDetails'
        absorbsFee:
          type: boolean
        cancellationTerms:
          $ref: '#/components/schemas/modelCancellationTermRequest'
        weeklyPayments:
          type: boolean
        paymentPlans:
          $ref: '#/components/schemas/modelPaymentPlanSettings'
        expiredOrder:
          $ref: '#/components/schemas/modelNotification'
        completedOrder_75:
          $ref: '#/components/schemas/modelNotification_Percentage'
        customFeatures:
          $ref: '#/components/schemas/modelCustomize'
        features:
          $ref: '#/components/schemas/modelFeature'
        cancellationRequest:
          $ref: '#/components/schemas/modelNotification'
        billingAddress:
          $ref: '#/components/schemas/modelBillingAddress'
        vatNo:
          type: string
        registeredEntity:
          type: string
        settlements:
          $ref: '#/components/schemas/modelNotification'
        invoices:
          $ref: '#/components/schemas/modelNotification'
        onboardingState:
          type: string
        accountType:
          type: string
        contractDocumentId:
          type: string
        merchantBankingPercFee:
          type: integer
          format: int32
        adminPercFee:
          type: integer
          format: int32
        contractUrl:
          type: string
        contractUpdated:
          type: boolean
        bankDetailsValidation:
          $ref: '#/components/schemas/modelBankInfo'
        bankValidationPendingReference:
          type: string
        merchantContractSigned:
          type: string
        transfers:
          $ref: '#/components/schemas/modelNotification'
        refunds:
          $ref: '#/components/schemas/modelNotification'
        simulated:
          type: boolean
        suspendedOrder:
          $ref: '#/components/schemas/modelNotification'
        monthlyPayments:
          type: boolean
        displayOnWeb:
          $ref: '#/components/schemas/modelshopDirectorySettings'
        tradingName:
          type: string
        pricelistId:
          type: string
        communication:
          $ref: '#/components/schemas/modelCommunication'
        defaultBillingMethod:
          type: string
        enableTwoFactorAuthentication:
          type: boolean
        voucherSettings:
          $ref: '#/components/schemas/modelMerchantVoucherSettings'
        settlementBatchReferencePrefix:
          type: string
      title: -- Communication
    modelOrderExpiry:
      type: object
      properties:
        enabled:
          type: boolean
        value:
          type: integer
          format: int32
    modelNotification_Percentage:
      type: object
      properties:
        enabled:
          type: boolean
        emails:
          type: array
          items:
            type: string
        value:
          type: integer
          format: int32
    modelPaymentWidgetLogo:
      type: object
      properties:
        enabled:
          type: boolean
        value:
          type: string
    modelMerchantVoucherSettings:
      type: object
      properties:
        active:
          type: boolean
        minimumSavingGoalInCents:
          type: integer
          format: int32
        maximumSavingGoalInCents:
          type: integer
          format: int32
        rewardType:
          type: string
        rewardFlatAmountInCents:
          type: integer
          format: int32
        rewardPercentage:
          type: integer
          format: int32
        voucherProviders:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelVoucherProvider'
    modelFeature:
      type: object
      properties:
        enableCustomWidgetLogo:
          type: boolean
        enableCustomEmailLogo:
          type: boolean
        enableDefaultPaymentPlanImage:
          type: boolean
        enableDebiCheck:
          type: boolean
        enableCreditCard:
          type: boolean
        enableInstantEFT:
          type: boolean
        enableAutoCancellation:
          type: boolean
        enableManualCancellation:
          type: boolean
        enableLayupFee:
          type: boolean
        enableAmendmentApi:
          type: boolean
        enablePayAt:
          type: boolean
        enableCapitecPay:
          type: boolean
        enableDashpay:
          type: boolean
        enableTerminalCard:
          type: boolean
        enableOfflinePayment:
          type: boolean
        enableEmbeddedCheckout:
          type: boolean
    modelTerminalSettings:
      type: object
      properties:
        requireOrderReference:
          type: boolean
        forceUniqueOrderReference:
          type: boolean
        requireDeposit:
          type: boolean
        editableDescription:
          type: boolean
    modelVoucherProvider:
      type: object
      properties:
        name:
          type: string
        apiKey:
          type: string
        apiUrl:
          type: string
    modelPaymentPlanSettings:
      type: object
      properties:
        weeklyPayments:
          type: boolean
        splitPayments:
          type: boolean
        orderExpiry:
          $ref: '#/components/schemas/modelOrderExpiry'
        maxMonths:
          $ref: '#/components/schemas/modelValueEnabledPair'
        paymentMethods:
          $ref: '#/components/schemas/modelPaymentMethod'
        editPaymentPlanSettings:
          type: boolean
        defaultDepositType:
          $ref: '#/components/schemas/modelDefaultDepositType'
        minMonths:
          $ref: '#/components/schemas/modelValueEnabledPair'
        debiCheckMinimum:
          $ref: '#/components/schemas/modelValueEnabledPair'
        monthlyPayments:
          type: boolean
        suspendOnCancel:
          type: boolean
    modelCancellationTypeDefinition:
      type: object
      properties:
        missed:
          type: integer
          format: int32
        percentage:
          type: integer
          format: int32
    modelCustomize:
      type: object
      properties:
        logo:
          $ref: '#/components/schemas/modelLogo'
        imageUrl:
          $ref: '#/components/schemas/modelImageUrl'
        paymentWidget:
          $ref: '#/components/schemas/modelPaymentWidgetLogo'
    modelCancellationDefinition:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/modelCancellationType'
        policy:
          $ref: '#/components/schemas/modelCancellationPolicy'
        start:
          type: integer
          format: int32
        end:
          type: integer
          format: int32
        gracePeriod:
          type: integer
          format: int32
    modelMerchantToSettleResponse:
      type: object
      properties:
        merchants:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelMerchantIdResponse'
    modelUser:
      type: object
      properties:
        _id:
          type: string
        username:
          type: string
        email:
          type: string
          format: email
        idNumber:
          type: string
        address:
          type: string
        postalCode:
          type: string
        city:
          type: string
        province:
          type: string
        country:
          type: string
        role:
          type: string
          enum:
          - CLIENT
          - MERCHANT
          - ADMIN
          default: CLIENT
        active:
          type: boolean
        merchantId:
          type: string
        cellNumber:
          type: string
        dateOfBirth:
          type: string
        name:
          type: string
        verified:
          type: boolean
        verifiedEmail:
          type: boolean
        verifiedMobile:
          type: boolean
        merchantRole:
          type: string
        merchantIds:
          type: array
          items:
            type: string
      description: This user is loaded in by the authentication middleware.
    modelCancellationTermRequest:
      type: object
      properties:
        active:
          type: boolean
        definition:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelCancellationDefinition'
    modelBankInfo:
      type: object
      properties:
        bankName:
          $ref: '#/components/schemas/modelBankValidation'
        account:
          $ref: '#/components/schemas/modelBankValidation'
        accountType:
          $ref: '#/components/schemas/modelBankValidation'
        branchCode:
          $ref: '#/components/schemas/modelBankValidation'
        idNumber:
          $ref: '#/components/schemas/modelBankValidation'
        verified:
          type: boolean
        clientName:
          $ref: '#/components/schemas/modelBankValidation'
        cellNumber:
          $ref: '#/components/schemas/modelBankValidation'
        initials:
          $ref: '#/components/schemas/modelBankValidation'
        email:
          $ref: '#/components/schemas/modelBankValidation'
        validationResponseErrors:
          type: array
          items:
            type: string
    modelImageUrl:
      type: object
      properties:
        enabled:
          type: boolean
        value:
          type: string
    modelPaymentMethod:
      type: object
      properties:
        creditOrDebitCard:
          type: boolean
        eft:
          type: boolean
        debiCheck:
          type: boolean
        payAt:
          type: boolean
        capitecPay:
          type: boolean
        dashpay:
          type: boolean
        terminalCard:
          type: boolean
        offline:
          type: boolean
        embeddedCheckout:
          type: boolean
    modelLogo:
      type: object
      properties:
        enabled:
          type: boolean
        value:
          type: string
    modelBillingAddress:
      type: object
      properties:
        country:
          type: string
        province:
          type: string
        streetAddress:
          type: string
        city:
          type: string
        postalCode:
          type: string
    modelCancellationPolicyDefinition:
      type: object
      properties:
        deposit:
          type: boolean
        percentage:
          type: integer
          format: int32
        flatFee:
          type: integer
          format: int32
        percentageShouldUseTotalPaid:
          type: boolean
    modelOrderExpiryReminder:
      type: object
      properties:
        enabled:
          type: boolean
        daysBeforeExpiryInDays:
          type: integer
          format: int32
      title: Communication
    modelshopDirectorySettings:
      type: object
      properties:
        enabled:
          type: boolean
        webAvailability:
          type: string
        webLogoImage:
          type: string
        webCategory:
          type: array
          items:
            type: string
        featured:
          type: boolean
    modelCancellationPolicy:
      type: object
      properties:
        name:
          type: string
          enum:
          - Deposit
          - Percentage
          - FlatFee
          - Combination
        definition:
          $ref: '#/components/schemas/modelCancellationPolicyDefinition'
    modelMessageNotification:
      type: object
      properties:
        enabled:
          type: boolean
    modelCancellationType:
      type: object
      properties:
        name:
          type: string
        definition:
          $ref: '#/components/schemas/modelCancellationTypeDefinition'
        finalPaymentMissed:
          type: boolean
    modelNotification:
      type: object
      properties:
        enabled:
          type: boolean
        emails:
          type: array
          items:
            type: string
    modelMerchantIdResponse:
      type: object
      properties:
        _id:
          type: string
    modelMerchantResponseGetShops:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        domain:
          type: string
        displayOnWeb:
          $ref: '#/components/schemas/modelshopDirectorySettings'
        createdAt:
          type: string
    modelCommunication:
      type: object
      properties:
        channels:
          type: array
          items:
            type: string
        messages:
          $ref: '#/components/schemas/modelCommunicationMessage'
    modelBankDetails:
      type: object
      properties:
        accountType:
          type: string
        accountNumber:
          type: string
        branchCode:
          type: string
        bankName:
          type: string
        verified:
          type: boolean
    modelDefaultDepositType:
      type: object
      properties:
        depositType:
          type: string
        enabled:
          type: boolean
        percentage:
          type: integer
          format: int32
        flat:
          type: integer
          format: int32
    modelMerchantResponse:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        domain:
          type: string
        active:
          type: boolean
        flatFee:
          type: integer
          format: int32
        percFee:
          type: number
          format: double
        users:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelUser'
        notifyUrl:
          type: string
        paymentNotifyUrl:
          type: string
        timestamp:
          type: number
          format: double
        merchantTermsLink:
          type: string
        settlementDay:
          type: integer
          format: int32
        settlementFrequency:
          type: string
        settlementType:
          type: string
        supportEmail:
          type: string
        supportMobile:
          type: string
        imageUrl:
          type: string
        newOrder:
          $ref: '#/components/schemas/modelNotification'
        amendmentOrder:
          $ref: '#/components/schemas/modelNotification'
        cancelledOrder:
          $ref: '#/components/schemas/modelNotification'
        completedOrder:
          $ref: '#/components/schemas/modelNotification'
        successfulPayment:
          $ref: '#/components/schemas/modelNotification'
        failedPayment:
          $ref: '#/components/schemas/modelNotification'
        missedPayment:
          $ref: '#/components/schemas/modelNotification'
        autoSettlement:
          type: boolean
        absorbsFee:
          type: boolean
        expire:
          type: integer
          format: int32
        cancellationTerms:
          $ref: '#/components/schemas/modelCancellationTermRequest'
        weeklyPayments:
          type: boolean
        paymentPlans:
          $ref: '#/components/schemas/modelPaymentPlanSettings'
        expiredOrder:
          $ref: '#/components/schemas/modelNotification'
        completedOrder_75:
          $ref: '#/components/schemas/modelNotification_Percentage'
        customFeatures:
          $ref: '#/components/schemas/modelCustomize'
        features:
          $ref: '#/components/schemas/modelFeature'
        cancellationRequest:
          $ref: '#/components/schemas/modelNotification'
        merchantName:
          type: string
        billingAddress:
          $ref: '#/components/schemas/modelBillingAddress'
        vatNo:
          type: string
        registeredEntity:
          type: string
        bankDetails:
          $ref: '#/components/schemas/modelBankDetails'
        settlements:
          $ref: '#/components/schemas/modelNotification'
        invoices:
          $ref: '#/components/schemas/modelNotification'
        onboardingState:
          type: string
        accountType:
          type: string
        contractDocumentId:
          type: string
        merchantBankingPercFee:
          type: integer
          format: int32
        adminPercFee:
          type: integer
          format: int32
        contractUrl:
          type: string
        contractUpdated:
          type: boolean
        bankDetailsValidation:
          $ref: '#/components/schemas/modelBankInfo'
        bankValidationPendingReference:
          type: string
        merchantContractSigned:
          type: string
        transfers:
          $ref: '#/components/schemas/modelNotification'
        refunds:
          $ref: '#/components/schemas/modelNotification'
        suspendedOrder:
          $ref: '#/components/schemas/modelNotification'
        monthlyPayments:
          type: boolean
        displayOnWeb:
          $ref: '#/components/schemas/modelshopDirectorySettings'
        tradingName:
          type: string
        pricelistId:
          type: string
        accountSettings:
          $ref: '#/components/schemas/modelMerchantAccountSettings'
        feeSystem:
          type: string
        communication:
          $ref: '#/components/schemas/modelCommunication'
        defaultBillingMethod:
          type: string
        enableTwoFactorAuthentication:
          type: boolean
        voucherSettings:
          $ref: '#/components/schemas/modelMerchantVoucherSettings'
        settlementBatchReferencePrefix:
          type: string
        terminalSettings:
          $ref: '#/components/schemas/modelTerminalSettings'
    modelValueEnabledPair:
      type: object
      properties:
        enabled:
          type: boolean
        value:
          type: integer
          format: int32
  securitySchemes:
    apiKey:
      type: apiKey
      name: apikey
      in: header