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

# Make a sample payslip in your brand draft

> Returns a made-up payslip as a PDF, drawn in your account's unpublished brand draft, so you can see a brand before you publish it. Send nothing to draw the saved draft, or send unsaved changes to draw them without saving. The account comes from your credentials. Nothing is stored and nothing is sent.



## OpenAPI

````yaml /api-reference/specs/pay-api.yaml post /payslip/samples
openapi: 3.0.3
info:
  title: FlowPayroll API
  description: >-
    API for payroll management, including payroll upload, lock, HMRC submission,
    employee management
  version: 0.1.0
servers:
  - url: https://api.sandbox.flowpayroll.ai/v1
security:
  - XAuthToken: []
    XOrgId: []
tags:
  - name: Employees
    description: >-
      Create, retrieve, update, and delete employee records, and look them up by
      NI number or payroll ID.
  - name: Starters & leavers
    description: Set and clear starter and leaver details, individually or in bulk.
  - name: Tax codes
    description: >-
      Manage employee tax codes and query the effective tax code and NI category
      on a given date.
  - name: NI & identifiers
    description: Manage NI categories, National Insurance numbers, and payroll IDs.
  - name: Student loans
    description: Start and end student and postgraduate loans.
  - name: Payroll setup
    description: Assign an employee's payroll config and set opening balances.
  - name: Salary
    description: >-
      The employee's effective-dated annual salary history: read it, add or
      correct a version from a date, and remove one. The Salary API pro-rates
      this history onto each pay run.
  - name: Payroll
  - name: Payroll lines
  - name: PayrollConfig
  - name: Pay Elements
  - name: Calculator
  - name: Payslip
  - name: RTI
  - name: YearEnd
  - name: Organisation
paths:
  /payslip/samples:
    post:
      tags:
        - Payslip
      summary: Make a sample payslip in your brand draft
      description: >-
        Returns a made-up payslip as a PDF, drawn in your account's unpublished
        brand draft, so you can see a brand before you publish it. Send nothing
        to draw the saved draft, or send unsaved changes to draw them without
        saving. The account comes from your credentials. Nothing is stored and
        nothing is sent.
      operationId: CreatePayslipSample
      parameters:
        - name: companyLogo
          in: query
          required: false
          schema:
            type: string
            enum:
              - sample
          description: >-
            Send `sample` to draw it as an organisation with its own logo sees
            it, with a made-up company logo and your brand as "Powered by".
      requestBody:
        required: false
        description: >-
          Unsaved changes to the brand draft, in the shape of the Administration
          API's brand draft merge patch without `version`. Up to 16 KB. Every
          field is checked as a save would check it.
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              primaryColour: '#0B7A75'
              documentsShowProductName: false
      responses:
        '200':
          description: The sample payslip PDF
          headers:
            Content-Disposition:
              description: attachment; filename="sample-payslip.pdf"
              schema:
                type: string
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '400':
          description: >-
            The changes could not be read, or a change is one a save of the
            draft would refuse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
              example:
                message:
                  text: >-
                    The changes to preview could not be read. Reload the page
                    and try again.
                  token: payslip_sample_changes_invalid
        '403':
          description: Your sign-in is not linked to an account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
              example:
                message:
                  text: >-
                    Your sign-in is not linked to an account, so there is no
                    brand to show. Sign out, sign back in and try again.
                  token: payslip_sample_no_account
        '404':
          description: >-
            Your account has never saved a brand draft (only when no changes are
            sent)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
              example:
                message:
                  text: >-
                    There is no saved brand draft yet, so no sample payslip was
                    made. Save your brand, then try again.
                  token: payslip_sample_no_draft
        '429':
          description: Too many sample payslips at once. Wait a moment and try again.
        '502':
          description: Your brand draft could not be loaded. Try again in a minute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBody'
components:
  schemas:
    ResponseBody:
      type: object
      properties:
        message:
          $ref: '#/components/schemas/MessageWithTokenResponse'
        content:
          type: object
          properties:
            data:
              type: object
              nullable: true
            metadata:
              type: object
              nullable: true
              properties:
                dateFormat:
                  type: string
                  default: yyyy-MM-dd
                dateTimeFormat:
                  type: string
                  default: yyyy-MM-ddTHH:mm:ss.fffZ
                paginationToken:
                  type: string
                  nullable: true
        validationIssues:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssue'
    MessageWithTokenResponse:
      type: object
      properties:
        text:
          type: string
        token:
          type: string
        tokenArguments:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
    ValidationIssue:
      type: object
      description: >
        Field validation item. `reasonToken` is a stable snake_case key for i18n
        or custom client messages; `reason` is the default English text from the
        API.
      properties:
        field:
          type: string
          description: Dot-path of the field (e.g. name.firstName, address.line1).
        reason:
          type: string
          description: Default human-readable message.
        reasonToken:
          type: string
          description: Machine-readable error identifier (snake_case).
        reasonTokenArguments:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ValidationIssueArgument'
    ValidationIssueArgument:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
  securitySchemes:
    XAuthToken:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: Access token obtained from OAuth2 client credentials flow
    XOrgId:
      type: apiKey
      in: header
      name: X-Org-Id
      description: >-
        Organisation to scope the request to. Required when the principal can
        access more than one organisation; optional for single-organisation
        principals (the authorizer resolves it automatically).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.