LayUp Technologies MerchantService API
The MerchantService API from LayUp Technologies — 4 operation(s) for merchantservice.
The MerchantService API from LayUp Technologies — 4 operation(s) for merchantservice.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/layup-technologies-merchantservice-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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