AppDirect Payment Methods API

The Payment Methods API from AppDirect — 5 operation(s) for payment methods.

OpenAPI Specification

appdirect-payment-methods-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: The Companies API allows developers to manage marketplace companies and their user memberships.
  title: Companies AI Embed Payment Methods API
  license:
    name: Apache License, Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  version: v296.0-SNAPSHOT
servers:
- url: https://marketplace.appdirect.com/api
- url: https://virtserver.swaggerhub.com
tags:
- name: Payment Methods
  x-displayName: Payment Methods
paths:
  /appMarket/v2/paymentMethodTokens:
    post:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: Tokenize payment methods
      description: 'Calls the payment gateway to validate the payment method, which is not yet associated with a user. A front-end should call this endpoint directly, not a back-end. Requires a public developer key (use the AD-Public-Developer-Key header), which you must obtain from AppDirect.

        '
      operationId: createPaymentMethodToken
      parameters:
      - in: header
        name: AD-Public-Developer-Key
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethodTokenRequest'
        description: The payment method to tokenize
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodTokenResponse'
              examples:
                response:
                  value:
                    id: pm_0838a859-dfa6-4863-aa38-042d50a9e69a
                    expiration: 2018-04-112T19:15:00Z
                    paymentMethod:
                      accountDisplay: '1111'
                      paymentMethodType: CARD
                      properties:
                        cardHolderName: John Smith
                        expirationMonth: '5'
                        expirationYear: '2019'
                        brand: VISA
                      billingAddress:
                        street1: 279 Prince St
                        city: Montreal
                        state: Quebec
                        country: CA
                        zip: H3C 2N4
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 400
                    code: VALIDATION_ERROR
                    message: Missing required parameters
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTokens \\\n  --header 'AD-Public-Developer-Key: SOME_STRING_VALUE' \\\n  --header 'content-type: application/json' \\\n  --data '{\"paymentMethodType\":\"CARD\",\"properties\":{\"number\":\"4111111111111111\",\"cardHolderName\":\"John Smith\",\"expirationMonth\":\"5\",\"expirationYear\":\"2019\",\"brand\":\"VISA\",\"securityCode\":\"123\"},\"billingAddress\":{\"street1\":\"279 Prince St\",\"city\":\"Montreal\",\"state\":\"Quebec\",\"country\":\"CA\",\"zip\":\"H3C 2N4\"}}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTokens',\n  headers: {\n    'content-type': 'application/json',\n    'AD-Public-Developer-Key': 'SOME_STRING_VALUE'\n  },\n  body: {\n    paymentMethodType: 'CARD',\n    properties: {\n      number: '4111111111111111',\n      cardHolderName: 'John Smith',\n      expirationMonth: '5',\n      expirationYear: '2019',\n      brand: 'VISA',\n      securityCode: '123'\n    },\n    billingAddress: {\n      street1: '279 Prince St',\n      city: 'Montreal',\n      state: 'Quebec',\n      country: 'CA',\n      zip: 'H3C 2N4'\n    }\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"paymentMethodType\\\":\\\"CARD\\\",\\\"properties\\\":{\\\"number\\\":\\\"4111111111111111\\\",\\\"cardHolderName\\\":\\\"John Smith\\\",\\\"expirationMonth\\\":\\\"5\\\",\\\"expirationYear\\\":\\\"2019\\\",\\\"brand\\\":\\\"VISA\\\",\\\"securityCode\\\":\\\"123\\\"},\\\"billingAddress\\\":{\\\"street1\\\":\\\"279 Prince St\\\",\\\"city\\\":\\\"Montreal\\\",\\\"state\\\":\\\"Quebec\\\",\\\"country\\\":\\\"CA\\\",\\\"zip\\\":\\\"H3C 2N4\\\"}}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTokens\")\n  .post(body)\n  .addHeader(\"content-type\", \"application/json\")\n  .addHeader(\"AD-Public-Developer-Key\", \"SOME_STRING_VALUE\")\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /appMarket/v2/paymentMethods:
    get:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: List payment methods for a user
      description: 'Returns all available payment methods for the specified user in the specified company.

        '
      operationId: getPaymentMethods
      parameters:
      - in: query
        name: ownerId
        description: ID of the user whose payment method you want to retrieve
        required: true
        schema:
          type: string
      - in: query
        name: companyId
        description: ID of the company of which the user is a member
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethodAppMarket'
              examples:
                response:
                  value:
                  - id: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
                    default: false
                    accountDisplay: '1111'
                    paymentMethodType: CARD
                    properties:
                      cardHolderName: John Smith
                      expirationMonth: '5'
                      expirationYear: '2019'
                      brand: VISA
                    billingAddress:
                      street1: 279 Prince St
                      city: Montreal
                      state: Quebec
                      country: CA
                      zip: H3C 2N4
                  - id: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
                    default: false
                    accountDisplay: '11111111'
                    paymentMethodType: BANKACCOUNT
                    properties:
                      accountNumber: '11111111'
                      routingNumber: '123456789'
                      accountType: CHECKING
                      isCorporateAccount: 'false'
                      firstName: John
                      lastname: Smith
                    billingAddress:
                      street1: 279 Prince St
                      city: Montreal
                      state: Quebec
                      country: CA
                      zip: H3C 2N4
                  - id: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
                    default: false
                    accountDisplay: '5555555555'
                    paymentMethodType: MYRANDOMTYPE
                    properties:
                      msisdn: '5555555555'
                    billingAddress:
                      street1: 279 Prince St
                      city: Montreal
                      state: Quebec
                      country: CA
                      zip: H3C 2N4
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
      x-appdirect-required-scopes:
        ROLE_PARTNER:
        - Allows access to read all marketplace data.
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods',\n  qs: {ownerId: 'SOME_STRING_VALUE', companyId: 'SOME_STRING_VALUE'}\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    post:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: Create payment methods using a token OR by providing all of the payment method data
      description: 'When using a token, the validated payment method is assigned to the current user on the current marketplace. When providing all of the payment method data, the payment gateway is called, and the payment method is validated and assigned to the user.

        '
      operationId: createPaymentMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethodRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodAppMarket'
              examples:
                response:
                  value:
                    id: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
                    accountDisplay: '1111'
                    default: true
                    paymentMethodType: CARD
                    properties:
                      cardHolderName: John Smith
                      expirationMonth: '5'
                      expirationYear: '2019'
                      brand: VISA
                    billingAddress:
                      street1: 279 Prince St
                      city: Montreal
                      state: Quebec
                      country: CA
                      zip: H3C 2N4
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 400
                    code: TOKEN_EXPIRED
                    message: Token expired.
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-appdirect-required-scopes:
        ROLE_PARTNER:
        - Allows access to create a payment method with a token.
        ROLE_USER:
        - Allows access to create a payment method with a full payload.
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods \\\n  --header 'content-type: application/json' \\\n  --data '{\"ownerId\":\"40e8af95-4caf-415a-96d9-7b023207b535\",\"companyId\":\"9c130291-cf29-4272-8005-a280b1e81388\",\"token\":\"pm_0838a859-dfa6-4863-aa38-042d50a9e69a\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods',\n  headers: {'content-type': 'application/json'},\n  body: {\n    ownerId: '40e8af95-4caf-415a-96d9-7b023207b535',\n    companyId: '9c130291-cf29-4272-8005-a280b1e81388',\n    token: 'pm_0838a859-dfa6-4863-aa38-042d50a9e69a'\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"ownerId\\\":\\\"40e8af95-4caf-415a-96d9-7b023207b535\\\",\\\"companyId\\\":\\\"9c130291-cf29-4272-8005-a280b1e81388\\\",\\\"token\\\":\\\"pm_0838a859-dfa6-4863-aa38-042d50a9e69a\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods\")\n  .post(body)\n  .addHeader(\"content-type\", \"application/json\")\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /appMarket/v2/paymentMethods/{paymentMethodId}:
    parameters:
    - in: path
      name: paymentMethodId
      description: The Payment Method ID
      required: true
      schema:
        type: string
    delete:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      x-appdirect-visible: false
      summary: Delete payment methods
      description: 'The payment method is deleted from the system and cannot be used anymore.

        '
      operationId: deletePaymentMethod
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request DELETE \\\n  --url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/%7BpaymentMethodId%7D"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'DELETE',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/%7BpaymentMethodId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/%7BpaymentMethodId%7D\")\n  .delete(null)\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /appMarket/v2/paymentMethods/defaults:
    get:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: List default payment methods
      description: 'Returns the default payment methods for the specified user in the specified company

        '
      operationId: getDefaultPaymentMethods
      parameters:
      - in: query
        name: ownerId
        description: ID of the user whose default payment method you want to retrieve
        required: true
        schema:
          type: string
      - in: query
        name: companyId
        description: ID of the company of which the user is a member
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DefaultPaymentMethod'
              examples:
                response:
                  value:
                  - paymentMethodId: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-appdirect-required-scopes:
        ROLE_USER:
        - Allows access to get default payment method(s).
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults',\n  qs: {ownerId: 'SOME_STRING_VALUE', companyId: 'SOME_STRING_VALUE'}\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults?ownerId=SOME_STRING_VALUE&companyId=SOME_STRING_VALUE\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
    post:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: Set default payment methods
      description: 'Sets a default payment method for the specified user

        '
      operationId: setDefaultPaymentMethod
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DefaultPaymentMethodRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DefaultPaymentMethod'
              examples:
                response:
                  value:
                  - paymentMethodId: e35c2f85-ef92-4a8f-89f0-45b62fb95fa7
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 400
                    code: VALIDATION_ERROR
                    message: Missing required parameters
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-appdirect-required-scopes:
        ROLE_USER:
        - Allows access to set default payment method(s).
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults \\\n  --header 'content-type: application/json' \\\n  --data '{\"ownerId\":\"40e8af95-4caf-415a-96d9-7b023207b535\",\"companyId\":\"9c130291-cf29-4272-8005-a280b1e81388\",\"paymentMethodId\":\"e35c2f85-ef92-4a8f-89f0-45b62fb95fa7\"}'"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'POST',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults',\n  headers: {'content-type': 'application/json'},\n  body: {\n    ownerId: '40e8af95-4caf-415a-96d9-7b023207b535',\n    companyId: '9c130291-cf29-4272-8005-a280b1e81388',\n    paymentMethodId: 'e35c2f85-ef92-4a8f-89f0-45b62fb95fa7'\n  },\n  json: true\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"ownerId\\\":\\\"40e8af95-4caf-415a-96d9-7b023207b535\\\",\\\"companyId\\\":\\\"9c130291-cf29-4272-8005-a280b1e81388\\\",\\\"paymentMethodId\\\":\\\"e35c2f85-ef92-4a8f-89f0-45b62fb95fa7\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethods/defaults\")\n  .post(body)\n  .addHeader(\"content-type\", \"application/json\")\n  .build();\n\nResponse response = client.newCall(request).execute();"
  /appMarket/v2/paymentMethodTypes:
    get:
      tags:
      - Payment Methods
      x-appdirect-api-stage: Early Access
      summary: Returns all supported Payment Method Types
      description: 'Returns all supported Payment Method Types. These are the only types of payment method that can be created.

        '
      operationId: getPaymentMethodTypes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethodType'
              examples:
                response:
                  value:
                  - paymentMethodType: CARD
                    addressNeeded: true
                    propertyDefinitions:
                    - name: cardHolderName
                      type: string
                      minLength: 0
                      maxLength: 255
                    - name: number
                      type: string
                      minLength: 0
                      maxLength: 255
                    - name: securityCode
                      type: string
                      minLength: 0
                      maxLength: 4
                      secret: true
                    - name: expirationMonth
                      type: number
                      minLength: 1
                      maxLength: 2
                    - name: expirationYear
                      type: number
                      minLength: 2
                      maxLength: 4
                    - name: brand
                      type: string
                      readOnly: true
                      minLength: 0
                      maxLength: 255
                      possibleValues:
                      - VISA
                      - MASTERCARD
                      - AMEX
                      - DINERS_CLUB
                      - DISCOVER
                      - JCB
                      - UNKNOWN
                      - GATEWAY
                  - paymentMethodType: BANKACCOUNT
                    addressNeeded: true
                    propertyDefinitions:
                    - name: routingNumber
                      type: string
                      minLength: 9
                      maxLength: 9
                      required: true
                    - name: accountNumber
                      type: string
                      minLength: 4
                      maxLength: 17
                      required: true
                    - name: accountType
                      type: string
                      required: true
                      possibleValues:
                      - CHECKING
                      - SAVINGS
                      - CORPORATE_CHECKING
                      - CORPORATE_SAVINGS
                    - name: isCorporateAccount
                      type: boolean
                      required: true
                    - name: companyName
                      type: string
                      minLength: 0
                      maxLength: 255
                      required: false
                    - name: firstName
                      type: string
                      maxLength: 255
                      required: true
                    - name: lastName
                      type: string
                      maxLength: 255
                      required: true
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 500
                    code: INTERNAL_SERVER_ERROR
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 502
                    code: BAD_GATEWAY
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    status: 504
                    code: GATEWAY_TIMEOUT
      x-codeSamples:
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTypes"
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTypes'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Java + Okhttp
        source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n  .url(\"https://marketplace.appdirect.com/api/appMarket/v2/paymentMethodTypes\")\n  .get()\n  .build();\n\nResponse response = client.newCall(request).execute();"
components:
  schemas:
    BasePaymentMethod:
      title: BasePaymentMethod
      description: Payment method base fields.
      properties:
        paymentMethodType:
          type: string
          description: The type of payment method, such as CARD, BANKACCOUNT, and so on.
        properties:
          type: object
          additionalProperties:
            type: string
          description: The properties of the payment method, as listed in [getPaymentMethodTypes](#returns-all-supported-payment-method-types)
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
      required:
      - paymentMethodType
      - properties
      - billingAddress
      example:
        paymentMethodType: CARD
        properties:
          number: '4111111111111111'
          cardHolderName: John Smith
          expirationMonth: '5'
          expirationYear: '2019'
          brand: VISA
        billingAddress:
          street1: 279 Prince St
          city: Montreal
          state: Quebec
          country: CA
          zip: H3C 2N4
    PaymentMethodTokenResponse:
      type: object
      title: PaymentMethodTokenResponse
      description: The tokenized Payment Method.
      properties:
        id:
          type: string
          maxLength: 255
          description: The token for the payment method.
        expiration:
          type: string
          format: date-time
          description: The date and time when the token expires
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethodForTokenization'
      required:
      - id
      - expiration
      - paymentMethod
      example:
        id: pm_0838a859-dfa6-4863-aa38-042d50a9e69a
        expiration: 2018-04-112T19:15:00Z
        paymentMethod:
          accountDisplay: '1111'
          paymentMethodType: CARD
          properties:
            cardHolderName: John Smith
            expirationMonth: '5'
            expirationYear: '2019'
            brand: VISA
          billingAddress:
            street1: 279 Prince St
            city: Montreal
            state: Quebec
            country: CA
            zip: H3C 2N4
    PropertyDefinition:
      type: object
      title: PropertyDefinition
      description: A field metadata definition
      properties:
        name:
          type: string
          descri

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appdirect/refs/heads/main/openapi/appdirect-payment-methods-api-openapi.yml