Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: gateway Paypal API
version: '1.0'
servers:
- url: https://gateway.pmnts-sandbox.io/v1.0
security:
- sec0: []
tags:
- name: Paypal
paths:
/paypal/orders:
get:
summary: List orders
description: ''
operationId: paypal-list-orders
parameters:
- name: Content-Type
in: header
schema:
type: string
default: application/json
- name: offset
in: query
description: Offset to start
schema:
type: integer
format: int32
default: 1
- name: limit
in: query
description: Number of records in the response
schema:
type: integer
format: int32
default: 10
- name: from
in: query
description: Lower bound for the time at which the record was created
schema:
type: string
format: date
- name: to
in: query
description: Upper bound for the time at which the record was created
schema:
type: string
format: date
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": [\n {\n \"id\": \"071-PPO-T2OBQZZEDUSYHW3M\",\n \"reference\": \"ref_12345_486873\",\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"successful\": true,\n \"message\": \"Approved\",\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPO-T2OBQZZEDUSYHW3M\",\n \"transaction_date\": \"2020-08-28T15:39:16+10:00\",\n \"intent\": \"Capture\",\n \"paypal_reference\": \"ref_12345_486873\",\n \"invoice_id\": \"ref_12345_486873\",\n \"billing_agreement_id\": null,\n \"status\": \"Completed\",\n \"payment_source\": null,\n \"authorized_amount\": 0.0,\n \"captured_amount\": 120.0,\n \"refunded_amount\": 0.0,\n \"authorizations\": [],\n \"captures\": [\n {\n \"id\": \"071-PPC-VJ9ZTJP55GXSVNC6\",\n \"status\": \"Completed\",\n \"captured\": true,\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"successful\": true,\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPC-VJ9ZTJP55GXSVNC6\",\n \"transaction_date\": \"2020-08-28T15:39:16+10:00\",\n \"invoice_id\": \"ref_12345_486873\",\n \"paypal_fee\": 318,\n \"seller_receivable_net_amount\": 11682,\n \"note_to_payer\": \"Sporting Goods\",\n \"is_final_capture\": true\n }\n ],\n \"refunds\": [],\n \"payer\": {\n \"id\": \"SNGQ72BA8UA4W\",\n \"email\": \"test-buyer@example.com\",\n \"address\": { \"country_code\": \"AU\" }\n },\n \"payee\": {\n \"id\": \"GE53HS375QX4J\",\n \"email\": \"test-seller@example.com\"\n }\n }\n ],\n \"errors\": [],\n \"records\": 2,\n \"total_records\": 10,\n \"page\": 1,\n \"total_pages\": 1 \n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: array
items:
type: object
properties:
id:
type: string
example: 071-PPO-T2OBQZZEDUSYHW3M
reference:
type: string
example: ref_12345_486873
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
successful:
type: boolean
example: true
default: true
message:
type: string
example: Approved
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPO-T2OBQZZEDUSYHW3M
transaction_date:
type: string
example: '2020-08-28T15:39:16+10:00'
intent:
type: string
example: Capture
paypal_reference:
type: string
example: ref_12345_486873
invoice_id:
type: string
example: ref_12345_486873
billing_agreement_id: {}
status:
type: string
example: Completed
payment_source: {}
authorized_amount:
type: integer
example: 0
default: 0
captured_amount:
type: integer
example: 120
default: 0
refunded_amount:
type: integer
example: 0
default: 0
authorizations:
type: array
captures:
type: array
items:
type: object
properties:
id:
type: string
example: 071-PPC-VJ9ZTJP55GXSVNC6
status:
type: string
example: Completed
captured:
type: boolean
example: true
default: true
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
successful:
type: boolean
example: true
default: true
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPC-VJ9ZTJP55GXSVNC6
transaction_date:
type: string
example: '2020-08-28T15:39:16+10:00'
invoice_id:
type: string
example: ref_12345_486873
paypal_fee:
type: integer
example: 318
default: 0
seller_receivable_net_amount:
type: integer
example: 11682
default: 0
note_to_payer:
type: string
example: Sporting Goods
is_final_capture:
type: boolean
example: true
default: true
refunds:
type: array
payer:
type: object
properties:
id:
type: string
example: SNGQ72BA8UA4W
email:
type: string
example: test-buyer@example.com
address:
type: object
properties:
country_code:
type: string
example: AU
payee:
type: object
properties:
id:
type: string
example: GE53HS375QX4J
email:
type: string
example: test-seller@example.com
errors:
type: array
records:
type: integer
example: 2
default: 0
total_records:
type: integer
example: 10
default: 0
page:
type: integer
example: 1
default: 0
total_pages:
type: integer
example: 1
default: 0
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/paypal/orders -u TEST:TEST
- language: ruby
code: FatZebra::Paypal::Order.search
samples-languages:
- curl
- ruby
tags:
- Paypal
/paypal/orders/{id}:
get:
summary: Fetch an order
description: ''
operationId: paypal-fetch-an-order
parameters:
- name: id
in: path
description: The ID of the order.
schema:
type: string
required: true
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-PPO-T2OBQZZEDUSYHW3M\",\n \"reference\": \"ref_12345_486873\",\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"successful\": true,\n \"message\": \"Approved\",\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPO-T2OBQZZEDUSYHW3M\",\n \"transaction_date\": \"2020-08-28T15:39:16+10:00\",\n \"intent\": \"Capture\",\n \"paypal_reference\": \"ref_12345_486873\",\n \"invoice_id\": \"ref_12345_486873\",\n \"billing_agreement_id\": null,\n \"status\": \"Completed\",\n \"payment_source\": null,\n \"authorized_amount\": 0.0,\n \"captured_amount\": 120.0,\n \"refunded_amount\": 0.0,\n \"authorizations\": [],\n \"captures\": [\n {\n \"id\": \"071-PPC-VJ9ZTJP55GXSVNC6\",\n \"status\": \"Completed\",\n \"captured\": true,\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"successful\": true,\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPC-VJ9ZTJP55GXSVNC6\",\n \"transaction_date\": \"2020-08-28T15:39:16+10:00\",\n \"invoice_id\": \"ref_12345_486873\",\n \"paypal_fee\": 318,\n \"seller_receivable_net_amount\": 11682,\n \"note_to_payer\": \"Sporting Goods\",\n \"is_final_capture\": true\n }\n ],\n \"refunds\": [],\n \"payer\": {\n \"id\": \"SNGQ72BA8UA4W\",\n \"email\": \"test-buyer@example.com\",\n \"address\": { \"country_code\": \"AU\" }\n },\n \"payee\": {\n \"id\": \"GE53HS375QX4J\",\n \"email\": \"test-seller@example.com\"\n }\n },\n \"errors\": []\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-PPO-T2OBQZZEDUSYHW3M
reference:
type: string
example: ref_12345_486873
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
successful:
type: boolean
example: true
default: true
message:
type: string
example: Approved
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPO-T2OBQZZEDUSYHW3M
transaction_date:
type: string
example: '2020-08-28T15:39:16+10:00'
intent:
type: string
example: Capture
paypal_reference:
type: string
example: ref_12345_486873
invoice_id:
type: string
example: ref_12345_486873
billing_agreement_id: {}
status:
type: string
example: Completed
payment_source: {}
authorized_amount:
type: integer
example: 0
default: 0
captured_amount:
type: integer
example: 120
default: 0
refunded_amount:
type: integer
example: 0
default: 0
authorizations:
type: array
captures:
type: array
items:
type: object
properties:
id:
type: string
example: 071-PPC-VJ9ZTJP55GXSVNC6
status:
type: string
example: Completed
captured:
type: boolean
example: true
default: true
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
successful:
type: boolean
example: true
default: true
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPC-VJ9ZTJP55GXSVNC6
transaction_date:
type: string
example: '2020-08-28T15:39:16+10:00'
invoice_id:
type: string
example: ref_12345_486873
paypal_fee:
type: integer
example: 318
default: 0
seller_receivable_net_amount:
type: integer
example: 11682
default: 0
note_to_payer:
type: string
example: Sporting Goods
is_final_capture:
type: boolean
example: true
default: true
refunds:
type: array
payer:
type: object
properties:
id:
type: string
example: SNGQ72BA8UA4W
email:
type: string
example: test-buyer@example.com
address:
type: object
properties:
country_code:
type: string
example: AU
payee:
type: object
properties:
id:
type: string
example: GE53HS375QX4J
email:
type: string
example: test-seller@example.com
errors:
type: array
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": {},\n \"errors\": [\"Could not find Order\"]\n}\n"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response:
type: object
properties: {}
errors:
type: array
items:
type: string
example: Could not find Order
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/paypal/orders/071-PPO-39KSADSS7YTA8CHM -u TEST:TEST
- language: ruby
code: FatZebra::Paypal::Order.find('071-PPO-39KSADSS7YTA8CHM')
samples-languages:
- curl
- ruby
tags:
- Paypal
/paypal/authorizations:
get:
summary: List authorizations
description: ''
operationId: paypal-list-authorizations
parameters:
- name: Content-Type
in: header
schema:
type: string
default: application/json
- name: offset
in: query
description: Offset to start
schema:
type: integer
format: int32
default: 1
- name: limit
in: query
description: Number of records in the response
schema:
type: integer
format: int32
default: 10
- name: from
in: query
description: Lower bound for the time at which the record was created
schema:
type: string
format: date
- name: to
in: query
description: Upper bound for the time at which the record was created
schema:
type: string
format: date
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": [\n {\n \"id\": \"071-PPA-0R71TAD4EYV0NPRA\",\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"captured_amount\": 0,\n \"successful\": true,\n \"captured\": false,\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPA-0R71TAD4EYV0NPRA\",\n \"transaction_date\": \"2020-08-21T09:33:14+10:00\",\n \"message\": \"Approved\",\n \"status\": \"Created\",\n \"reference\": \"ref_12345_603951\",\n \"refunded_amount\": 0,\n \"balance_available_for_capture\": 13800,\n \"order\": \"071-PPO-SLNVOYHCWTEFWGB6\"\n }\n ],\n \"errors\": [],\n \"records\": 2,\n \"total_records\": 10,\n \"page\": 1,\n \"total_pages\": 1 \n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: array
items:
type: object
properties:
id:
type: string
example: 071-PPA-0R71TAD4EYV0NPRA
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
captured_amount:
type: integer
example: 0
default: 0
successful:
type: boolean
example: true
default: true
captured:
type: boolean
example: false
default: true
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPA-0R71TAD4EYV0NPRA
transaction_date:
type: string
example: '2020-08-21T09:33:14+10:00'
message:
type: string
example: Approved
status:
type: string
example: Created
reference:
type: string
example: ref_12345_603951
refunded_amount:
type: integer
example: 0
default: 0
balance_available_for_capture:
type: integer
example: 13800
default: 0
order:
type: string
example: 071-PPO-SLNVOYHCWTEFWGB6
errors:
type: array
records:
type: integer
example: 2
default: 0
total_records:
type: integer
example: 10
default: 0
page:
type: integer
example: 1
default: 0
total_pages:
type: integer
example: 1
default: 0
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/paypal/authorizations -u TEST:TEST
- language: ruby
code: FatZebra::Paypal::Authorization.search
samples-languages:
- curl
- ruby
tags:
- Paypal
/paypal/authorizations/{id}:
get:
summary: Fetch an authorization
description: ''
operationId: paypal-fetch-an-authorization
parameters:
- name: id
in: path
description: The ID of the authorization.
schema:
type: string
required: true
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-PPA-0R71TAD4EYV0NPRA\",\n \"amount\": 12000,\n \"decimal_amount\": 120.0,\n \"captured_amount\": 0,\n \"successful\": true,\n \"captured\": false,\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPA-0R71TAD4EYV0NPRA\",\n \"transaction_date\": \"2020-08-21T09:33:14+10:00\",\n \"message\": \"Approved\",\n \"status\": \"Created\",\n \"reference\": \"ref_12345_603951\",\n \"refunded_amount\": 0,\n \"balance_available_for_capture\": 13800,\n \"order\": \"071-PPO-SLNVOYHCWTEFWGB6\"\n },\n \"errors\": []\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-PPA-0R71TAD4EYV0NPRA
amount:
type: integer
example: 12000
default: 0
decimal_amount:
type: integer
example: 120
default: 0
captured_amount:
type: integer
example: 0
default: 0
successful:
type: boolean
example: true
default: true
captured:
type: boolean
example: false
default: true
currency:
type: string
example: AUD
transaction_id:
type: string
example: 071-PPA-0R71TAD4EYV0NPRA
transaction_date:
type: string
example: '2020-08-21T09:33:14+10:00'
message:
type: string
example: Approved
status:
type: string
example: Created
reference:
type: string
example: ref_12345_603951
refunded_amount:
type: integer
example: 0
default: 0
balance_available_for_capture:
type: integer
example: 13800
default: 0
order:
type: string
example: 071-PPO-SLNVOYHCWTEFWGB6
errors:
type: array
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": false,\n \"response\": {},\n \"errors\": [\"Could not find Authorization\"]\n}\n"
schema:
type: object
properties:
successful:
type: boolean
example: false
default: true
response:
type: object
properties: {}
errors:
type: array
items:
type: string
example: Could not find Authorization
deprecated: false
x-readme:
code-samples:
- language: curl
code: curl https://gateway.pmnts-sandbox.io/v1.0/paypal/auhtorizations/071-PPA-39KSADSS7YTA8CHM -u TEST:TEST
- language: ruby
code: FatZebra::Paypal::Authorization.find('071-PPA-39KSADSS7YTA8CHM')
samples-languages:
- curl
- ruby
tags:
- Paypal
/paypal/authorizations/{id}/capture:
post:
summary: Capture an authorization
description: ''
operationId: paypal-capture-an-authorization
parameters:
- name: id
in: path
description: ID of the authorization to be captured.
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
amount:
type: integer
description: Amount to be refunded in the smallest unit of the currency.
format: int32
note_to_payer:
type: string
description: A note to be attached with the capture. Will be visible to the customer.
final_capture:
type: boolean
description: True if this is the final capture on this authorization. False if more captures are going to be made. When net-captured-amount on the authorization touches or exceeds the total_authorized_amount, final_capture is automatically set to True. Merchant can capture up to 115% of the authorized_amount.
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"successful\": true,\n \"response\": {\n \"id\": \"071-PPC-9JNQNPWCD3FSOHDG\",\n \"amount\": 199,\n \"decimal_amount\": 1.99,\n \"captured_amount\": 199,\n \"successful\": true,\n \"message\": \"Approved\",\n \"reference\": \"ref_12345_612515\",\n \"captured\": true,\n \"currency\": \"AUD\",\n \"transaction_id\": \"071-PPC-9JNQNPWCD3FSOHDG\",\n \"transaction_date\": \"2020-08-31T08:30:30+10:00\",\n \"status\": \"Completed\",\n \"invoice_id\": \"071-PPC-9JNQNPWCD3FSOHDG\",\n \"paypal_fee\": 35,\n \"seller_receivable_net_amount\": 164,\n \"note_to_payer\": \"$1.99 partial capture\",\n \"is_final_capture\": false,\n \"refunded_amount\": 0,\n \"balance_available_for_refund\": 199,\n \"balance_available_for_capture\": 13601,\n \"authorization\": \"071-PPA-6CQGSNJFKJ1UQF9J\",\n \"order\": \"071-PPO-ZVCVMDEFCBX86RX2\"\n },\n \"errors\": [],\n \"test\": true\n}"
schema:
type: object
properties:
successful:
type: boolean
example: true
default: true
response:
type: object
properties:
id:
type: string
example: 071-PPC-9JNQNPWCD3FSOHDG
amount:
type: integer
example: 199
default: 0
decimal_amount:
type: number
example: 1.99
# --- truncated at 32 KB (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fat-zebra/refs/heads/main/openapi/fat-zebra-paypal-api-openapi.yml