> ## Documentation Index
> Fetch the complete documentation index at: https://dev.nickel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pay bills

> Process payments for one or more bills in a single batch request.



## OpenAPI

````yaml /nickel-api-docs.yaml post /bill/pay
openapi: 3.0.3
info:
  title: Nickel API
  description: >-
    This is the specification for the Nickel Rest API. The API lets you
    programmatically interact with the Nickel server. It uses resource oriented
    URLs, accepts and returns JSON encoded payloads and uses standard HTTP
    response codes. It is not a direct API to move money, but instead allows you
    to interact with Nickel as you would on a web interface.
  termsOfService: https://www.nickel.com/terms-of-service
  contact:
    email: support@nickel.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
  - url: https://rest.staging.nickel.com
    description: Sandbox / Staging
  - url: https://rest.nickel.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Payment
    description: Payments from your customers to you
  - name: Disbursement
    description: Payouts made from Nickel to you
  - name: Payment Link
    description: A request for payment against an invoice
  - name: Customer
    description: A customer record to request payments against
  - name: Charge Authorization
    description: >-
      An authorization for your customer to allow you to charge their payment
      method directly
  - name: Webhook
    description: Create a webhook for nickel to send updates to
  - name: File
    description: A file you can use to attach to invoices or debit authorizations
  - name: Vendor
    description: Manage vendors for accounts payable
  - name: Bill
    description: Bills from vendors and bill payments
  - name: Bill Payment Method
    description: >-
      A merchant's payment methods used to pay bills (bank accounts and cards on
      file)
  - name: Vendor Payout Method
    description: Vendor bank account and delivery method management
externalDocs:
  description: Find out more about Nickel
  url: https://nickel.com
paths:
  /bill/pay:
    post:
      tags:
        - Bill
      summary: Pay bills
      description: Process payments for one or more bills in a single batch request.
      operationId: payBill
      requestBody:
        description: Batch bill payment request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillPaymentCreateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillPaymentCreateResponse'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    BillPaymentCreateRequest:
      required:
        - payments
      type: object
      properties:
        payments:
          type: array
          items:
            $ref: '#/components/schemas/BatchBillPayItemInput'
        idempotencyKey:
          type: string
    BillPaymentCreateResponse:
      type: object
      properties:
        billPayments:
          type: array
          items:
            $ref: '#/components/schemas/BillPayment'
        billErrors:
          type: array
          items:
            $ref: '#/components/schemas/BillPaymentError'
    Error:
      required:
        - error
      type: object
      properties:
        error:
          type: string
          description: >-
            A human-readable error message describing what went wrong. Note that
            some 500 responses may return a plain text string instead of this
            JSON object.
    BatchBillPayItemInput:
      required:
        - billId
        - merchantPaymentMethodId
        - vendorPayoutMethodId
        - notificationEmails
        - vendorId
      type: object
      properties:
        billId:
          type: string
        merchantPaymentMethodId:
          type: string
        vendorPayoutMethodId:
          type: string
        notificationEmails:
          type: array
          items:
            type: string
        withdrawalDateEpochMillis:
          type: number
          description: >-
            Scheduled withdrawal date as epoch milliseconds. If omitted, the
            payment is processed immediately.
        arrivalDateEpochMillis:
          type: number
          description: >
            Desired date the payment should arrive at the vendor, as epoch
            milliseconds. Ignored when `withdrawalDateEpochMillis` is set;
            otherwise the API back-computes the withdrawal date by subtracting
            the payment rail's estimated days-to-delivery. Arrival dates too
            soon for the selected rail (which would require a withdrawal date in
            the past, or an ACH withdrawal after the daily cutoff) are rejected.
        vendorId:
          type: string
        vendorMemo:
          type: string
    BillPayment:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          nullable: true
        amountInCents:
          type: integer
          format: int64
          nullable: true
        createdAt:
          type: number
          nullable: true
        vendorPayoutMethodId:
          type: string
          nullable: true
        billPayableId:
          type: string
    BillPaymentError:
      type: object
      properties:
        billId:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````