Alliance Data Systems (Bread Financial Holdings) Transactions API

Manage completed Bread Pay transactions.

Documentation

Specifications

Other Resources

OpenAPI Specification

alliance-data-systems-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bread Classic Merchant Buyers Transactions API
  description: Legacy "bread-classic" REST API for managing Bread Pay BNPL checkouts. The Merchant API helps manage completed transactions and carts (which can also be created directly in the browser via the Bread JavaScript SDK), and the Shipping API exposes carrier and tracking number information on the transaction. Hosted by Bread Financial Holdings (NYSE: BFH).
  version: '1.0'
  contact:
    name: Bread Financial Developer Support
    url: https://docs.breadpayments.com/bread-classic/reference
servers:
- url: https://api.breadpayments.com
  description: Production
- url: https://api-sandbox.breadpayments.com
  description: Sandbox
security:
- bearerAuth: []
tags:
- name: Transactions
  description: Manage completed Bread Pay transactions.
paths:
  /transactions/{transactionID}:
    get:
      operationId: getTransactionClassic
      summary: Bread Classic Get A Transaction
      description: Return a Bread transaction object.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Transaction returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicTransaction'
    put:
      operationId: updateTransactionClassic
      summary: Bread Classic Update A Transaction
      description: Update transaction state (e.g. authorize, cancel, settle, refund) via the legacy Merchant API.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassicTransactionUpdate'
      responses:
        '200':
          description: Transaction updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassicTransaction'
  /transaction:
    post:
      operationId: createTransaction
      summary: Bread Pay Create A Transaction
      description: Create a new Bread Pay transaction for an authorized buyer.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRequest'
      responses:
        '201':
          description: Transaction created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
  /transaction/{transactionID}:
    get:
      operationId: getTransaction
      summary: Bread Pay Get A Transaction
      description: Retrieve a single transaction by its unique transaction ID.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Transaction found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '401':
          description: Unauthorized
        '404':
          description: Not found
  /transaction/{transactionID}/authorize:
    post:
      operationId: authorizeTransaction
      summary: Bread Pay Authorize A Transaction
      description: Authorize a single transaction based on its unique transaction ID, either for the full amount or a partial amount.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: If-Match
        in: header
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizeRequest'
      responses:
        '200':
          description: Transaction authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '400':
          description: Invalid request
        '401':
          description: Unauthorized
        '403':
          description: Request cannot be authorized
        '412':
          description: Precondition failed
        '500':
          description: Resource conflict
        '503':
          description: Service unavailable
  /transaction/{transactionID}/cancel:
    post:
      operationId: cancelTransaction
      summary: Bread Pay Cancel A Transaction
      description: Cancel an authorized but un-captured transaction.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Transaction cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '401':
          description: Unauthorized
  /transaction/{transactionID}/settle:
    post:
      operationId: settleTransaction
      summary: Bread Pay Settle A Transaction
      description: Settle (capture) the funds for an authorized transaction.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettleRequest'
      responses:
        '200':
          description: Transaction settled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '401':
          description: Unauthorized
  /transaction/{transactionID}/refund:
    post:
      operationId: refundTransaction
      summary: Bread Pay Refund A Transaction
      description: Refund a previously settled transaction in full or in part.
      tags:
      - Transactions
      parameters:
      - name: transactionID
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
      responses:
        '200':
          description: Refund processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '401':
          description: Unauthorized
components:
  schemas:
    Transaction:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
          - PENDING
          - AUTHORIZED
          - SETTLED
          - CANCELLED
          - REFUNDED
          - EXPIRED
        amount:
          $ref: '#/components/schemas/Amount'
        buyerId:
          type: string
          format: uuid
        merchantOfRecordID:
          type: string
          format: uuid
        createdOn:
          type: string
          format: date-time
        modifiedOn:
          type: string
          format: date-time
    Amount:
      type: object
      required:
      - value
      - currency
      properties:
        value:
          type: integer
          description: Amount in minor units (e.g. cents).
        currency:
          type: string
          example: USD
    RefundRequest:
      type: object
      required:
      - amount
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        reason:
          type: string
    TransactionRequest:
      type: object
      required:
      - amount
      - buyerId
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        buyerId:
          type: string
          format: uuid
        merchantOfRecordID:
          type: string
          format: uuid
        merchantNote:
          type: string
          maxLength: 512
    ClassicTransactionUpdate:
      type: object
      properties:
        type:
          type: string
          enum:
          - authorize
          - cancel
          - settle
          - refund
        amount:
          type: integer
    SettleRequest:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        merchantNote:
          type: string
          maxLength: 512
    ClassicTransaction:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - AUTHORIZED
          - SETTLED
          - CANCELLED
          - REFUNDED
        amount:
          type: integer
        currency:
          type: string
        merchantId:
          type: string
        createdAt:
          type: string
          format: date-time
    AuthorizeRequest:
      type: object
      required:
      - amount
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        isVirtualCard:
          type: boolean
          default: false
        merchantOfRecordID:
          type: string
          format: uuid
        merchantNote:
          type: string
          maxLength: 512
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bread Merchant Portal access token (legacy scheme).
externalDocs:
  description: Bread Classic Reference
  url: https://docs.breadpayments.com/bread-classic/reference