PAY.JP Charges API
The Charges API from PAY.JP — 6 operation(s) for charges.
The Charges API from PAY.JP — 6 operation(s) for charges.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/payjp-charges-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: PAY.JP 3D Secure Charges API
description: PAY.JP is an online payment service operated by PAY, Inc. (PAY株式会社) in Japan. The REST API creates charges, tokenizes cards, manages customers, runs subscriptions (定期課金), and reports transfers (入金) and balances in Japanese yen. Authentication is HTTP Basic with a secret key (sk_test_ / sk_live_) as the username and an empty password. All amounts are integer JPY.
termsOfService: https://pay.jp/terms
contact:
name: PAY.JP Support
url: https://help.pay.jp/
version: '1.0'
servers:
- url: https://api.pay.jp/v1
description: PAY.JP REST API (HTTPS only)
security:
- basicAuth: []
tags:
- name: Charges
paths:
/charges:
get:
operationId: listCharges
tags:
- Charges
summary: List charges
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
$ref: '#/components/responses/List'
post:
operationId: createCharge
tags:
- Charges
summary: Create a charge
description: Create a charge against a card token, a customer, or a stored card. Set capture=false to authorize only and capture later.
requestBody:
required: true
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
amount:
type: integer
description: Amount in JPY
minimum 50: null
currency:
type: string
enum:
- jpy
default: jpy
card:
type: string
description: A token id (tok_xxx) or card id
customer:
type: string
description: A customer id (cus_xxx)
capture:
type: boolean
default: true
description:
type: string
metadata:
type: object
additionalProperties: true
required:
- amount
- currency
responses:
'200':
$ref: '#/components/responses/Charge'
'400':
$ref: '#/components/responses/Error'
'402':
$ref: '#/components/responses/Error'
/charges/{id}:
parameters:
- $ref: '#/components/parameters/id'
get:
operationId: retrieveCharge
tags:
- Charges
summary: Retrieve a charge
responses:
'200':
$ref: '#/components/responses/Charge'
post:
operationId: updateCharge
tags:
- Charges
summary: Update a charge (description / metadata)
responses:
'200':
$ref: '#/components/responses/Charge'
/charges/{id}/refund:
parameters:
- $ref: '#/components/parameters/id'
post:
operationId: refundCharge
tags:
- Charges
summary: Refund a charge (full or partial)
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
amount:
type: integer
refund_reason:
type: string
responses:
'200':
$ref: '#/components/responses/Charge'
/charges/{id}/capture:
parameters:
- $ref: '#/components/parameters/id'
post:
operationId: captureCharge
tags:
- Charges
summary: Capture a previously authorized charge
responses:
'200':
$ref: '#/components/responses/Charge'
/charges/{id}/reauth:
parameters:
- $ref: '#/components/parameters/id'
post:
operationId: reauthCharge
tags:
- Charges
summary: Re-authorize an expiring authorization
responses:
'200':
$ref: '#/components/responses/Charge'
/charges/{id}/tds_finish:
parameters:
- $ref: '#/components/parameters/id'
post:
operationId: finishChargeThreeDSecure
tags:
- Charges
summary: Complete the 3D Secure flow for a charge
responses:
'200':
$ref: '#/components/responses/Charge'
components:
schemas:
Object:
type: object
properties:
id:
type: string
object:
type: string
livemode:
type: boolean
created:
type: integer
description: Unix timestamp
additionalProperties: true
Charge:
type: object
properties:
id:
type: string
example: ch_xxxxxxxxxxxxxxxx
object:
type: string
example: charge
amount:
type: integer
example: 3500
currency:
type: string
example: jpy
paid:
type: boolean
captured:
type: boolean
refunded:
type: boolean
amount_refunded:
type: integer
customer:
type:
- string
- 'null'
card:
$ref: '#/components/schemas/Card'
three_d_secure_status:
type:
- string
- 'null'
created:
type: integer
livemode:
type: boolean
metadata:
type: object
additionalProperties: true
Card:
type: object
properties:
id:
type: string
example: car_xxxxxxxxxxxxxxxx
object:
type: string
example: card
brand:
type: string
example: Visa
last4:
type: string
example: '4242'
exp_month:
type: integer
exp_year:
type: integer
name:
type:
- string
- 'null'
three_d_secure_status:
type:
- string
- 'null'
created:
type: integer
List:
type: object
properties:
object:
type: string
example: list
count:
type: integer
has_more:
type: boolean
url:
type: string
data:
type: array
items:
$ref: '#/components/schemas/Object'
Error:
type: object
properties:
error:
type: object
properties:
type:
type: string
enum:
- client_error
- card_error
- auth_error
- server_error
code:
type: string
example: over_capacity
message:
type: string
status:
type: integer
param:
type: string
responses:
Error:
description: An error response
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
List:
description: A paginated list object
content:
application/json:
schema:
$ref: '#/components/schemas/List'
Charge:
description: A Charge object
content:
application/json:
schema:
$ref: '#/components/schemas/Charge'
parameters:
offset:
name: offset
in: query
schema:
type: integer
default: 0
limit:
name: limit
in: query
schema:
type: integer
default: 10
maximum: 100
id:
name: id
in: path
required: true
schema:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
description: HTTP Basic authentication. Use the secret key (sk_test_ / sk_live_) as the username and leave the password empty.