openapi: 3.0.3 info: title: 2C2P Payment Gateway API (PGW v4.3) Do Payment Inquiry API description: 'Server-to-server REST interface for the 2C2P Payment Gateway. Every operation is an HTTPS POST under /payment/4.3/. IMPORTANT: on the wire, each request and response body is a single JSON Web Token (JWS) signed with the merchant''s Secret Key using HMAC SHA-256 - the merchant is identified by the merchantID inside the signed payload, and there is no HTTP Authorization header. For readability this document models the DECODED JSON payloads (request `payload` and response `payload`) rather than the raw JWT string. The field schemas here are MODELED from the documented parameters and are a representative subset, not a byte-for-byte copy of 2C2P''s contract; verify exact fields against developer.2c2p.com. Endpoint paths are confirmed from the 2C2P developer reference index.' version: '4.3' contact: name: 2C2P Developer url: https://developer.2c2p.com x-transport-notes: All traffic is HTTPS request/response. Asynchronous results are delivered as a backend notification webhook (2C2P POSTs a signed JWT to the merchant's backendReturnUrl). There is no WebSocket or SSE transport. servers: - url: https://pgw.2c2p.com/payment/4.3 description: Production - url: https://sandbox-pgw.2c2p.com/payment/4.3 description: Sandbox tags: - name: Inquiry description: Query transaction result and status. paths: /paymentInquiry: post: operationId: paymentInquiry tags: - Inquiry summary: Payment inquiry description: Retrieves the full result of a transaction by merchantID + invoiceNo, returning amount, status, approval / reference codes, masked account / card token, installment, and FX details. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentInquiryRequest' responses: '200': description: Decoded payment inquiry response payload. content: application/json: schema: $ref: '#/components/schemas/PaymentInquiryResponse' /transactionStatus: post: operationId: transactionStatus tags: - Inquiry summary: Transaction status description: Returns the current status of a transaction by paymentToken or invoiceNo. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentInquiryRequest' responses: '200': description: Decoded transaction status response payload. content: application/json: schema: $ref: '#/components/schemas/PaymentInquiryResponse' components: schemas: PaymentInquiryResponse: type: object properties: merchantID: type: string invoiceNo: type: string amount: type: number currencyCode: type: string transactionDateTime: type: string agentCode: type: string channelCode: type: string approvalCode: type: string referenceNo: type: string accountNo: type: string description: Masked account / card number. cardToken: type: string installmentPeriod: type: integer interestRate: type: number fxAmount: type: number fxRate: type: number fxCurrencyCode: type: string transactionStatus: type: string respCode: type: string respDesc: type: string PaymentInquiryRequest: type: object required: - merchantID properties: merchantID: type: string invoiceNo: type: string paymentToken: type: string locale: type: string