Bread Pay Platform API

Next-generation BreadPay Platform REST API for managing buyers, merchant accounts, payment options, transaction lifecycle (authorize, cancel, capture, refund), and payment-product servicing. Hosted at api.platform.breadpayments.com with a preview environment at api-preview.platform.breadpayments.com. Authentication is OAuth 2.0 Client Credentials Flow with credentials issued from the Bread Merchant Portal.

Bread Pay Platform API is one of 6 APIs that Alliance Data Systems (Bread Financial Holdings) publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Buy Now Pay Later, BNPL, Payments, Transactions, and Buyers. The published artifact set on APIs.io includes API documentation, authentication docs, an API reference, and an OpenAPI specification.

OpenAPI Specification

bread-pay-platform-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bread Pay Platform API
  description: >-
    BreadPay Platform API for managing buyers, merchant accounts, payment
    options, and the full transaction lifecycle (create, authorize, cancel,
    capture, refund). Authentication uses OAuth 2.0 Client Credentials Flow
    with credentials issued from the Bread Merchant Portal. Hosted by Bread
    Financial Holdings (NYSE: BFH) under the Bread Pay brand. The
    rebranded successor to Alliance Data Systems' BNPL surface.
  version: '1.0'
  contact:
    name: Bread Financial Developer Support
    url: https://platform-docs.breadpayments.com/bread-developers
  termsOfService: https://www.breadfinancial.com/en/terms-of-use.html
externalDocs:
  description: Bread Pay Platform API Reference
  url: https://platform-docs.breadpayments.com/bread-developers/reference
servers:
  - url: https://api.platform.breadpayments.com/api
    description: Production
  - url: https://api-preview.platform.breadpayments.com/api
    description: Preview / Sandbox
tags:
  - name: Buyers
    description: Manage buyer records and look up personalized payment options.
  - name: Transactions
    description: Create, authorize, cancel, capture, and refund Bread Pay transactions.
  - name: Merchants
    description: Read merchant-of-record configuration.
  - name: Payment Options
    description: Retrieve buyer-personalized payment option pricing and terms.
security:
  - oauth2ClientCredentials: []
paths:
  /buyer/{id}:
    get:
      operationId: getBuyer
      summary: Bread Pay Get A Buyer
      description: Retrieve a buyer record by Bread buyer identifier.
      tags:
        - Buyers
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Buyer found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Buyer'
        '401':
          description: Unauthorized
        '404':
          description: Buyer not found
  /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
  /payment-options:
    get:
      operationId: listPaymentOptions
      summary: Bread Pay List Payment Options
      description: List personalized Bread Pay payment options and pricing for the authenticated buyer context.
      tags:
        - Payment Options
      responses:
        '200':
          description: Payment options returned
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentOption'
        '401':
          description: Unauthorized
components:
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow using API + Secret keys issued from the Bread Merchant Portal.
      flows:
        clientCredentials:
          tokenUrl: https://auth.platform.breadpayments.com/auth/sso/token
          scopes:
            transactions:read: Read transactions
            transactions:write: Create, authorize, settle, refund transactions
            buyers:read: Read buyer records
  schemas:
    Buyer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        givenName:
          type: string
        familyName:
          type: string
        email:
          type: string
          format: email
        phone:
          type: string
        billingAddress:
          $ref: '#/components/schemas/Address'
        shippingAddress:
          $ref: '#/components/schemas/Address'
    Address:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        locality:
          type: string
        region:
          type: string
        postalCode:
          type: string
        country:
          type: string
    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
    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
    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
    SettleRequest:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        merchantNote:
          type: string
          maxLength: 512
    RefundRequest:
      type: object
      required:
        - amount
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        reason:
          type: string
    Amount:
      type: object
      required:
        - value
        - currency
      properties:
        value:
          type: integer
          description: Amount in minor units (e.g. cents).
        currency:
          type: string
          example: USD
    PaymentOption:
      type: object
      properties:
        id:
          type: string
        productType:
          type: string
          enum:
            - SPLIT_PAY
            - INSTALLMENTS
            - CARD
        termMonths:
          type: integer
        apr:
          type: number
        monthlyPayment:
          $ref: '#/components/schemas/Amount'