openapi: 3.2.0 info: title: PayMate Global Partner Payments 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: Payments description: Vendor payment initiation, status and reporting paths: /v1/MakePayment: post: operationId: MakePayments summary: Make Payments description: This method is used to make payment request to vendors which you have registered on “PayMate”. The method returns the Transaction Reference Number, Net Amount and Count on successful payment request creation. tags: - Payments 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: Your request has been processed successfully. DetailedSummary: TransactionDetails: - OrderID: CR000013459 PayMateRequestNo: '105818124721' TransactionStatus: '000' StatusMessage: Transaction booked successfully PayableAmount: 9950 - OrderID: CR000013457 PayMateRequestNo: null TransactionStatus: '301' StatusMessage: Orderid already exists PayableAmount: null PaymentURL: https://dev.paymate.in/beta/PMX3.0/SenderAuthentication.aspx?guid=22D7C50397DEBB26833470301574BEB3&prakriya=07CAA0832C2DF798703C660211FBCC2A&bhugtanprakriya=E9F8A265F298DBA5CAED23BADF2FFF57 AcceptCount: '1' RejectCount: '1' NetAmount: '9950.00' Status: '428' '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 BusinessXpressID: type: string maxLength: 15 PaymentMode: type: string maxLength: 15 description: Payment mode to be used for making payments. Options will be XpressAccount, CreditCard, DebitCard or NetBanking x-possible-values: '[''CreditCard'',''DebitCard'',''Netbanking'',''XpressAccount'']' DebitAccount: type: string maxLength: 30 description: 'Credit/Debit Card: 16 digit card number XpressAccount: Send issued XpresssAccount Number If CardReferenceNo is passed then this is optional else required' ExpiryMonth: type: string pattern: ^[0-9]+$ maxLength: 2 description: If CardReferenceNo is passed then this is optional else required ExpiryYear: type: string pattern: ^[0-9]+$ maxLength: 4 description: If CardReferenceNo is passed then this is optional else required CVV: type: string pattern: ^[0-9]+$ maxLength: 3 description: If CardReferenceNo is passed then this is optional else required Network: type: string maxLength: 15 description: If CardReferenceNo is passed then this is optional else required x-possible-values: '[''VISA'', ''MASTERCARD'', ''AMEX'']' CardHolderName: type: string maxLength: 50 description: Name on Card If CardReferenceNo is passed then this is optional else required IssuingBank: type: string maxLength: 100 description: Name of the card issuer If CardReferenceNo is passed then this is optional else required CardReferenceNo: type: string maxLength: 20 description: Card reference number of the saved card If DebitAccount and other info is passed then this is optional else required TransactionDetails: type: object description: All the transaction related information need to share in TransactionDetails section. Refer TransactionDetails Object Invoice: type: object description: Invoice related information and payable amount need to pass in invoice section. Refer Invoice object DebitNote: type: object description: Advance payment information need to send in DebitNote section. Refer DebitNote object required: - RequestID - PaymentMode - TransactionDetails - Invoice - DebitNote example: RequestID: '123456789' BusinessCode: ARFC1223 BusinessXpressID: '' PaymentMode: CreditCard DebitAccount: 5204740XXXXXXXX5745 CardHolderName: John Doe ExpiryMonth: XX ExpiryYear: XXXX CVV: XXX Network: VISA IssuingBank: affin Bank CardReferenceNo: '' PaymentDetails: - TransactionDetails: OrderID: CR000013454 CompanyName: Art & Craft ReferenceCode: AC00001 ContactXpressID: '' AccountNo: '565343423' BICCode: '' RoutingNumber: '100002267' PaymentType: GDE NotificationEmailAddress: alfala@yopmail.com,vendor@yopmail.com PaymentRemarks: Payment against the two invoice INVOICE: - InvoiceNumber: INVOICE122 InvoiceStartDate: '' InvoiceEndDate: '' Amount: '500' TDSAmount: '0' InvoiceReferenceNo: '' - InvoiceNumber: INVOICE12232 InvoiceStartDate: '' InvoiceEndDate: '' Amount: '10000' TDSAmount: '0' InvoiceReferenceNo: '' DebitNote: - DebitTransactionNo: DEBITREF122 DebitDate: 20-01-2021 DebitAmount: '50' DebitReferenceNo: '' DebitRemarks: advance payment of 50 - DebitTransactionNo: DEBITREF12200 DebitDate: 20-01-2021 DebitAmount: '500' DebitReferenceNo: '' DebitRemarks: Advance payment of 500 - TransactionDetails: OrderID: CR000013457 CompanyName: Art & Craft ReferenceCode: AC00001 ContactXpressID: '' AccountNo: '565343423' BICCode: '' RoutingNumber: '100002267' NotificationEmailAddress: alfala@yopmail.com,vendor@yopmail.com PaymentType: GDE PaymentRemarks: Payment against the two invoice INVOICE: - InvoiceNumber: INVOICE12232 InvoiceStartDate: 20-01-2021 InvoiceEndDate: 30-01-2021 Amount: '25000' TDSAmount: '0' InvoiceReferenceNo: '' DebitNote: - DebitTransactionNo: DEBITREF12200 DebitDate: 20-01-2021 DebitAmount: '5000' DebitReferenceNo: '' DebitRemarks: advance payment of Rs 5000 /v1/getpaymentstatus: post: operationId: GetPaymentStatus summary: Get Payment Status description: This method can be used to get the payment request statuses that are still awaiting settlement, paid, or refunded. tags: - Payments 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: RequestId: '123456' StatusCode: '000' Description: Success DetailedSummary: PaymentReport: - TransactionDetails: OrderId: CR000013441 CompanyName: Art & Craft ReferenceCode: AC00001 SettlementAccountNo: '14567890000' RoutingNumber: '100002267' BICCode: '' PayMateRequestNo: '105015124101' TransactionDateTime: 19-02-2021 3:32:25 PM Remarks: Payment against the invoice RemittorAccountDetails: 'NetAmount ': 4950 'PaymentFrom ': Credit Card 'PaymentThrough ': 411111XXXXXX1111 'IssuingBank ': CITI Bank 'MDR ': 2.5 'ServiceCharges ': 127.51 'ServiceTax ': 22.95 'ChargedAmount ': 5100.46 'GatewayTransactionID ': '20210219153241' 'DebitStatus ': '000' 'DebitRemarks ': '' 'DebitDateTime ': 19-02-2021 3:32:44 PM SettlementDetails: SettlementStatus: '000' SettlementDateTime: 20-02-2021 04:08:41 PM SettlementRemarks: Success BankReferenceNo: '11578021588797' '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 x-declared-type: AN(20-30) description: A unique RequestID for identifying the request. PayMateRequestNo: type: string maxLength: 20 description: If OrderID is passed, then this is optional; otherwise, it is required. BusinessCode: type: string maxLength: 30 description: Business unique reference number on partner system. Parameter is mandatory if business is not sending issued BusinessXpressID. BusinessXpressID: type: string maxLength: 15 description: Business Unique Relationship number issued by PayMate. Parameter is mandatory if business is not sending registered BusinessCode. OrderID: type: string maxLength: 30 description: If PayMateRequestNo is passed, then this is optional; otherwise, it is required. required: - RequestID example: RequestId: '123456' OrderID: '' BusinessCode: S001234 BusinessXpressID: '' PayMateRequestNo: '105015124101' /v1/PaymentHistory: post: operationId: PaymentReport summary: Payment Report description: Get all the Payment request which are still awaiting settlement, paid or refund. This method can also be used to fetch all the Payment request, within a specific date range. tags: - Payments 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: RequestId: '123456' StatusCode: '000' Description: Success DetailedSummary: PaymentReport: - TransactionDetails: OrderId: CR000013441 CompanyName: Art & Craft ReferenceCode: AC00001 SettlementAccountNo: '14567890000' RoutingNumber: '100002267' BICCode: '' PayMateRequestNo: '105015124101' TransactionDateTime: 19-02-2021 3:32:25 PM Remarks: Payment against the invoice RemittorAccountDetails: 'NetAmount ': 4950 'PaymentFrom ': Credit Card 'PaymentThrough ': 411111XXXXXX1111 'IssuingBank ': CITI Bank 'MDR ': 2.5 'ServiceCharges ': 127.51 'ServiceTax ': 22.95 'ChargedAmount ': 5100.46 'GatewayTransactionID ': '20210219153241' 'DebitStatus ': '000' 'DebitRemarks ': '' 'DebitDateTime ': 19-02-2021 3:32:44 PM SettlementDetails: SettlementStatus: '000' SettlementDateTime: 20-02-2021 04:08:41 PM SettlementRemarks: Success BankReferenceNo: '11578021588797' '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 x-declared-type: AN(20-30) description: A unique RequestID for identifying the request. OrderID: type: string maxLength: 30 description: Client OrderID BusinessCode: type: string maxLength: 30 description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending issued BusinessXpressID BusinessXpressID: type: string maxLength: 15 description: Business Unique Relationship no issued by PayMate. Parameter is mandatory if business is not sending registered BusinessCode ContactXpressID: type: string maxLength: 15 description: Contact Xpress ID issued by PayMate ReferenceCode: type: string maxLength: 30 description: Contact unique reference no. on partner system FromDate: type: string description: company created from date (including from date) x-possible-values: DD-MM-YYYY ToDate: type: string description: company created to date (including to date) x-possible-values: DD-MM-YYYY PaginationIndex: type: string pattern: ^[0-9]+$ maxLength: 3 description: Index for Pagination 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 - BusinessCode - BusinessXpressID - PaginationIndex - RecordsPerPage example: RequestId: '123456' OrderID: '' BusinessCode: S001234 BusinessXpressID: '' ContactXpressID: '' ReferenceCode: '' FromDate: 01-02-2021 ToDate: 10-02-2021 PaginationIndex: '1' RecordsPerPage: '10' /v1/Paymenttype: post: operationId: PaymentType summary: Payment Type description: Business can get the Payment type list by using this method tags: - Payments 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: Card details summary will come under DetailedSummary Object properties: PaymentCode: type: string maxLength: 4 description: Unique payment code PaymentDetail: type: string maxLength: 50 description: Payment type details example: StatusCode: '000' Description: Your request has been processed successfully DetailedSummary: - PaymentCode: ' GB' PaymentDetail: ' Goods Bought ' - PaymentCode: ' UTL' PaymentDetail: Utility '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 RequestID for identifying the request. BusinessCode: type: string maxLength: 30 description: Business unique reference no. on partner system. Parameter is mandatory if business is not sending issued BusinessXpressID BusinessXpressID: type: string maxLength: 15 description: Business Unique Relationship no issued by PayMate. Parameter is mandatory if business is not sending registered BusinessCode PaymentTypeFor: type: string maxLength: 20 description: Payment Type x-possible-values: MakePayment, CollectPayment required: - RequestID - PaymentTypeFor example: PaymentType: RequestID: '54652165245215' BusinessCode: '12345' BusinessXpressID: '' PaymentTypeFor: MakePayment /v1/VendorPayment: post: operationId: VendorPayments summary: Vendor Payments description: This method is used to make payment request to vendors which you have registered on “DuNoMo”. The method returns the Transaction Reference Number, Net Amount and Count on successful payment request creation. tags: - Payments x-regions: - au 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: Your request has been processed successfully. DetailedSummary: TransactionDetails: - OrderID: CR000013459 PayMateRequestNo: '105818124721' TransactionStatus: '000' StatusMessage: Transaction booked successfully PayableAmount: 9950 - OrderID: CR000013457 PayMateRequestNo: null TransactionStatus: '301' StatusMessage: Orderid already exists PayableAmount: null PaymentURL: https://dev.paymate.in/beta/PMX3.0/SenderAuthentication.aspx?guid=22D7C50397DEBB26833470301574BEB3&prakriya=07CAA0832C2DF798703C660211FBCC2A&bhugtanprakriya=E9F8A265F298DBA5CAED23BADF2FFF57 AcceptCount: '1' RejectCount: '1' NetAmount: '9950.00' Status: '428' '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 issued BusinessXpressID BusinessXpressID: type: string maxLength: 15 description: Business Unique Relationship no issued by PayMate. Parameter is mandatory if business is not sending PaymentMode: type: string maxLength: 15 description: Payment mode to be used for making payments. Options will be XpressAccount, CreditCard, DebitCard or NetBanking x-possible-values: '[''CreditCard'',''DebitCard'',''Netbanking'',''XpressAccount'']' TransactionDetails: type: object description: All the transaction related information need to share in TransactionDetails section. Refer TransactionDetails Object properties: OrderID: type: string maxLength: 30 description: Business generated OrderID CompanyName: type: string maxLength: 100 description: Contact's Company name if provided will be validated against the company name stored at DuNoMo ReferenceCode: type: string maxLength: 30 description: If ContactXpressID passed, then this is optional, else Required. ContactXpressID: type: string maxLength: 15 description: If ReferenceCode passed, then this is optional, else Required. NotificationEmailAddress: type: string maxLength: 1200 description: NotificationEmailAddress will use to send payment notification to the supplier x-possible-values: Business can use up to 5 email address separated by(,) PaymentType: type: string maxLength: 15 description: Purpose of payment. Please refer Get PaymentTypes api to get the payment type list x-possible-values: '[''POS-Merchant Settlements'',''RNT-Rent Payments'',''UTL-Utility'',''GDE-Goods Sold'',''STR-Travel'',''FIS-Financial Services'',''GOS-Government Goods and Services Embassies'',''GRI-Government Related Income Taxes Tariffs Capital Transfers'',''GDI-Goods Bought'']' AccountNo: type: string maxLength: 30 description: Account no of the beneficiary. if provided will be validated against the AccountNo stored at DuNoMo 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. if provided will be validated against the Routing Number stored at DuNoMo BSBCode: type: string maxLength: 11 description: BSB Code PaymentRemarks: type: string maxLength: 500 description: Remarks for the transaction required: - OrderID - PaymentType Invoice: type: object description: Invoice related information and payable amount need to pass in invoice section. Refer Invoice object properties: InvoiceNumber: type: string maxLength: 30 description: Invoice Number InvoiceStartDate: type: string description: Invoice start date x-possible-values: DD-MM-YYYY InvoiceEndDate: type: string description: Invoice period end date x-possible-values: DD-MM-YYYY Amount: type: number x-precision: 18,2 description: Invoice amount TDSAmount: type: number x-precision: 18,2 description: TDS amount on invoice InvoiceReferenceNo: type: string maxLength: 30 description: Business can send their reference no if they are maintaining at their end required: - Amount DebitNote: type: object description: Advance payment information need to send in DebitNote section. Refer DebitNote object properties: DebitTransactionNo: type: string maxLength: 30 description: Advance payment UTR no DebitDate: type: string description: Paid Date x-possible-values: DD-MM-YYYY DebitAmount: type: number x-precision: 18,2 description: Paid Amount DebitReferenceNo: type: string maxLength: 30 description: Business can send their reference no if they are maintaining at their end DebitRemarks: type: string maxLength: 500 description: Remarks against the advance payment required: - RequestID - PaymentMode - TransactionDetails - Invoice - DebitNote example: RequestID: '123456789' BusinessCode: ARFC1223 BusinessXpressID: '' PaymentMode: CreditCard PaymentDetails: - TransactionDetails: OrderID: CR000013454 CompanyName: Art & Craft ReferenceCode: AC00001 ContactXpressID: '' AccountNo: '453423123' BICCode: '' RoutingNumber: '100002267' PaymentType: GDE NotificationEmailAddress: alfala@yopmail.com,vendor@yopmail.com PaymentRemarks: Payment against the two invoice INVOICE: - InvoiceNumber: INVOICE122 InvoiceStartDate: '' InvoiceEndDate: '' Amount: '500' TDSAmount: '0' InvoiceReferenceNo: '' - InvoiceNumber: INVOICE12232 InvoiceStartDate: '' InvoiceEndDate: '' Amount: '10000' TDSAmount: '0' InvoiceReferenceNo: '' DebitNote: - DebitTransactionNo: DEBITREF122 DebitDate: 20-01-2021 DebitAmount: '50' DebitReferenceNo: '' DebitRemarks: advance payment of 50 - DebitTransactionNo: DEBITREF12200 DebitDate: 20-01-2021 DebitAmount: '500' DebitReferenceNo: '' DebitRemarks: Advance payment of 500 - TransactionDetails: OrderID: CR000013457 CompanyName: Art & Craft ReferenceCode: AC00001 ContactXpressID: '' AccountNo: '453423123' BICCode: '' RoutingNumber: '100002267' NotificationEmailAddress: alfala@yopmail.com,vendor@yopmail.com PaymentType: GDE PaymentRemarks: Payment against the two invoice INVOICE: - InvoiceNumber: INVOICE12232 InvoiceStartDate: 20-01-2021 InvoiceEndDate: 30-01-2021 Amount: '25000' TDSAmount: '0' InvoiceReferenceNo: '' DebitNote: - DebitTransactionNo: DEBITREF12200 DebitDate: 20-01-2021 DebitAmount: '5000' DebitReferenceNo: '' DebitRemarks: advance payment of Rs 5000 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