Rutter Payments API

Normalized payment-processor data - payments, payouts, balances, transactions.

OpenAPI Specification

rutter-io-payments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rutter Unified Accounting Payments API
  description: 'Rutter is a unified API for commerce, accounting, and payments. A single integration reads and writes normalized business data across QuickBooks, Xero, NetSuite, Sage Intacct, Shopify, Amazon, Stripe, and other platforms.

    All requests are authenticated with HTTP Basic auth using your Rutter client_id as the username and secret as the password, and must include an `X-Rutter-Version` header pinning the API version (date-based, e.g. `2023-03-14`). Every data request is scoped to a specific end-user connection using the `access_token` query parameter obtained by exchanging a public token from Rutter Link.'
  termsOfService: https://www.rutter.com/legal/terms-of-service
  contact:
    name: Rutter Support
    email: support@rutter.com
    url: https://docs.rutterapi.com
  version: '2023-03-14'
servers:
- url: https://production.rutterapi.com/versioned
  description: Production
- url: https://sandbox.rutterapi.com/versioned
  description: Sandbox
security:
- basicAuth: []
tags:
- name: Payments
  description: Normalized payment-processor data - payments, payouts, balances, transactions.
paths:
  /payments/payments:
    get:
      operationId: listPayments
      tags:
      - Payments
      summary: List payments
      description: List payments from the connected payment processor.
      parameters:
      - $ref: '#/components/parameters/RutterVersion'
      - $ref: '#/components/parameters/AccessToken'
      - $ref: '#/components/parameters/Cursor'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A paginated list of payments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  payments:
                    type: array
                    items:
                      $ref: '#/components/schemas/Payment'
                  next_cursor:
                    type: string
                    nullable: true
  /payments/payouts:
    get:
      operationId: listPayouts
      tags:
      - Payments
      summary: List payouts
      parameters:
      - $ref: '#/components/parameters/RutterVersion'
      - $ref: '#/components/parameters/AccessToken'
      - $ref: '#/components/parameters/Cursor'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A paginated list of payouts.
          content:
            application/json:
              schema:
                type: object
                properties:
                  payouts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Payout'
                  next_cursor:
                    type: string
                    nullable: true
  /payments/balances:
    get:
      operationId: listBalances
      tags:
      - Payments
      summary: List balances
      parameters:
      - $ref: '#/components/parameters/RutterVersion'
      - $ref: '#/components/parameters/AccessToken'
      responses:
        '200':
          description: The processor balances.
          content:
            application/json:
              schema:
                type: object
                properties:
                  balances:
                    type: array
                    items:
                      $ref: '#/components/schemas/Balance'
  /payments/transactions:
    get:
      operationId: listPaymentTransactions
      tags:
      - Payments
      summary: List payment transactions
      parameters:
      - $ref: '#/components/parameters/RutterVersion'
      - $ref: '#/components/parameters/AccessToken'
      - $ref: '#/components/parameters/Cursor'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A paginated list of payment transactions.
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/PaymentTransaction'
                  next_cursor:
                    type: string
                    nullable: true
components:
  schemas:
    PaymentTransaction:
      type: object
      properties:
        id:
          type: string
        platform_id:
          type: string
        payment_id:
          type: string
          nullable: true
        payout_id:
          type: string
          nullable: true
        type:
          type: string
        amount:
          type: number
        fee:
          type: number
          nullable: true
        currency_code:
          type: string
        created_at:
          type: string
          format: date-time
    Payout:
      type: object
      properties:
        id:
          type: string
        platform_id:
          type: string
        amount:
          type: number
        currency_code:
          type: string
        status:
          type: string
        arrival_date:
          type: string
          format: date
          nullable: true
    Balance:
      type: object
      properties:
        currency_code:
          type: string
        available_amount:
          type: number
        pending_amount:
          type: number
    Payment:
      type: object
      properties:
        id:
          type: string
        platform_id:
          type: string
        amount:
          type: number
        currency_code:
          type: string
        status:
          type: string
        customer_id:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
  parameters:
    RutterVersion:
      name: X-Rutter-Version
      in: header
      required: true
      description: Date-based API version to pin (e.g. 2023-03-14).
      schema:
        type: string
        example: '2023-03-14'
    Cursor:
      name: cursor
      in: query
      required: false
      description: Opaque cursor for pagination, returned as next_cursor.
      schema:
        type: string
    AccessToken:
      name: access_token
      in: query
      required: true
      description: The connection access token that scopes the request to one end user.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      required: false
      description: Maximum number of records to return per page.
      schema:
        type: integer
        default: 50
        maximum: 500
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic auth. Username is your Rutter client_id, password is your Rutter secret. Requests must also include the `X-Rutter-Version` header and, for data endpoints, the `access_token` query parameter.