> ## 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.

# Create a bill



## OpenAPI

````yaml /nickel-api-docs.yaml post /bill
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:
    post:
      tags:
        - Bill
      summary: Create a bill
      operationId: createBill
      requestBody:
        description: Create a new bill
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillCreateRequest'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bill'
        '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:
    BillCreateRequest:
      required:
        - amountCents
        - dueDateEpochMillis
        - vendorId
        - reason
      type: object
      properties:
        amountCents:
          type: integer
          format: int64
        dueDateEpochMillis:
          type: number
          description: Due date as epoch milliseconds
        vendorId:
          type: string
        billNumber:
          type: string
        reason:
          type: string
        s3Urls:
          type: array
          description: >-
            URLs of files previously uploaded via the file upload endpoint to
            attach to this bill
          items:
            type: string
    Bill:
      type: object
      properties:
        id:
          type: string
        amountDueInCents:
          type: integer
          format: int64
          nullable: true
        totalAmountInCents:
          type: integer
          format: int64
          nullable: true
        vendorId:
          type: string
          nullable: true
        vendorName:
          type: string
          nullable: true
        dueDate:
          type: string
          nullable: true
        reference:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
        documents:
          type: array
          items:
            type: string
    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.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````