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/paymate-businesses-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 email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: PayMate Global Partner Businesses API
version: v1
description: 'Partner-facing B2B payments API for the PayMate global platform — business (KYB) onboarding, contact onboarding, commercial-card management, vendor payments, payment collection requests and reporting.
GENERATED, NOT PUBLISHED BY PAYMATE. PayMate does not publish an OpenAPI description. This document was generated by API Evangelist from PayMate''s OWN machine-readable endpoint dataset (MalaysiaData.json / singaporeData.json / AustraliaData.json / UaeData.json / OmanData.json / SouthAfricaData.json), which is bundled into the Partner API documentation app served at https://api.paymate.my/GlobalPartnerAPI. The verbatim datasets are kept alongside this file in openapi/_source/. Every path, method, parameter, data type, required flag, description and example here comes from that dataset; nothing was invented.
Regional deployments run the same v1 surface on six hosts. In Australia and South Africa the platform is branded DuNoMo. Each operation carries x-regions listing the regional datasets that declare it — POST /v1/VendorPayment is declared only in the Australian dataset.'
contact:
name: PayMate partner support
url: https://api.paymate.my/GlobalPartnerAPI
email: support@paymate.my
x-generated-by: API Evangelist enrichment pipeline
x-generated-on: '2026-08-26'
x-source: https://api.paymate.my/GlobalPartnerAPI/static/js/main.d40c1507.js
servers:
- url: https://api.paymate.sg
description: Singapore
- url: https://api.paymate.my
description: Malaysia
- url: https://api.paymate.ae
description: United Arab Emirates
- url: https://api.paymate.om
description: Oman
- url: https://api.dunomo.au
description: Australia (DuNoMo brand)
- url: https://api.dunomo.co.za
description: South Africa (DuNoMo brand)
security:
- PartnerApiKey: []
tags:
- name: Businesses
description: Business (KYB) onboarding, maintenance, charges and collection account setup
paths:
/v1/businessboarding:
post:
operationId: BusinessBoarding
summary: Business Boarding
description: 'This method is used for on-boarding the Business to the PayMate platform. Once the Business gets on-boarded to the PayMate platform, they can perform the various activities like: adding a card, boarding contacts, making payments to their vendors and sending collection request to their buyers.'
tags:
- Businesses
x-regions:
- ae
- au
- my
- om
- sg
- za
responses:
'200':
description: PayMate response envelope. Business outcome is carried in StatusCode; see errors/paymate-error-codes.yml.
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: Sent during request
StatusCode:
type: string
maxLength: 3
description: Status of the Request
Description:
type: string
maxLength: 300
description: Status Description
DetailedSummary:
type: object
description: This will be used to show business status and respond. Refer DetailedSummary Object
properties:
BusinessCode:
type: string
maxLength: 30
description: Sent during request
BusinessXpressID:
type: string
maxLength: 15
description: Business Identification at PayMate end
Status:
type: string
maxLength: 3
description: Current status of the business
Message:
type: string
maxLength: 500
description: Status description
example:
RequestID: '123456789'
StatusCode: '000'
Description: Your request has been processed successfully
DetailedSummary:
BusinessXpressID: PMX10002344
BusinessCode: S001234
Status: '198'
Message: T&C acceptance is pending
'401':
description: Empty/invalid header credentials (StatusCode 106), observed on an unauthenticated probe.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: A unique request no from the partner to track the request
x-possible-values: 0-9, A-Z
BusinessInfo:
type: object
description: Refer BusinessInfo object
properties:
BusinessRegistrationNo:
type: string
maxLength: 30
description: Company Registration no issued by the government. If registration number is provided by the partner then PayMate will perform the business KYC in real time. If the registration number is not provided then the Partner will have to use the BuyerSupplierKYC and ShareholderDetails API method for KYC verification.
BusinessName:
type: string
maxLength: 100
description: Name of the business as per the government record.
x-special-characters: . @ & ! ' _ - / ( )
BusinessCode:
type: string
maxLength: 30
description: Business unique reference no. on partner system
ContactPersonName:
type: string
maxLength: 100
description: Contact's person name
BusinessEmailAddress:
type: string
maxLength: 240
description: Business Email which will be used for all future communication
ISDCode:
type: string
maxLength: 4
description: If business will provide the country ISD code then system will validate and store the details
x-possible-values: '[''+'', ''0-9'']'
MobileNumber:
type: string
pattern: ^[0-9]+$
maxLength: 10
description: If business will provide the mobile no then system will validate the number else they can skip the details
BusinessDescription:
type: string
maxLength: 250
description: Short description about the business
WebsiteAddress:
type: string
maxLength: 100
description: Business website details
BusinessISOCountryCode:
type: string
maxLength: 3
description: Country 3 letter code(ISO alpha 3 code)
ContactKYCRequired:
type: string
maxLength: 1
description: Y – if Business wants their vendors to perform the KYC, N – Otherwise
x-possible-values: '[''Y'', ''N'']'
required:
- BusinessName
- BusinessCode
- ContactPersonName
- BusinessEmailAddress
- ContactKYCRequired
TransactionCharges:
type: object
description: Array of business charges. Minimum one to provide and these charges will be used during payment processing. Refer TransactionCharges Object
properties:
ServiceType:
type: string
maxLength: 20
description: 'Payments: only for supplier payment. Collections: for only for collection. Otherwise set both the service type in case of business want to use both the service'
x-possible-values: '[''Payments'', ''Collection'']'
PaymentMode:
type: string
maxLength: 15
description: Set payment mode as Credit Card, Debit Card, Net Banking and XpressAccount
x-possible-values: '[''CreditCard'',''DebitCard'',''NetBanking'',''XpressAccount'']'
ProcessingRate:
type: number
x-precision: 18,2
description: MDR for each payment mode. This should be greater than or equal to given MDR to partner
ProgramCode:
type: string
maxLength: 10
description: Program Code defines the respective channel to be used during transaction. Required only in case of payment mode credit card
required:
- ServiceType
- PaymentMode
- ProcessingRate
required:
- RequestID
- BusinessInfo
- TransactionCharges
example:
BusinessDetails:
RequestID: '123456789'
BusinessInfo:
BusinessRegistrationNo: 1000008-M
BusinessName: '#CENTEROFATTRACTION PRIVATE LIMITED'
BusinessCode: S001234
ContactPersonName: DheerajRai
BusinessEmailAddress: dheeraj@supernet.com
ISDCode: '+60'
MobileNumber: '196090811'
BusinessDescription: ''
WebsiteAddress: ''
BusinessISOCountryCode: MYS
ContactKYCRequired: N
TransactionCharges:
- ServiceType: Payments
PaymentMode: CreditCard
ProcessingRate: '2.00'
ProgramCode: ''
- ServiceType: Payments
PaymentMode: NeBanking
ProcessingRate: '1.00'
ProgramCode: ''
- ServiceType: Payments
PaymentMode: XpressAccount
ProcessingRate: '0.00'
ProgramCode: ''
- ServiceType: Collections
PaymentMode: CreditCard
ProcessingRate: '2.00'
ProgramCode: ''
- ServiceType: Collections
PaymentMode: DebitCard
ProcessingRate: '2.00'
ProgramCode: ''
- ServiceType: Collections
PaymentMode: XpressAccount
ProcessingRate: '0.00'
ProgramCode: ''
/v1/modifybusiness:
post:
operationId: ModifyBusiness
summary: Modify Business
description: This method is used for updating the Business information, once the Business is on-boarded to the PayMate. The Business can update their information such as Business Name, Contact person’s information, Website details, etc. Business can send either “BusinessCode” or “BusinessXpressID” with the request for modification.
tags:
- Businesses
x-regions:
- ae
- au
- my
- om
- sg
- za
responses:
'200':
description: PayMate response envelope. Business outcome is carried in StatusCode; see errors/paymate-error-codes.yml.
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: Sent during request
StatusCode:
type: string
maxLength: 3
description: Status of the Request
Description:
type: string
maxLength: 300
description: Status Description
DetailedSummary:
type: object
description: This will be used to show business status and respond. Refer DetailedSummary Object
properties:
BusinessCode:
type: string
maxLength: 30
description: Sent during request
BusinessXpressID:
type: string
maxLength: 15
description: Business Identification at PayMate end
Status:
type: string
maxLength: 20
description: Current status of the business
Message:
type: string
maxLength: 500
description: Status description
example:
RequestID: '123456789'
StatusCode: '000'
Description: Yourrequesthasbeenprocessedsuccessfully
DetailedSummary:
BusinessXpressID: PMX10002344
BusinessCode: S001234
Status: '219'
Message: Yourbusinessinformationhasbeenupdatedsuccessfully
'401':
description: Empty/invalid header credentials (StatusCode 106), observed on an unauthenticated probe.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: A unique Request no from the partner to track the request
x-possible-values: '[''0 - 9'', ''A - Z'']'
BusinessInfo:
type: object
description: This will be used to update business information. Refer BusinessInfo Object
properties:
BusinessRegistrationNo:
type: string
maxLength: 30
description: Company Registration no issued by the government. If registration number is provided by the partner then PayMate will perform the business KYC in real time otherwise the business will use other BusinessKYC API and submit the KYC documents. PayMate will review the KYC document and take action within 48 hours.
BusinessName:
type: string
maxLength: 100
description: Pass this parameter only when change is required.
x-special-characters: . @ & ! ' _ - / ( )
BusinessCode:
type: string
maxLength: 30
description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending BusinessXpressID
BusinessXpressID:
type: string
maxLength: 15
description: Business Unique Relationship no at PayMate end. Parameter is mandatory if business is not sending BusinessCode
ContactPersonName:
type: string
maxLength: 100
description: Pass this parameter only when change is required
BusinessEmailAddress:
type: string
maxLength: 240
description: Pass this parameter only when change is required
ISDCode:
type: string
maxLength: 4
description: Pass this parameter only when business want to update country ISD code
MobileNumber:
type: string
pattern: ^[0-9]+$
maxLength: 10
description: Pass this parameter only when change is required
WebsiteAddress:
type: string
maxLength: 100
description: Pass this parameter only when change is required
BusinessDescription:
type: string
maxLength: 250
description: Pass this parameter only when change is required
BusinessISOCountryCode:
type: string
maxLength: 3
description: Country 3 letter code(ISO alpha 3 code)
ContactKYCRequired:
type: string
maxLength: 1
description: Pass this parameter only when change is required
x-possible-values: Y / N
required:
- RequestID
- BusinessInfo
example:
BusinessDetails:
RequestID: '987654321'
BusinessInfo:
BusinessCode: S001234
BusinessXpressID: ''
BusinessName: '#CENTEROFATTRACTION PRIVATE LIMITED'
ContactPersonName: DheerajRai
BusinessEmailAddress: Dheeraj.Rai@supernet.com
ISDCode: '+60'
MobileNumber: '196090811'
BusinessDescription: ''
WebsiteAddress: ''
BusinessISOCountryCode: MYS
ContactKYCRequired: N
/v1/SetTransctionCharges:
post:
operationId: SetTransactionCharges
summary: Set Transaction Charges
description: This method is used for setting up the transaction charges for various services. With this API, one can set-up Credit Card, Debit Card or Net Banking charges for Payments and Collections.
tags:
- Businesses
x-regions:
- ae
- au
- my
- om
- sg
- za
responses:
'200':
description: PayMate response envelope. Business outcome is carried in StatusCode; see errors/paymate-error-codes.yml.
content:
application/json:
schema:
type: object
properties:
StatusCode:
type: string
maxLength: 3
description: Status of the Request
Description:
type: string
maxLength: 300
description: Status Description
DetailedSummary:
type: object
description: This will be used to show business status and respond. Refer DetailedSummary Object
properties:
BusinessCode:
type: string
maxLength: 30
description: Sent during request
BusinessXpressID:
type: string
maxLength: 3
description: Business Identification at PayMate end
Status:
type: string
maxLength: 20
description: Current status of the business
Message:
type: string
maxLength: 500
description: Status description
example:
RequestID: '123456789'
StatusCode: '000'
Description: Your request has been processed successfully
DetailedSummary:
BusinessXpressID: PMX10002344
BusinessCode: S001234
Status: '225'
Message: Your business charges has been updated successfully
'401':
description: Empty/invalid header credentials (StatusCode 106), observed on an unauthenticated probe.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: A unique Request no from the partner to track the request
x-possible-values: '[''A-Z'', ''0-9'']'
BusinessCode:
type: string
maxLength: 30
description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending BusinessXpressID
x-possible-values: '[''A-Z'', ''0-9'']'
BusinessXpressID:
type: string
maxLength: 15
description: Business Unique Relationship no at PayMate end. Parameter is mandatory if business is not sending BusinessCode
TransactionCharges:
type: object
description: Array of business charges. Minimum one to be provided and these charges will be used during payment processing. Refer TransactionCharges Object
properties:
ServiceType:
type: string
maxLength: 20
description: 'Payments: only for supplier payment. Collections: for only for collection. Otherwise set both the service type in case of business want to use both the service'
x-possible-values: '[''Payments'', ''Collections'']'
PaymentMode:
type: string
maxLength: 15
description: Set payment mode as Credit Card, Debit Card, Net Banking
x-possible-values: '[''CreditCard'',''DebitCard'',''NetBanking'',''XpressAccount'']'
ProcessingRate:
type: number
x-precision: 18,2
description: MDR for each payment mode
ProgramCode:
type: string
maxLength: 10
description: Program Code defines the respective channel to be used during transaction. Required only in case of payment mode credit card
required:
- ServiceType
- PaymentMode
- ProcessingRate
required:
- RequestID
- TransactionCharges
example:
TrasnactionChargesDetails:
RequestID: '123456789'
BusinessCode: CRX00005
BusinessXpressID: ''
TransactionCharges:
- ServiceType: Payments
PaymentMode: CreditCard
ProcessingRate: '2.00'
ProgramCode: ''
- ServiceType: Collections
PaymentMode: DebitCard
ProcessingRate: '2.00'
ProgramCode: ''
/v1/deletebusiness:
post:
operationId: DeleteBusiness
summary: Delete Business
description: This method is used for deleting a Business permanently. It cannot be undone. Also, immediately cancels any active subscription of the Business, if any.
tags:
- Businesses
x-regions:
- ae
- au
- my
- om
- sg
- za
responses:
'200':
description: PayMate response envelope. Business outcome is carried in StatusCode; see errors/paymate-error-codes.yml.
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: Sent during request
StatusCode:
type: string
maxLength: 3
description: Status of the Request
Description:
type: string
maxLength: 300
description: Status Description
DetailedSummary:
type: object
description: This will be used to show business status and respond. Refer DetailedSummary Object
properties:
BusinessCode:
type: string
maxLength: 30
description: Sent during request
BusinessXpressID:
type: string
maxLength: 15
description: Business Identification at PayMate end
Status:
type: string
maxLength: 3
description: Current status of the business
Message:
type: string
maxLength: 500
description: Status description
example:
RequestID: '123456789'
StatusCode: '000'
Description: Yourrequesthasbeenprocessedsuccessfully
DetailedSummary:
BusinessXpressID: PMX10002344
BusinessCode: S001234
Status: '242'
Message: Yourbusinesshasbeendeletedsuccessfully
'401':
description: Empty/invalid header credentials (StatusCode 106), observed on an unauthenticated probe.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: A unique Request no from the partner to track the request
x-possible-values: '[''A-Z'', ''0-9'']'
BusinessCode:
type: string
maxLength: 30
description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending BusinessXpressID
BusinessXpressID:
type: string
maxLength: 15
description: Business Unique Relationship no at PayMate end. Parameter is mandatory if business is not sending BusinessCode
x-possible-values: '[''A-Z'', ''0-9'']'
Reason:
type: string
maxLength: 500
description: Remarks on deleting
x-possible-values: '[''A-Z'', ''0-9'']'
required:
- RequestID
- Reason
example:
BusinessDetails:
RequestID: '123456789'
BusinessCode: ATRS00001
BusinessXpressID: ''
Reason: Businessisnotactivesincelastfewmonths
/v1/BusinessCollectionAccount:
post:
operationId: SetCollectionAccount
summary: Set Collection Account
description: This method is used for adding a collection Bank account, where the Business would like to receive the funds received from their customers.
tags:
- Businesses
x-regions:
- ae
- au
- my
- om
- sg
- za
responses:
'200':
description: PayMate response envelope. Business outcome is carried in StatusCode; see errors/paymate-error-codes.yml.
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 20
description: Sent during request
StatusCode:
type: string
maxLength: 3
description: Status of the Request
Description:
type: string
maxLength: 300
description: Status Description
DetailedSummary:
type: object
description: This will be used to show business status and respond. Refer DetailedSummary Object
properties:
BusinessCode:
type: string
maxLength: 30
description: Sent during request
BusinessXpressID:
type: string
maxLength: 15
description: Business Identification at PayMate side
Status:
type: string
maxLength: 3
description: Current status of the business
Message:
type: string
maxLength: 500
description: Status description
example:
RequestID: '123456789'
StatusCode: '000'
Description: Businessrequesthasbeenprocessedsuccessfully
DetailedSummary:
BusinessXpressID: PMX10002344
BusinessCode: S001234
Status: '288'
Message: Accounthasbeensetasadefaultsettlementaccount
'401':
description: Empty/invalid header credentials (StatusCode 106), observed on an unauthenticated probe.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorEnvelope'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
RequestID:
type: string
maxLength: 30
description: A unique Request no from the partner to track the request
BusinessCode:
type: string
maxLength: 30
description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending BusinessXpressID
BusinessXpressID:
type: string
maxLength: 15
description: Business Unique Relationship no at PayMate end. Parameter is mandatory if business is not sending BusinessCode
BankAccountDetails:
type: object
description: This will be used to provide business account details for collection. Refer BankAccountDetails Object
properties:
AccountHolderName:
type: string
maxLength: 100
description: Name of the person or business that owns the bank account.
AccountNo:
type: string
maxLength: 30
description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending BusinessXpressID
CurrencyCode:
type: string
maxLength: 3
description: Three letter ISO code for th
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paymate/refs/heads/main/openapi/paymate-businesses-api-openapi.yml