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 the currency paid out to the bank account RoutingNumber: type: string pattern: ^[0-9]+$ maxLength: 9 description: The routing transit number for the bank account. If mandatory by bank then send with account details BICCode: type: string maxLength: 11 description: Bank identifier code BranchCity: type: string maxLength: 50 description: Bank branch city name x-possible-values: '[''A-Z'', ''Space'']' CountryCode: type: string maxLength: 3 description: Three letter ISO code representing the country the bank account is located in required: - AccountHolderName - AccountNo - BICCode required: - RequestID - BankAccountDetails example: SettlementAccountDetails: RequestID: '123456789' BusinessCode: ATRS00001 BusinessXpressID: '' AccountDetails: AccountHolderName: SupernetServices AccountNo: '565343423' CurrencyCode: MYR RoutingNumber: '' BICCode: DBSSSGSG BranchCity: '' CountryCode: MYS /v1/managebusiness: post: operationId: ManageBusiness summary: Manage Business description: This method is used for getting all the Business information related to the registered Businesses 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 information. Refer DetailedSummary Object properties: BusinessName: type: string maxLength: 100 description: Name of the business BusinessCode: type: string maxLength: 30 description: Business unique reference no. on partner system ContactpersonName: type: string maxLength: 100 description: Contact's person first name BusinessEmailAddress: type: string maxLength: 240 description: Business Email which will be used for all future communication ISDCode: type: string maxLength: 4 description: Country ISD code MobileNumber: type: string pattern: ^[0-9]+$ maxLength: 10 description: Business Mobile number WebsiteAddress: type: string maxLength: 100 description: Business website details BusinessDescription: type: string maxLength: 500 description: Short description about the business ContactKYCRequired: type: string maxLength: 1 description: Y – if Business wants their vendors to perform the KYC, N – Otherwise BusinessStatus: type: string maxLength: 3 description: Current Status of the Business StatusRemark: type: string maxLength: 500 description: Status Description RegistrationDate: type: string description: Business's Registration Date BusinessXpressID: type: string maxLength: 15 description: Business Unique reference no at PayMate end XpressAccountNo: type: string maxLength: 50 description: PayMate Wallet Account No XpressAccountBalance: type: number x-precision: 18,2 description: Current Balance in the PayMate Xpress Account ServiceType: type: string maxLength: 20 description: Assigned Service Type PaymentMode: type: string maxLength: 15 description: Current assigned Payment Mode ProcessingRate: type: number x-precision: 18,2 description: MDR for each payment mode issuersCode: type: string maxLength: 4 description: Bank code AcceptedBy: type: string maxLength: 240 description: Email address of business who is accepting the T&C of PayMate AcceptanceDateTime: type: string description: Acceptance date and time BusinessIPAddress: type: string maxLength: 15 description: User's system IP address BusinessNature: type: string maxLength: 30 description: Registered Business Type KYCStatus: type: string maxLength: 3 description: Current status of the KYC example: RequestID: '123456789' StatusCode: '000' Description: Your request has been processed successfully DetailedSummary: BusinessDetails: RequestID: '123456789' BusinessInfo: BusinessName: '#CENTEROFATTRACTION PRIVATE LIMITED' BusinessCode: S001234 ContactPersonName: Dheeraj Rai BusinessEmailAddress: dheeraj@supernet.com ISDCode: '+60' MobileNumber: '196090811' WebsiteAddress: '' BusinessDescription: '' ContactKYCRequired: N BusinessStatus: '200' StatusRemark: Business Active RegistrationDate: 01-07-2023 BusinessXpressID: PMX0001234 XpressAccountNo: PAYMS3455DF XpressAccountBalance: '0.00' TransactionCharges: - ServiceType: Payments PaymentMode: CreditCard ProcessingRate: '2.00' ProgramCode: '' - ServiceType: payments PaymentMode: DebitCard ProcessingRate: '1.00' ProgramCode: '' - ServiceType: Collections PaymentMode: DebitCard ProcessingRate: '2.00' ProgramCode: '' TermsConditions: AcceptedBy: '' AcceptanceDateTime: 01-02-2021 15:25:12 BusinessIPAddress: 192.168.3.234 KYCDetails: BusinessNature: Proprietorship StatusCode: '295' KYCStatus: KYC Verified '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 BusinessXpressID: type: string maxLength: 15 description: Business unique relationship no at PayMate end FromDate: type: string description: Business created from date (including from date) x-possible-values: DD-MM-YYYY ToDate: type: string description: Business created to date (including to date) x-possible-values: DD-MM-YYYY PaginationIndex: type: string pattern: ^[0-9]+$ maxLength: 3 description: Index for Pagination x-possible-values: DD-MM-YYYY RecordsPerPage: type: string pattern: ^[0-9]+$ maxLength: 2 description: A limit on the number of record to be return x-possible-values: Max 100 required: - RequestID - PaginationIndex - RecordsPerPage example: RequestID: '123456789' BusinessCode: '' BusinessXpressID: '' FromDate: 01-02-2021 ToDate: 10-02-2021 PaginationIndex: '1' RecordsPerPage: '10' /v1/GetTermsNCondition: post: operationId: TermsCondition summary: Terms & Condition description: This method is used for showing Term & Condition to the business at the time of boarding and business must be accept the term and condition 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 information. Refer DetailedSummary Object example: StatusCode: '000' Description: Your request has been processed successfully DetailedSummary: HTML:

Term and Condition

Status: '000' Message: Your Term and Condition '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: StatusCode: type: string maxLength: 3 description: Status Code 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: HTML: type: string x-declared-type: AN(MAX) description: Term and condition content Status: type: string maxLength: 3 description: Current status Message: type: string maxLength: 500 description: Status Description /v1/processbuyersupplierkyc: post: operationId: Buyersupplierkyc summary: Buyer Supplier KYC description: Business can process their KYC 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 example: StatusCode: '000' Description: Business KYC document submitted successfully DetailedSummary: BusinessXpressID: PMX10002344 BusinessCode: S001234 Status: '297' Message: ' Your document(s) has been processed 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: BusinessCode: type: string maxLength: 30 description: Business unique reference no. on partner system BusinessXpressID: type: string maxLength: 15 description: Business Issued Relationship ContactReferencecode: type: string maxLength: 30 description: Send Contact reference no in case of suppler KYC else leave it blank ContactXpressID: type: string maxLength: 15 description: Send contact XpressID in case of supplier kyc if business is not sending reference code else leave it blank BusinessNature: type: string maxLength: 30 description: Company's Nature of Business. Refer DocumentType Enum for more details BusinessProof: type: object description: Refer BusinessProof Object properties: DocumentType: type: string maxLength: 30 description: Refer DocumentType Enum DocumentNumber: type: string maxLength: 20 description: Document No for business proof NameonDocument: type: string maxLength: 100 description: 'Name on the Business Proof Document. Note: Name on the document must be related to business' DocumentProof: type: string x-declared-type: AN(MAX) description: Attachments need to be converted to byte array and then needs to be encoded as base64 string , and then can be passed in DocumentProof FileName: type: string maxLength: 100 description: 'Provide file name with file extension. Ex. GSTCertificate.png. Allowed file type : png, jpeg, jpg, gif and pdf' x-possible-values: '[''png'', ''jpeg'', ''jpg'', ''gif'', ''pdf'']' TaxId: type: string maxLength: 10 required: - DocumentType - DocumentNumber - NameonDocument - DocumentProof - FileName - TaxId AddressProof: type: object description: Refer AddressProof Object properties: DocumentType: type: string maxLength: 30 description: Refer DocumentType Enum Address: type: string maxLength: 500 description: 'Complete address of the business. Note: Except District name and state' City: type: string maxLength: 50 description: City name PinCode: type: string pattern: ^[0-9]+$ maxLength: 6 description: PinCode of the City. System will store district name and state on the pincode input Country: type: string maxLength: 3 description: ISO code of country DocumentProof: type: string x-declared-type: AN(MAX) description: 'Attachments need to be converted to byte array and then needs to be encoded as base64 string, and then can be passed in DocumentProof. Ex. Electricity.png. Allowed file type: png, jpeg, jpg, gif and pdf' x-possible-values: '[''png'', ''jpeg'', ''jpg'', ''gif'', ''pdf'']' FileName: type: string maxLength: 100 description: 'Provide file name with file extension. Ex. GSTCertificate.png. Allowed file type: png, jpeg, jpg, gif and pdf' x-possible-values: '[''png'', ''jpeg'', ''jpg'', ''gif'', ''pdf'']' required: - DocumentType - Address - City - PinCode - Country - DocumentProof - FileName required: - BusinessNature - BusinessProof - AddressProof example: Details: RequestID: CRD0000055 BusinessCode: CRD0000055 BusinessXpressID: CRD0000055 ContactReferenceCode: '' ContactXpressID: '' BusinessNature: Proprietorship BusinessProof: DocumentType: TradeLicense DocumentNumber: 18AABCU9603R1ZM NameonDocument: Alfa Corporations DocumentProof: dnts5A0iEf1uvVhKEk72xXtbADkzVEn/nRiyf8XYAAL49jpFtV5OQAAAABJRU5ErkJggg== FileName: trade.png TaxId: ABC8766661 AddressProof: Address: A 101, Unique Building, Twin street, Delhi City: xyz Pincode: '110003' Country: MYS DocumentProof: YAAL49jpFtV5OQAAAABJRU5ErkJggg== FileName: electricity.png BankProof: DocumentType: Bank Statement DocumentProof: YAAL49jpFtV5OQAAAABJRU5ErkJggg== FileName: electricity.png /v1/processShareholderdetails: post: operationId: ShareholderDetails summary: Shareholder Details description: Business and contacts can pass their share holder details using shareholderdetails api 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: {} example: statuscode: '000' description: Shareholders KYC document submitted successfully detailedsummary: businessxpressid: PMX10002344 businesscode: S001234 contactreferencecode: '' status: '297' message: Your document(s) has been processed 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: Unique identification no to track the request BusinessCode: type: string maxLength: 30 description: Business unique reference no. on partner system BusinessXpressID: type: string maxLength: 15 description: Business Issued Relationship ContactReferencecode: type: string maxLength: 30 description: Send Contact reference no in case of suppler KYC else leave it blank ContactXpressID: type: string maxLength: 15 description: Send contact XpressID in case of supplier kyc if business is not sending reference code else leave it blank Noofshareholder: type: string pattern: ^[0-9]+$ maxLength: 30 description: ShareholderProofDocument FileName: type: string maxLength: 100 description: Provide file name with file extension. x-possible-values: Ex.GSTCertificate.png ShareholderDetails: type: object description: Refer shareholderdetails Object required: - RequestID - Noofshareholder - FileName - ShareholderDetails example: requestid: '123456' businesscode: CRD0000055 businessxpressid: '' contactreferencecode: '' contactxpressid: '' noofshareholders: '1' shareholderdocumentproof: iEf1uvVhKEk72xXtbADkzn/nRiyf8XYAAL49jpFtV5OQAAAABJRU5ErkJggg== filename: Shareholders.jpg shareholderdetails: - shareholdertype: Individual shareholdername: John Doe shareholdershares: '100' identityproofdocumenttype: Passport identityproof: iEf1uvVhKEk72xXtbADkzVEn/nRiyf8XYAAL49jpFtV5OQAAAABJRU5ErkJggg== filename: Passport.jpg dateofbirth: 12-05-1991 mobilenumber: '84552134' jobtitle: Owner address: A 101,Unique Building,Twin street components: schemas: ErrorEnvelope: type: object description: Standard PayMate response envelope. Observed verbatim on a live unauthenticated probe of POST https://api.paymate.my/v1/Countrylist on 2026-08-26. properties: RequestID: type: - string - 'null' description: Echo of the partner-supplied request identifier StatusCode: type: string maxLength: 3 description: PayMate status/error code — see errors/paymate-error-codes.yml (508 codes) Description: type: string description: Human-readable status description DetailedSummary: type: - object - array description: Operation payload; empty on error example: RequestID: null StatusCode: '106' Description: Empty/Invalid header credentials DetailedSummary: {} securitySchemes: PartnerApiKey: type: apiKey in: header name: Authorization description: PayMate issues a secret partner API key after onboarding (write to the regional support address, e.g. support@paymate.my). The exact header name is NOT published in the documentation app; an unauthenticated POST to /v1/Countrylist returns StatusCode 106 "Empty/Invalid header credentials", confirming header-carried credentials. Treat this scheme name/location as UNVERIFIED and confirm with PayMate before use. x-verified: false