openapi: 3.0.3 info: title: PAY.JP 3D Secure Customers 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: Customers paths: /customers: get: operationId: listCustomers tags: - Customers summary: List customers parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' responses: '200': $ref: '#/components/responses/List' post: operationId: createCustomer tags: - Customers summary: Create a customer requestBody: content: application/x-www-form-urlencoded: schema: type: object properties: email: type: string description: type: string card: type: string description: Token id to attach as default card metadata: type: object additionalProperties: true responses: '200': $ref: '#/components/responses/Customer' /customers/{id}: parameters: - $ref: '#/components/parameters/id' get: operationId: retrieveCustomer tags: - Customers summary: Retrieve a customer responses: '200': $ref: '#/components/responses/Customer' post: operationId: updateCustomer tags: - Customers summary: Update a customer responses: '200': $ref: '#/components/responses/Customer' delete: operationId: deleteCustomer tags: - Customers summary: Delete a customer responses: '200': $ref: '#/components/responses/Deleted' components: schemas: 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 Customer: type: object properties: id: type: string example: cus_xxxxxxxxxxxxxxxx object: type: string example: customer email: type: string nullable: true description: type: string nullable: true default_card: type: string nullable: true cards: $ref: '#/components/schemas/List' subscriptions: $ref: '#/components/schemas/List' created: type: integer livemode: type: boolean responses: Deleted: description: A deletion confirmation content: application/json: schema: type: object properties: id: type: string object: type: string example: charge deleted: type: boolean example: true Customer: description: A Customer object content: application/json: schema: $ref: '#/components/schemas/Customer' List: description: A paginated list object content: application/json: schema: $ref: '#/components/schemas/List' parameters: id: name: id in: path required: true schema: type: string offset: name: offset in: query schema: type: integer default: 0 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.