Upward Financial payments API

The payments API from Upward Financial — 12 operation(s) for payments.

OpenAPI Specification

upward-financial-payments-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: API Reference accounts payments API
  version: 1.0.0
servers:
- url: https://host.com
  description: Default
tags:
- name: payments
paths:
  /v2/payments/ach/:
    post:
      operationId: create-create-ach-request
      summary: Create Create ACH Request
      description: Create an ACH request to move funds into or out of a DDA inside of CRB
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateACHRequest'
    get:
      operationId: list-ach-responses
      summary: List ACH Responses
      description: Get the ach payment information
      tags:
      - payments
      parameters:
      - name: page
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: search
        in: query
        description: A search term.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_listACHResponses_Response_200'
  /v2/payments/ach/{external_id}/:
    get:
      operationId: retrieve-ach-response
      summary: Retrieve ACH Response
      description: Get the ach payment information
      tags:
      - payments
      parameters:
      - name: external_id
        in: path
        description: ''
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ACHResponse'
    delete:
      operationId: cancel-ach-payment
      summary: Cancel ACH Payment
      description: Cancel the ACH payment.
      tags:
      - payments
      parameters:
      - name: external_id
        in: path
        description: ''
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_Cancel ACH Payment_Response_204'
  /v2/payments/transfer/:
    post:
      operationId: create-transfer
      summary: Create Transfer
      description: Xpay transfer between CRB users
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransferResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransferRequest'
    get:
      operationId: get-all-transfers
      summary: Get All Transfers
      description: Get transfer information
      tags:
      - payments
      parameters:
      - name: limit
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: offset
        in: query
        description: The initial index from which to return the results.
        required: false
        schema:
          type: integer
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_getAllTransfers_Response_200'
  /v2/payments/transfer/{external_id}/:
    get:
      operationId: get-transfer
      summary: Get Transfer
      description: Get transfer information
      tags:
      - payments
      parameters:
      - name: external_id
        in: path
        description: ''
        required: true
        schema:
          type: string
      - name: search
        in: query
        description: A search term.
        required: false
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransferResponse'
  /v2/payments/instant/:
    post:
      operationId: create-create-instant-payment-request
      summary: Create Create Instant Payment Request
      description: Create an Instant Payment request to move funds from an DDA to an external bank account
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInstantPaymentResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInstantPaymentRequest'
    get:
      operationId: list-get-instant-payment-responses
      summary: List Get Instant Payment Responses
      description: Get the instant payment information
      tags:
      - payments
      parameters:
      - name: page
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_listGetInstantPaymentResponses_Response_200'
  /v2/payments/instant/{external_id}/:
    get:
      operationId: retrieve-get-instant-payment-response
      summary: Retrieve Get Instant Payment Response
      description: Get the instant payment information
      tags:
      - payments
      parameters:
      - name: external_id
        in: path
        description: ''
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInstantPaymentResponse'
  /v2/payments/aft/:
    post:
      operationId: create-aft-payment-request
      summary: Create AFT Payment Request
      description: Create an AFT (Account Funding Transaction) request to pull funds from a consumer's external payment card
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAFTResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAFTRequest'
    get:
      operationId: list-aft-payment-requests
      summary: List AFT Payment Requests
      description: Get a paginated list of AFT payment requests
      tags:
      - payments
      parameters:
      - name: page
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_listAFTPaymentRequests_Response_200'
  /v2/payments/aft/{id}/:
    get:
      operationId: retrieve-aft-payment-request
      summary: Retrieve AFT Payment Request
      description: Get the AFT payment information
      tags:
      - payments
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAFTResponse'
  /v2/payments/oct/:
    post:
      operationId: create-oct-payment-request
      summary: Create OCT Payment Request
      description: Create an OCT (Original Credit Transaction) request to push funds directly to a consumer's payment card
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOCTResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOCTRequest'
    get:
      operationId: list-oct-payment-requests
      summary: List OCT Payment Requests
      description: Get a paginated list of OCT payment requests
      tags:
      - payments
      parameters:
      - name: page
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_listOCTPaymentRequests_Response_200'
  /v2/payments/oct/{id}/:
    get:
      operationId: retrieve-oct-payment-request
      summary: Retrieve OCT Payment Request
      description: Get the OCT payment information
      tags:
      - payments
      parameters:
      - name: id
        in: path
        description: ''
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetOCTResponse'
  /v2/payments/p2p/:
    post:
      operationId: create-peer-to-peer-payment-request
      summary: Create Peer To Peer Payment Request
      description: 'Initiate a peer-to-peer transfer between two consumers on the authenticated partner''s network. Both accounts must be active secured-card accounts. Returns `pending_review` instead of an error when the sender exceeds the daily velocity limit (2 transfers per 24 hours).

        '
      tags:
      - payments
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Payment created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateP2PPaymentResponse'
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePeerToPeerPaymentRequestRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateP2PPaymentRequest'
    get:
      operationId: list-peer-to-peer-payment-responses
      summary: List Peer To Peer Payment Responses
      description: Returns a paginated list of all P2P payments across every consumer on the authenticated partner's network.
      tags:
      - payments
      parameters:
      - name: page
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payments_listPeerToPeerPaymentResponses_Response_200'
  /v2/payments/p2p/{id}/:
    get:
      operationId: retrieve-peer-to-peer-payment-response
      summary: Retrieve Peer To Peer Payment Response
      description: 'Retrieve a single P2P payment by its ID. Returns 404 for payments that do not belong to the authenticated partner.

        '
      tags:
      - payments
      parameters:
      - name: id
        in: path
        description: The unique ID of the P2P payment (returned at creation time).
        required: true
        schema:
          type: string
          format: uuid
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetP2PPaymentResponse'
        '404':
          description: Payment not found or does not belong to this partner
          content:
            application/json:
              schema:
                description: Any type
components:
  schemas:
    Payments_listAFTPaymentRequests_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/GetAFTResponse'
      required:
      - count
      - results
      title: Payments_listAFTPaymentRequests_Response_200
    GetP2PPaymentResponseStatus:
      type: string
      enum:
      - pending
      - posted
      - pending_review
      - error
      - canceled
      - returned
      description: Current payment status.
      title: GetP2PPaymentResponseStatus
    CreateTransferRequestStatus:
      type: string
      enum:
      - canceled
      - error
      - pending
      - posted
      - rejected
      - returned
      default: posted
      title: CreateTransferRequestStatus
    Payments_listPeerToPeerPaymentResponses_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/GetP2PPaymentResponse'
      required:
      - count
      - results
      title: Payments_listPeerToPeerPaymentResponses_Response_200
    CreateP2PPaymentResponseStatus:
      type: string
      enum:
      - pending
      - posted
      - pending_review
      - error
      description: 'Current payment status. `pending_review` means the payment is held for compliance review (velocity limit exceeded) and will be processed once approved.

        '
      title: CreateP2PPaymentResponseStatus
    CreateTransferRequest:
      type: object
      properties:
        originating_account_id:
          type: string
          format: uuid
        receiving_account_id:
          type: string
          format: uuid
        amount:
          type: number
          format: double
        description:
          type: string
        status:
          $ref: '#/components/schemas/CreateTransferRequestStatus'
        memo:
          type: string
          default: card.fund_account | card.advance | card.advance.payback
      required:
      - originating_account_id
      - receiving_account_id
      - amount
      - memo
      title: CreateTransferRequest
    GetP2PPaymentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for this P2P payment.
        originating_account_id:
          type: string
          description: External ID of the sending account.
        receiving_account_id:
          type: string
          description: External ID of the receiving account.
        amount:
          type: number
          format: double
          description: Transfer amount in USD.
        status:
          $ref: '#/components/schemas/GetP2PPaymentResponseStatus'
          description: Current payment status.
        description:
          type: string
          description: Memo provided at creation time.
      required:
      - id
      - originating_account_id
      - receiving_account_id
      - amount
      - status
      description: P2P payment details returned by retrieve and list endpoints.
      title: GetP2PPaymentResponse
    CreateAFTRequest:
      type: object
      properties:
        consumer_id:
          type: string
          description: Unique identifier of the consumer initiating the transfer.
        external_payment_card_id:
          type: string
          format: uuid
          description: External ID of the payment card to pull funds from.
        amount:
          type: number
          format: double
          description: Amount to pull in USD.
        description:
          type: string
          description: Optional description for the transaction.
      required:
      - consumer_id
      - external_payment_card_id
      - amount
      description: Request body for creating an AFT (Account Funding Transaction) — pulls funds from a consumer's external payment card.
      title: CreateAFTRequest
    CreatePeerToPeerPaymentRequestRequestUnprocessableEntityError:
      type: object
      properties:
        error:
          type: string
        error_code:
          $ref: '#/components/schemas/V2PaymentsP2PPostResponsesContentApplicationJsonSchemaErrorCode'
        messages:
          type: array
          items:
            type: string
      title: CreatePeerToPeerPaymentRequestRequestUnprocessableEntityError
    GetOCTResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for this payment.
        consumer_id:
          type: string
          description: Identifier of the consumer associated with this payment.
        external_payment_card_id:
          type: string
          format: uuid
          description: External ID of the payment card that was credited.
        amount:
          type: number
          format: double
          description: Transfer amount in USD.
        fee_amount:
          type: number
          format: double
          description: Fee amount charged for this transaction.
        direction:
          type: string
          description: Always `Push` for OCT transactions.
        status:
          type: string
          description: Current payment status.
      required:
      - id
      - amount
      - direction
      - status
      description: OCT payment details.
      title: GetOCTResponse
    Payments_listOCTPaymentRequests_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/GetOCTResponse'
      required:
      - count
      - results
      title: Payments_listOCTPaymentRequests_Response_200
    CreateP2PPaymentRequest:
      type: object
      properties:
        originating_account_id:
          type: string
          format: uuid
          description: External ID of the sending consumer's secured-card account.
        receiving_account_id:
          type: string
          format: uuid
          description: External ID of the receiving consumer's secured-card account.
        amount:
          type: number
          format: double
          description: Transfer amount in USD. Minimum 1.00. Maximum set by partner configuration.
        description:
          type: string
          description: Optional memo visible in both consumers' transaction history.
      required:
      - originating_account_id
      - receiving_account_id
      - amount
      description: Request body for creating a P2P payment between two consumers.
      title: CreateP2PPaymentRequest
    GetInstantPaymentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        consumer_id:
          type: string
        amount:
          type: string
          format: decimal
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        instant_payment_direction:
          type: string
      required:
      - id
      - amount
      - originating_account_id
      - receiving_account_id
      - instant_payment_direction
      title: GetInstantPaymentResponse
    CreateInstantPaymentRequest:
      type: object
      properties:
        consumer_id:
          type: string
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        description:
          type: string
        amount:
          type: string
          format: decimal
      required:
      - consumer_id
      - originating_account_id
      - receiving_account_id
      - amount
      title: CreateInstantPaymentRequest
    Payments_Cancel ACH Payment_Response_204:
      type: object
      properties: {}
      description: Empty response body
      title: Payments_Cancel ACH Payment_Response_204
    GetAFTResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for this payment.
        consumer_id:
          type: string
          description: Identifier of the consumer associated with this payment.
        external_payment_card_id:
          type: string
          format: uuid
          description: External ID of the payment card that was debited.
        amount:
          type: number
          format: double
          description: Transfer amount in USD.
        fee_amount:
          type: number
          format: double
          description: Fee amount charged for this transaction.
        direction:
          type: string
          description: Always `Pull` for AFT transactions.
        status:
          type: string
          description: Current payment status.
      required:
      - id
      - amount
      - direction
      - status
      description: AFT payment details.
      title: GetAFTResponse
    GetTransferResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        amount:
          type: number
          format: double
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        status:
          type: string
        description:
          type: string
      required:
      - id
      - amount
      - originating_account_id
      - receiving_account_id
      - status
      title: GetTransferResponse
    CreateP2PPaymentResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for this P2P payment. Use it to poll status or retrieve details.
        originating_account_id:
          type: string
          description: External ID of the sending account.
        receiving_account_id:
          type: string
          description: External ID of the receiving account.
        amount:
          type: number
          format: double
          description: Transfer amount in USD.
        status:
          $ref: '#/components/schemas/CreateP2PPaymentResponseStatus'
          description: 'Current payment status. `pending_review` means the payment is held for compliance review (velocity limit exceeded) and will be processed once approved.

            '
        description:
          type: string
          description: Memo provided at creation time.
      required:
      - id
      - originating_account_id
      - receiving_account_id
      - amount
      - status
      description: Response returned when a P2P payment is created.
      title: CreateP2PPaymentResponse
    Payments_getAllTransfers_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/GetTransferResponse'
      required:
      - count
      - results
      title: Payments_getAllTransfers_Response_200
    Payments_listGetInstantPaymentResponses_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/GetInstantPaymentResponse'
      required:
      - count
      - results
      title: Payments_listGetInstantPaymentResponses_Response_200
    ACHResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        consumer_id:
          type: string
        amount:
          type: number
          format: double
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        ach_direction:
          type: string
        status:
          type: string
        description:
          type: string
        memo:
          type: string
      required:
      - id
      - amount
      - originating_account_id
      - receiving_account_id
      - ach_direction
      - status
      title: ACHResponse
    V2PaymentsP2PPostResponsesContentApplicationJsonSchemaErrorCode:
      type: string
      enum:
      - feature_unavailable
      - invalid_amount
      - invalid_account_types
      - invalid_account_pair
      - not_found
      - insufficient_funds
      - invalid_account
      title: V2PaymentsP2PPostResponsesContentApplicationJsonSchemaErrorCode
    Payments_listACHResponses_Response_200:
      type: object
      properties:
        count:
          type: integer
        next:
          type:
          - string
          - 'null'
          format: uri
        previous:
          type:
          - string
          - 'null'
          format: uri
        results:
          type: array
          items:
            $ref: '#/components/schemas/ACHResponse'
      required:
      - count
      - results
      title: Payments_listACHResponses_Response_200
    CreateACHRequest:
      type: object
      properties:
        consumer_id:
          type: string
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        description:
          type: string
        amount:
          type: number
          format: double
      required:
      - consumer_id
      - originating_account_id
      - receiving_account_id
      - amount
      title: CreateACHRequest
    CreateTransferResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        amount:
          type: number
          format: double
        originating_account_id:
          type: string
        receiving_account_id:
          type: string
        status:
          type: string
        description:
          type: string
      required:
      - id
      - amount
      - originating_account_id
      - receiving_account_id
      - status
      title: CreateTransferResponse
    CreateOCTRequest:
      type: object
      properties:
        consumer_id:
          type: string
          description: Unique identifier of the consumer receiving the transfer.
        external_payment_card_id:
          type: string
          format: uuid
          description: External ID of the payment card to credit funds to.
        amount:
          type: number
          format: double
          description: Amount to push in USD.
        description:
          type: string
          description: Optional description for the transaction.
      required:
      - consumer_id
      - external_payment_card_id
      - amount
      description: Request body for creating an OCT (Original Credit Transaction) — pushes funds to a consumer's external payment card.
      title: CreateOCTRequest
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer