The ACK-Pay protocol defines several key components that interact to facilitate payments:
Client Applications and Client Agents: Software initiating service requests or payments on behalf of end-users or autonomous processes. In the Client-Initiated sequence, they are responsible for constructing the Payment Request.
Servers, Server Agents and Service Providers: Entities providing resources or services that may require payment and need to verify payment receipts before granting access or fulfilling requests. In the Server-Initiated sequence, they are responsible for generating and sending the Payment Request.
Payment Service: A crucial intermediary responsible for managing payment execution. Its functions can include:
Routing payments across different networks.
Assisting Clients in constructing Payment Requests (in Client-Initiated sequences).
Handling currency/asset conversions.
Interacting with underlying Settlement Networks.
Performing risk assessments and compliance verification (potentially using ACK-ID).
Managing human approval workflows.
Coordinating with Receipt Services.
Abstracting diverse payment methods, including traditional rails (ACH, card networks via APIs like Visa Intelligent Commerce or Mastercard Agent Pay), and blockchain networks.
Optionally acting as a bridge to other protocols by exposing compatible interfaces (e.g., functioning as an x402 Facilitator for servers using that approach).
Receipt Service: Generates and validates cryptographically verifiable receipts (typically as Verifiable Credentials), ensuring:
Secure credential issuance based on confirmed payment settlement.
Management of receipt status (e.g., validity, revocation).
Validation of presented receipts. (Note: The Payment Service and Receipt Service roles may sometimes be fulfilled by the same entity).
Settlement Networks: The underlying financial infrastructures that execute value transfer (e.g., traditional banking systems, card networks, blockchain networks).
These roles define the actors within the ACK-Pay ecosystem that orchestrate payment flows. The next section will explore how these actors collaborate with one another.
Component Interactions with Client-Executed Payments
The following component activity diagram illustrates a simple flow in which a Client Agent executes a payment directly via an embedded Payment Service.