Adopets payment-request API

Create and manage adoption payment requests

OpenAPI Specification

adopets-payment-request-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Adopets External payment-request API
  version: '1.0'
  description: Adopets External API for organization (shelter/rescue) integrations. It lets an external partner system connect a staff user, then create and manage adoption-related payment requests and their transactions (adoption fees, licenses, products), including retrieving, changing, cancelling requests and refunding transactions. All operations are HTTP POST with a JSON body and use an organization API key (x-api-key) plus a per-session bearer token obtained from system-auth/connect. Derived from the provider's public Postman documentation; request/response shapes reflect the published examples.
  contact:
    name: Adopets
    url: https://developers.adopets.com/
servers:
- url: https://service.api.dev.adopets.app
  description: Documented (development) host from the public Postman collection
- url: https://service.api.adopets.app
  description: Production host (DNS-resolvable; inferred from the dev host naming, verify before use)
security:
- apiKeyAuth: []
  sessionBearer: []
tags:
- name: payment-request
  description: Create and manage adoption payment requests
paths:
  /organization/external/payment-request/create:
    post:
      tags:
      - payment-request
      operationId: createPaymentRequest
      summary: Create external payment request
      description: Creates an external payment request for an adoption transaction, including one or more line items (adoption fee, license, product) charged to an adopter.
      parameters:
      - $ref: '#/components/parameters/AcceptLanguage'
      security:
      - apiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequestCreate'
      responses:
        '200':
          description: OK — payment request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopePaymentRequest'
        default:
          description: Error envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopeError'
  /organization/external/payment-request/get:
    post:
      tags:
      - payment-request
      operationId: getPaymentRequest
      summary: Get external payment request
      description: Retrieves detailed information about an external payment request by its UUID.
      parameters:
      - $ref: '#/components/parameters/AcceptLanguage'
      security:
      - apiKeyAuth: []
        sessionBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UuidRef'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopePaymentRequest'
        default:
          description: Error envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopeError'
  /organization/external/payment-request/cancel:
    post:
      tags:
      - payment-request
      operationId: cancelPaymentRequest
      summary: Cancel external payment request
      description: Cancels an existing external payment request; its status transitions to CANCELLED.
      parameters:
      - $ref: '#/components/parameters/AcceptLanguage'
      security:
      - apiKeyAuth: []
        sessionBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UuidRef'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopePaymentRequest'
        default:
          description: Error envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopeError'
  /organization/external/payment-request/change:
    post:
      tags:
      - payment-request
      operationId: changePaymentRequestItems
      summary: Change payment request items
      description: Modifies items in an external payment request. The action key selects the operation (ADD, DELETE, UPDATE) and items is a map keyed by item hash.
      parameters:
      - $ref: '#/components/parameters/AcceptLanguage'
      security:
      - apiKeyAuth: []
        sessionBearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentRequestChange'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopePaymentRequest'
        default:
          description: Error envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvelopeError'
components:
  schemas:
    EnvelopePaymentRequest:
      allOf:
      - $ref: '#/components/schemas/Envelope'
      - type: object
        properties:
          data:
            $ref: '#/components/schemas/PaymentRequest'
    PaymentRequestItem:
      type: object
      properties:
        name:
          type: string
        base_amount:
          type: number
        taxes_amount:
          type: number
        adjust_amount:
          type: number
        charge_amount:
          type: number
        taxes_percentage:
          type: number
        adjust_reason:
          type:
          - string
          - 'null'
        type_key:
          type: string
          description: Item classification.
          enum:
          - ADOPTION_FEE
          - LICENSE
          - PRODUCT
        image:
          type:
          - string
          - 'null'
        is_required:
          type: boolean
        extra:
          type: object
    PaymentRequestCreate:
      type: object
      required:
      - adopter_email
      - type_key
      - items
      properties:
        adopter_email:
          type: string
          format: email
        adopter_first_name:
          type: string
        adopter_last_name:
          type: string
        type_key:
          type: string
          example: EXTERNAL_ADOPTION
        items:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRequestItem'
    PaymentRequest:
      type: object
      description: Adoption payment request resource (subset of published fields).
      properties:
        id:
          type: integer
        uuid:
          type: string
          format: uuid
        created_date:
          type: string
        modified_date:
          type: string
        deleted:
          type: boolean
        canonical:
          type: string
        shelter_id:
          type: integer
        shelter_uuid:
          type: string
          format: uuid
        type_key:
          type: string
        status_key:
          type: string
          description: e.g. PENDING
          CANCELLED: null
        currency:
          type: string
        code:
          type: string
        request_hash:
          type: string
          description: Server-computed request fingerprint
        gateway_type:
          type: string
        owner_type:
          type: string
        transaction_id:
          type:
          - integer
          - 'null'
        transaction_uuid:
          type:
          - string
          - 'null'
        contract_unsigned:
          type:
          - string
          - 'null'
        contract_signed:
          type:
          - string
          - 'null'
        adopter_user_id:
          type:
          - integer
          - 'null'
        adopter_user_uuid:
          type:
          - string
          - 'null'
        items_cart:
          type: array
          items:
            $ref: '#/components/schemas/PaymentRequestItem'
        items_purchased: {}
    EnvelopeError:
      allOf:
      - $ref: '#/components/schemas/Envelope'
      description: Error variant of the standard envelope (prefix 4xx/5xx, non-OK message).
    PaymentRequestChange:
      type: object
      required:
      - uuid
      - action
      - items
      properties:
        uuid:
          type: string
          format: uuid
        action:
          type: string
          enum:
          - ADD
          - DELETE
          - UPDATE
        items:
          type: object
          description: Map keyed by item hash; values are PaymentRequestItem objects.
          additionalProperties:
            $ref: '#/components/schemas/PaymentRequestItem'
    Envelope:
      type: object
      description: Standard Adopets response envelope.
      properties:
        prefix:
          type: string
          example: 2xx
        status:
          type: integer
          example: 200
        cached:
          type: boolean
        message:
          type: string
          example: OK
        data: {}
    UuidRef:
      type: object
      required:
      - uuid
      properties:
        uuid:
          type: string
          format: uuid
  parameters:
    AcceptLanguage:
      name: Accept-Language
      in: header
      required: false
      description: Preferred response language (e.g. en, pt-BR).
      schema:
        type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Organization API key issued by Adopets, sent on every request.
    sessionBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Per-session token (data.authorization) returned by system-auth/connect.
x-generated: '2026-07-17'
x-method: derived
x-source: https://developers.adopets.com/ (public Postman collection external-api-organization, publishedId 2sB34bK3Rk)