LayUp Technologies PaymentPlanService API
The PaymentPlanService API from LayUp Technologies — 7 operation(s) for paymentplanservice.
The PaymentPlanService API from LayUp Technologies — 7 operation(s) for paymentplanservice.
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-paymentplanservice-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 Payment Plan 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: PaymentPlanService
paths:
/v1/payment-plan:
post:
operationId: PaymentPlanService_Create
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponse'
'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
tags:
- PaymentPlanService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanRequest'
required: true
summary: Payment plan service create
x-summary-source: derived
/v1/payment-plan-send-notification:
post:
operationId: PaymentPlanService_sendPaymentPlanNotification
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponse'
'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:
- PaymentPlanService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanSendNotificationRequest'
required: true
summary: Payment plan service send payment plan notification
x-summary-source: derived
/v1/payment-plan-split:
post:
operationId: PaymentPlanService_CreateSplitPayment
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponseMany'
'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
tags:
- PaymentPlanService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanSplitBody'
required: true
summary: Payment plan service create split payment
x-summary-source: derived
/v1/payment-plan/preview:
post:
operationId: PaymentPlanService_CreatePreview
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanPreviewResponseMany'
'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:
- PaymentPlanService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanPreviewRequest'
required: true
summary: Payment plan service create preview
x-summary-source: derived
/v1/payment-plan/preview/{_id}:
get:
operationId: PaymentPlanService_GetPreview
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanPreviewResponseMany'
'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: frequency
in: query
required: false
schema:
type: string
- name: offset
in: query
required: false
schema:
type: integer
format: int32
- name: paymentPlanId
in: query
required: false
schema:
type: string
tags:
- PaymentPlanService
summary: Payment plan service get preview
x-summary-source: derived
/v1/payment-plan/{_id}:
get:
operationId: PaymentPlanService_Get
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponse'
'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: populate
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
tags:
- PaymentPlanService
summary: Payment plan service get
x-summary-source: derived
delete:
operationId: PaymentPlanService_Del
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanDelResponse'
'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:
- PaymentPlanService
summary: Payment plan service del
x-summary-source: derived
put:
operationId: PaymentPlanService_Update
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponse'
'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:
- PaymentPlanService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanRequest'
required: true
summary: Payment plan service update
x-summary-source: derived
/v1/payment-plan/{token}:
get:
operationId: PaymentPlanService_getByMsisdnAndToken
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelPaymentPlanResponse'
'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: token
in: path
required: true
schema:
type: string
- name: msisdn
in: query
required: false
schema:
type: string
- name: populate
in: query
required: false
style: form
explode: true
schema:
type: array
items:
type: string
tags:
- PaymentPlanService
summary: Payment plan service get by msisdn and token
x-summary-source: derived
components:
schemas:
modelPaymentPlanDelResponse:
type: object
properties:
_id:
type: string
orderId:
type: string
benefactorId:
type: string
completed:
type: boolean
quantity:
type: integer
format: int32
depositDue:
type: integer
format: int32
amountDue:
type: integer
format: int32
automaticBilling:
type: boolean
payments:
type: array
items:
type: object
$ref: '#/components/schemas/modelPlanPayment'
active:
type: boolean
modelPaymentPlanResponse:
type: object
properties:
_id:
type: string
orderId:
type: string
benefactorId:
type: string
completed:
type: boolean
quantity:
type: integer
format: int32
depositDue:
type: integer
format: int32
amountDue:
type: integer
format: int32
automaticBilling:
type: boolean
timestamp:
type: number
format: double
payments:
type: array
items:
type: object
$ref: '#/components/schemas/modelPlanPayment'
benefactor:
$ref: '#/components/schemas/modelPaymentPlanBenefactor'
frequency:
type: string
enum:
- WEEKLY
- MONTHLY
offset:
type: integer
format: int32
depositDueExcludingFee:
type: integer
format: int32
amountDueExcludingFee:
type: integer
format: int32
order:
$ref: '#/components/schemas/modelOrderResponse'
debicheckStatus:
type: string
debicheckLastFailedReasons:
type: array
items:
type: string
debicheckMandateActiveId:
type: string
debicheckMandateIds:
type: array
items:
type: string
payAtReferenceNumber:
type: string
agreedToTerms:
type: boolean
modelSupplier:
type: object
properties:
_id:
type: string
name:
type: string
merchantId:
type: string
modelPaymentWidgetLogo:
type: object
properties:
enabled:
type: boolean
value:
type: string
modelPaymentPlanPreviewResponse:
type: object
properties:
months:
type: integer
format: int32
deposit:
type: integer
format: int32
payments:
type: array
items:
type: object
$ref: '#/components/schemas/modelPaymentResponse'
quantity:
type: integer
format: int32
orderState:
type: string
modelNote:
type: object
properties:
change:
type: string
date:
type: string
name:
type: string
reason:
type: string
details:
type: string
read:
type: boolean
userId:
type: string
type:
type: string
hide:
type: boolean
unread:
type: boolean
modelPaymentProviderResponses:
type: object
modelPaymentPlanSplitBody:
type: object
properties:
clients:
type: array
items:
type: object
$ref: '#/components/schemas/modelSplitUser'
paymentPlan:
$ref: '#/components/schemas/modelPaymentPlanRequest'
redirectTo:
type: string
verificationRedirect:
type: string
modelCancellationTypeDefinition:
type: object
properties:
missed:
type: integer
format: int32
percentage:
type: integer
format: int32
modelPaymentPlanResponseMany:
type: object
properties:
paymentPlans:
type: array
items:
type: object
$ref: '#/components/schemas/modelPaymentPlanResponse'
modelPaymentResponse:
type: object
properties:
_id:
type: string
paymentPlanId:
type: string
due:
type: string
amount:
type: integer
format: int32
paid:
type: boolean
userId:
type: string
locked:
type: boolean
pending:
type: boolean
timestamp:
type: number
format: double
paymentMethod:
type: string
paymentType:
type: string
note:
type: string
reference:
type: string
orderStatus:
type: string
amountExcludingFee:
type: integer
format: int32
fee:
type: integer
format: int32
failed:
type: boolean
verifyError:
type: string
refundedAmount:
type: integer
format: int32
refundPaymentId:
type: string
connectorData:
$ref: '#/components/schemas/modelConnectorData'
destinationId:
type: string
destinationType:
type: string
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
modelConnectorData:
type: object
properties:
paymentProvider:
type: string
paymentMethod:
type: string
description: Connector data bypasses protobuf conversion to allow any fields.
modelPlanPaymentConnectorData:
type: object
properties:
_id:
type: string
amount:
type: integer
format: int32
paymentProviderPaymentId:
type: string
paymentReference:
type: string
paymentMethod:
type: string
paymentProvider:
type: string
paymentProviderResponses:
$ref: '#/components/schemas/modelPaymentProviderResponses'
modelCancellationTermRequest:
type: object
properties:
active:
type: boolean
definition:
type: array
items:
type: object
$ref: '#/components/schemas/modelCancellationDefinition'
modelImageUrl:
type: object
properties:
enabled:
type: boolean
value:
type: string
modelPaymentPlanRequest:
type: object
properties:
orderId:
type: string
benefactorId:
type: string
quantity:
type: integer
format: int32
automaticBilling:
type: boolean
frequency:
type: string
title: weekly or monthly
offset:
type: integer
format: int32
title: for weekly 0-6, for monthly 0-30
token:
type: string
agreedToTerms:
type: boolean
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
modelCancellationPolicyDefinition:
type: object
properties:
deposit:
type: boolean
percentage:
type: integer
format: int32
flatFee:
type: integer
format: int32
percentageShouldUseTotalPaid:
type: boolean
modelPlanPayment:
type: object
properties:
_id:
type: string
due:
type: string
amount:
type: integer
format: int32
paid:
type: boolean
timestamp:
type: number
format: double
paymentMethod:
type: string
paymentType:
type: string
amountExcludingFee:
type: integer
format: int32
fee:
type: integer
format: int32
pending:
type: boolean
failed:
type: boolean
reconciliated:
type: boolean
refundedAmount:
type: integer
format: int32
refundPaymentId:
type: string
connectorData:
$ref: '#/components/schemas/modelPlanPaymentConnectorData'
verifiedAt:
type: string
dueAt:
type: string
modelSplitUser:
type: object
properties:
email:
type: string
format: email
name:
type: string
cellNumber:
type: string
pattern: ^\+27\d{9}$
modelGroupPayment:
type: object
properties:
enabled:
type: boolean
cloneLimit:
type: integer
format: int32
expiry:
type: integer
format: int32
modelCancellationPolicy:
type: object
properties:
name:
type: string
enum:
- Deposit
- Percentage
- FlatFee
- Combination
definition:
$ref: '#/components/schemas/modelCancellationPolicyDefinition'
modelOrderResponse:
type: object
properties:
_id:
type: string
endDateMax:
type: string
format: date-time
required:
- 'true'
endDateMin:
type: string
format: date-time
initiatorId:
type: string
products:
type: array
items:
type: object
$ref: '#/components/schemas/modelProductResponse'
state:
enum:
- PARTIAL
- PLACED
- COMPLETED
- CANCELLED
- CANCELLING
- EXPIRED
- SUSPENDED
default: PARTIAL
supplierId:
type: string
cancelledBy:
type: string
amountDue:
type: integer
format: int32
flatFee:
type: integer
format: int32
percFee:
type: number
format: double
depositPerc:
type: number
format: double
absorbsFee:
type: boolean
reference:
type: string
name:
type: string
imageUrl:
type: string
plans:
type: array
items:
type: object
$ref: '#/components/schemas/modelPaymentPlanResponse'
createdAt:
type: string
timestamp:
type: number
format: double
enablesSplit:
type: boolean
depositAmount:
type: integer
format: int32
depositType:
type: string
enum:
- INSTALMENT
- FLAT
- PERCENTAGE
required:
- 'true'
expire:
type: string
cancellationTerms:
$ref: '#/components/schemas/modelCancellationTermRequest'
weeklyPayments:
type: boolean
paymentMethods:
$ref: '#/components/schemas/modelPaymentMethod'
stateUpdatedAt:
type: string
updatedAt:
type: string
groupPaymentPlan:
$ref: '#/components/schemas/modelGroupPayment'
cloneExpiry:
type: integer
format: int32
cloneCount:
type: integer
format: int32
orderCancellationRequest:
type: string
notifications:
type: array
items:
type: object
$ref: '#/components/schemas/modelNote'
acceptedProposedCancellationTerms:
type: boolean
customFeatures:
$ref: '#/components/schemas/modelCustomize'
merchantName:
type: string
merchantTermsLink:
type: string
merchantLink:
type: string
debiCheckMinimum:
$ref: '#/components/schemas/modelValueEnabledPair'
supplier:
$ref: '#/components/schemas/modelSupplier'
orderRefundRequest:
type: string
orderRefundAmount:
type: integer
format: int32
orderRefundFee:
type: integer
format: int32
monthlyPayments:
type: boolean
type:
type: string
balance:
type: integer
format: int32
description:
type: string
isIncreasedDepositAmountAllowed:
type: boolean
suspendOnCancel:
type: boolean
voucherSettings:
$ref: '#/components/schemas/modelVoucherSettings'
modelCancellationType:
type: object
properties:
name:
type: string
definition:
$ref: '#/components/schemas/modelCancellationTypeDefinition'
finalPaymentMissed:
type: boolean
modelPaymentPlanPreviewResponseMany:
type: object
properties:
amountDue:
type: integer
format: int32
merchant:
type: string
merchantTermsLink:
type: string
reference:
type: string
orderName:
type: string
depositDue:
type: integer
format: int32
endDateMax:
type: string
imageUrl:
type: string
enablesSplit:
type: boolean
products:
type: array
items:
type: object
$ref: '#/components/schemas/modelProductResponse'
paymentPlans:
type: array
items:
type: object
$ref: '#/components/schemas/modelPaymentPlanPreviewResponse'
depositAmount:
type: integer
format: int32
depositType:
type: string
enum:
- INSTALMENT
- FLAT
- PERCENTAGE
required:
- 'true'
flatFee:
type: number
format: double
percFee:
type: number
format: double
validDays:
type: array
items:
type: integer
format: int32
validDates:
type: array
items:
type: integer
format: int32
amountDueExcludingFee:
type: integer
format: int32
depositDueExcludingFee:
type: integer
format: int32
paymentMethods:
$ref: '#/components/schemas/modelPaymentMethod'
weeklyPayments:
type: boolean
orderState:
type: string
groupPaymentPlan:
$ref: '#/components/schemas/modelGroupPayment'
orderToClone:
$ref: '#/components/schemas/modelOrderResponse'
customFeatures:
$ref: '#/components/schemas/modelCustomize'
cancellationTerms:
$ref: '#/components/schemas/modelCancellationTermRequest'
initiatorId:
type: string
debiCheckMinimum:
$ref: '#/components/schemas/modelValueEnabledPair'
monthlyPayments:
type: boolean
modelPaymentPlanBenefactor:
type: object
properties:
_id:
type: string
name:
type: string
email:
type: string
modelProductResponse:
type: object
properties:
_id:
type: string
amount:
type: integer
format: int32
link:
type: string
format: uri
sku:
type: string
name:
type: string
depositType:
type: string
modelPaymentPlanPreviewRequest:
type: object
properties:
amountDue:
type: integer
required:
- 'true'
depositPerc:
type: number
required:
- 'true'
endDateMax:
type: string
format: date-time
required:
- 'true'
endDateMin:
type: string
format: date-time
required:
- 'true'
absorbsFee:
type: boolean
required:
- 'true'
frequency:
type: string
enum:
- WEEKLY
- MONTHLY
offset:
type: integer
format: int32
depositAmount:
type: integer
format: int32
depositType:
type: string
enum:
- INSTALMENT
- FLAT
- PERCENTAGE
required:
- 'true'
flatFee:
type: number
format: double
percFee:
type: number
format: double
paymentPlanId:
type: string
quantity:
type: integer
format: int32
modelPaymentPlanSendNotificationRequest:
type: object
properties:
_id:
type: string
modelValueEnabledPair:
type: object
properties:
enabled:
type: boolean
value:
type: integer
format: int32
modelVoucherSettings:
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
voucherProvider:
type: string
securitySchemes:
apiKey:
type: apiKey
name: apikey
in: header