LayUp Technologies authService API
The authService API from LayUp Technologies — 6 operation(s) for authservice.
The authService API from LayUp Technologies — 6 operation(s) for authservice.
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-authservice-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 AbsaDebiCheckService Auth Service API
version: 1.4.16
description: 'Welcome to The Layup Swagger page. This page allows developers to interactively explore the API. For more detailed documentation see [The Layup documentation page](https://documentation.layup.co.za/).
# Introduction
## What is LayUp
LayUp is a lay-by payment solution. LayUp Schedules payments and ensures that your clients pay securely, effectively and on time. Depending on your parameters LayUp schedules a payment plan for your clients. Once a payment plan has been completed we notify you. There are 3 stories that are of importance to a merchant:
1. Order Creation
2. Deposit Received (and holding Stock for your client)
3. Order Completion.
LayUp allows you to take full control over the entire payment process if you wish to do so. We also provide a convenient front-end for users to use. The front-end should significantly reduce the time to integrate and get you started using LayUp as soon as possible.
Once an order is completed a notification will be sent to the merchant so that you can provide the client with their product.
## How to use LayUp
As a merchant who wants to place an order through LayUp, you want to send the relevant information to the LayUp API to create the order. The API will return an order ID. Unless your integration is using a custom user interface, you want to send the user to the LayUp customer payment widget. The URL for this widget is <u>https://shopper.layup.co.za/order/{orderId}</u> for production and <u>https://sandbox.layup.co.za/order/{orderId}</u> for sandbox.
'
servers:
- url: http://localhost:3000
- url: https://localhost:3000
- url: wss://localhost:3000
security:
- apiKey:
- read
- write
tags:
- name: authService
paths:
/v1/auth/apikey:
get:
summary: 'Warning: Calling this endpoint will replace any existing apikeys on your account.'
operationId: authService_GenerateApiKey
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelApiKeyResponse'
'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:
- authService
/v1/auth/login:
post:
operationId: authService_Login
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelUserResponse'
'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:
- authService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelLoginRequest'
required: true
/v1/auth/register:
post:
operationId: authService_Register
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelUserResponse'
'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
- name: isRealtimeVerification
in: query
required: false
schema:
type: boolean
tags:
- authService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelUserRequest'
required: true
/v1/auth/terminal-key:
get:
operationId: authService_GenerateTerminalApiKey
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelTerminalApiKeyResponse'
'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:
- authService
/v1/request-password-reset:
post:
operationId: authService_ForgotPassword
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelForgotPasswordResponse'
'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:
- authService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelForgotPasswordRequest'
required: true
/v1/send-billing-settlements-change-request:
post:
operationId: authService_MerchantBillingChangesRequest
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/modelMerchantBillingSettlementResponse'
'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:
- authService
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/modelMerchantBillingSettlementRequest'
required: true
components:
schemas:
modelMerchants:
type: object
properties:
_id:
type: string
name:
type: string
modelTerminalApiKeyResponse:
type: object
properties:
terminalApiKey:
type: string
modelMerchantBillingSettlementResponse:
type: object
properties:
status:
type: string
modelForgotPasswordRequest:
type: object
properties:
value:
type: string
channel:
type: string
redirectTo:
type: string
isRealtimeVerification:
type: boolean
modelBillingAddress:
type: object
properties:
country:
type: string
province:
type: string
streetAddress:
type: string
city:
type: string
postalCode:
type: string
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
modelMerchantOnboarding:
type: object
properties:
name:
type: string
physicalAddress:
$ref: '#/components/schemas/modelBillingAddress'
modelForgotPasswordResponse:
type: object
properties:
status:
type: string
modelUserResponse:
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
timestamp:
type: number
format: double
hasPassword:
type: boolean
verifiedEmail:
type: boolean
verifiedMobile:
type: boolean
merchantRole:
type: string
bankDetails:
$ref: '#/components/schemas/modelBankInfo'
merchantOnboarding:
$ref: '#/components/schemas/modelMerchantOnboarding'
bankValidationPendingReference:
type: string
oneTimePass:
type: string
passportState:
type: string
passportNumber:
type: string
profileImage:
type: string
merchantIds:
type: array
items:
type: string
merchants:
type: array
items:
type: object
$ref: '#/components/schemas/modelMerchants'
isMerchantOwner:
type: boolean
twoFactorAuthenticationRequired:
type: boolean
modelBankValidation:
type: object
properties:
verified:
type: boolean
value:
type: string
modelApiKeyResponse:
type: object
properties:
apikey:
type: string
modelLoginRequest:
type: object
properties:
username:
type: string
required:
- 'true'
password:
type: string
format: password
required:
- 'true'
rememberMe:
type: boolean
modelUserRequest:
type: object
properties:
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
password:
type: string
active:
type: boolean
name:
type: string
dateOfBirth:
type: string
cellNumber:
type: string
pattern: ^\+27\d{9}$
redirectTo:
type: string
apikey:
type: string
shouldWelcome:
type: boolean
merchantCreatePlan:
type: boolean
merchantId:
type: string
merchantRole:
type: string
bankDetails:
$ref: '#/components/schemas/modelBankInfo'
merchantOnboarding:
$ref: '#/components/schemas/modelMerchantOnboarding'
bankValidationPendingReference:
type: string
passportState:
type: string
passportNumber:
type: string
profileImage:
type: string
merchantIds:
type: array
items:
type: string
isMerchantOwner:
type: boolean
modelMerchantBillingSettlementRequest:
type: object
properties:
merchantName:
type: string
userName:
type: string
userEmail:
type: string
merchantId:
type: string
merchantContactNumber:
type: string
message:
type: string
securitySchemes:
apiKey:
type: apiKey
name: apikey
in: header