Understanding and Using PayID
What is PayID?
PayID is an open universal payment identifier that makes it easier for people to send and receive money in any currency across any payment network.
Who uses PayID?
Any business that sends and receives money can use PayID to give each of their customers a simple and human-readable ID that works across any payment network and makes payments easier with greater network reach. PayID is an open standard, so anyone can build implementations and extensions on top of PayID.See companies that use PayID
How is PayID compliant with international payment regulations?
Rather than prescribing a single solution, PayID is flexible and composable by design, which empowers transaction participants to implement their own policies. PayID provides a simple extension that helps businesses satisfy Travel Rule record-keeping required in jurisdictions globally, including both current FinCEN rules and FATF guidance, via native integration with the TRISA protocol. PayID can also be used to improve other compliance solutions for both users and services.Learn more about PayID and TRISA for Travel Rule
How can I get started with PayID?
Who developed this website?
The content on this website content was developed by Ripple, an early adopter of PayID, in collaboration with the Open Payments Coalition.
What payment networks does PayID support?
PayID supports any payment network or payment processor. Companies may add any payment network or payment processor to a PayID header to send and receive money.
How is PayID different from payment networks and processors?
PayID is an open standard for payment identifiers. This means that PayID is a naming convention for any payment ID — like a bank account number or a crypto address. Any payment network or payment processor can support PayID as an identifier.
What is Verifiable PayID?
In the default version of PayID, a receiver trusts their PayID provider to not swap the mapping between PayID to payment address. While this trust is sufficient with custodial wallets, it may not be appropriate in some circumstances, such as with a non-custodial wallet.
PayID for Wallets removes this layer of trust by cryptographically signing response messages with digital identity keys. As a result, PayID providers cannot swap out payment addresses without the sender or receiver finding out.
Is Verifiable PayID secure?
Yes, it is. Default PayID uses tried-and-true security technologies that secure all internet services. PayID for Wallets adds another layer of security by including digital identity keys that cryptographically sign response messages, so participants in PayID transactions do not need to trust any counterparty.
What does Verifiable PayID allow me to do?
Verifiable PayID adds several digital signature fields so you can link a PayID to one or more external digital identities, prove control of the payment rail address, and provide non-repudiable messaging.
Development and Implementation
How do I implement PayID?
PayID is a free-to-use, fully open standard with an open source implementation. Any company can start using PayID by integrating a PayID server into their existing infrastructure using the reference implementation on GitHub. The RippleX Dev Kit is the easiest way to enable “send to PayID” on your app.
What tech is PayID built on?
PayID is a web-based protocol built on a simple HTTP API secured by the standard web security stack, including TLS.
How does PayID handle security?
PayID leverages tried-and-true security technologies that secure all internet services, including e-commerce and digital banking services. Additionally, PayID messages include cryptographic certificates and signatures that ensure participants in PayID transactions do not need to trust any counterparty.
How do I deploy a PayID server?
PayID is designed by devs for devs. You can deploy a PayID server with just a few commands with existing web infrastructure, and then integrate it into an application or account system with just a few lines of code.
When you want to experiment with or deploy a PayID server, you have several options:
Where can I learn more about building with PayID?
For other questions on PayID development and deployment, visit the docs page.
How can I try out a PayID server?
The PayID Sandbox lets you experiment with PayID in a test environment. To use PayID Sandbox, log in with your GitHub account and follow the prompts. You can quickly set up a virtual test server, and then create users with simple PayID addresses that map to addresses on various payment networks.
How does the PayID protocol work?
With PayID, you can use human-readable addresses to transmit value in the currency of your choice. The PayID network allows participants to reach one another through a standardized address. For example, alice$wallet.com maps to the corresponding URL https://wallet.com/alice.
When you make an HTTP GET request that follows the PayID protocol, it resolves to an address on the underlying payment network. PayID is a payment-network-agnostic protocol, capable of sending payments to any payment network.
What is the PayID reference implementation?
The Open Payments Coalition provides a reference implementation of the PayID protocol. Anyone may use this reference implementation or make changes to it. Other implementations can be created, as long as they follow the PayID protocol.
The reference implementation uses TypeScript, a Node.js HTTP server, and a Postgres database. By default, the server hosts the PayID Protocol implementation, or Public API, on port 8080. It also hosts a second RESTful API on port 8081 for CRUD operations of PayIDs and associated addresses.
What are the requirements to run a PayID server?
To run a PayID server in a production environment, you should give each component of the stack a vCPU and 500 MB of RAM, and ensure there are at least two High-Availability replicas for each component.
Here's how the requirements would break down:
- 1 vCPU + 500 MB RAM per nginx replica (2x)
- 1 vCPU + 500 MB RAM per PayID Node.js server replica (2x)
- 1 vCPU + 500 MB RAM per Postgres replica (2x)