PAY.JP Charges API

The Charges API from PAY.JP — 6 operation(s) for charges.

Business capability
Payment Collection & Dunning BC-4250.40

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /charges List charges · List charges #
Ask an LLM
“How do I see all the payments I've charged?”
“Can I page through my charges a few at a time?”
Tell an agent
List my charges.
Show {limit} charges starting at offset {offset}.
POST /charges Charge a card or customer · Create a charge #
Ask an LLM
“How do I charge a customer's card in yen with PAY.JP?”
“Can I authorize a payment now and capture it later?”
Tell an agent
Charge {amount} {currency} to card token {card}.
Charge customer {customer} {amount} {currency} for {description}.
GET /charges/{id} Get a charge · Retrieve a charge #
Ask an LLM
“How do I check the details of one charge?”
“Did a particular charge succeed or get refunded?”
Tell an agent
Show charge {id}.
Get the status of charge {id}.
POST /charges/{id} Edit a charge's description or metadata · Update a charge (description / metadata) #
Ask an LLM
“Can I change the description on a charge after it was created?”
“How do I add metadata to an existing charge?”
Tell an agent
Update the description of charge {id}.
Add metadata to existing charge {id}.
POST /charges/{id}/refund Refund a charge · Refund a charge (full or partial) #
Ask an LLM
“How do I refund a payment?”
“Can I refund only part of a charge instead of the whole amount?”
Tell an agent destructive · confirm first
Refund charge {id} in full.
Refund {amount} of charge {id}.
POST /charges/{id}/capture Capture an authorized charge · Capture a previously authorized charge #
Ask an LLM
“How do I collect the money on a charge I only authorized?”
“What do I call to capture a held payment?”
Tell an agent
Capture authorized charge {id}.
Collect the funds on held charge {id}.
POST /charges/{id}/reauth Re-authorize an expiring charge · Re-authorize an expiring authorization #
Ask an LLM
“My authorization hold is about to expire — can I extend it?”
“How do I renew an uncaptured charge's authorization?”
Tell an agent
Re-authorize charge {id} before its hold expires.
Renew the authorization on uncaptured charge {id}.
POST /charges/{id}/tds_finish Finish 3D Secure authentication for a charge · Complete the 3D Secure flow for a charge #
Ask an LLM
“After the cardholder passes 3D Secure, how do I complete the charge that was waiting on it?”
“What call finalizes a charge once its 3D Secure challenge is done?”
Tell an agent
Finish the 3D Secure flow for charge {id}.
Complete 3D Secure on charge {id} so the payment can proceed.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/payjp:payjp-charges-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

payjp-charges-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PAY.JP 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:
  responses:
    Error:
      description: An error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Charge:
      description: A Charge object
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Charge'
    List:
      description: A paginated list object
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/List'
  schemas:
    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
    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
    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
    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'
    Object:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        livemode:
          type: boolean
        created:
          type: integer
          description: Unix timestamp
      additionalProperties: true
  parameters:
    offset:
      name: offset
      in: query
      schema:
        type: integer
        default: 0
    id:
      name: id
      in: path
      required: true
      schema:
        type: string
    limit:
      name: limit
      in: query
      schema:
        type: integer
        default: 10
        maximum: 100
  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.