Payments
Connect PayPal
Your application calls one EchoRelay URL. When PayPal changes its API, you update the mapping, not your application.
How PayPal signs requests
OAuth 2.0 client credentials: the client ID and secret go as basic auth to the PayPal token endpoint, which exchanges them for an access token. Every REST call carries that token.
Can you connect it today?
Yes. Add an OAuth client-credentials credential with the PayPal token URL, sending the client ID and secret as basic auth.
A sample mapping
Your application sends the first request below. The mapping turns it into the body of POST /v2/checkout/orders, shown second.
Your request
{
"units": [
{
"ref": "1042",
"total": "24.95",
"currency": "EUR"
}
]
}
What PayPal receives
{
"intent": "CAPTURE",
"purchase_units": [
{
"reference_id": "1042",
"amount": {
"currency_code": "EUR",
"value": "24.95"
}
}
]
}
The mapping
{
"$schema": "https://schemas.echorelay.dev/transform/mapping/v1.json",
"root": {
"type": "object",
"id": "root",
"properties": {
"intent": {
"type": "constant",
"id": "intent",
"value": "CAPTURE"
},
"purchase_units": {
"type": "arrayMap",
"id": "units",
"source": {
"type": "field",
"id": "unit-list",
"path": "units"
},
"element": {
"type": "object",
"id": "unit",
"properties": {
"reference_id": {
"type": "field",
"id": "ref",
"path": "ref"
},
"amount": {
"type": "object",
"id": "amount",
"properties": {
"currency_code": {
"type": "field",
"id": "currency",
"path": "currency"
},
"value": {
"type": "field",
"id": "value",
"path": "total"
}
}
}
}
}
}
}
}
}
The grammar, the answer mapping and the dry run are in the mapping docs.
What you bring
This is not a ready-made connector. You bring a sample request or PayPal’s OpenAPI document, you or your agent write the mapping, and we run the integration you define.
PayPal facts on this page were read 2026-10-29 from PayPal REST API authentication, PayPal Orders v2 API reference. Another service? Check it here.
Connect everything. Deploy nothing.
No credit card required.