openapi: 3.0.3 info: title: 2C2P Payment Gateway API (PGW v4.3) Do Payment Tokens 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: Tokens description: Card token and installment plan information. paths: /cardTokenInfo: post: operationId: cardTokenInfo tags: - Tokens summary: Card token info description: Retrieves information about a stored card token for recurring / returning-buyer use. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CardTokenInfoRequest' responses: '200': description: Decoded card token info response payload. content: application/json: schema: $ref: '#/components/schemas/GenericResponse' /cardInstallmentPlanInfo: post: operationId: cardInstallmentPlanInfo tags: - Tokens summary: Card installment plan info description: Returns the available installment plans for a card / merchant. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PaymentInquiryRequest' responses: '200': description: Decoded installment plan info response payload. content: application/json: schema: $ref: '#/components/schemas/GenericResponse' components: schemas: PaymentInquiryRequest: type: object required: - merchantID properties: merchantID: type: string invoiceNo: type: string paymentToken: type: string locale: type: string CardTokenInfoRequest: type: object required: - merchantID - cardToken properties: merchantID: type: string cardToken: type: string locale: type: string GenericResponse: type: object properties: respCode: type: string respDesc: type: string additionalProperties: true