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

# Explain one year of a member's allowance

> How the figures of one fiscal year came about: which rule was active, what accrued month by month, what was carried over, what expired and what was booked. This is the calculation the app shows in the ledger.



## OpenAPI

````yaml https://api.absentify.com/api/v1/openapi.json get /members/{member_id}/allowance-breakdown
openapi: 3.1.0
info:
  title: absentify CRUD API
  description: OpenAPI compliant REST API
  version: 1.0.0
servers:
  - url: https://api.absentify.com/api/v1
security: []
tags:
  - name: Departments
  - name: Leave types
  - name: Members
  - name: Requests
  - name: Public holidays
  - name: Workspace
  - name: Absences
  - name: Allowance Management
externalDocs:
  url: https://absentify.com/docs/en/api-reference
paths:
  /members/{member_id}/allowance-breakdown:
    get:
      tags:
        - Allowance Management
      summary: Explain one year of a member's allowance
      description: >-
        How the figures of one fiscal year came about: which rule was active,
        what accrued month by month, what was carried over, what expired and
        what was booked. This is the calculation the app shows in the ledger.
      operationId: memberAllowance-getBreakdown
      parameters:
        - in: path
          name: member_id
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
        - in: query
          name: allowance_type_id
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
        - in: query
          name: year
          schema:
            type: integer
            minimum: -9007199254740991
            maximum: 9007199254740991
            description: The fiscal year to explain.
          required: true
          description: The fiscal year to explain.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  legacy_unmigrated:
                    type: boolean
                    description: >-
                      True when this member has not been moved to the rules
                      engine yet. Every other field is then null or empty: there
                      is no rule-based breakdown to report.
                  no_allowance_for_year:
                    type: boolean
                    description: >-
                      True when the member has no allowance of this type in this
                      year at all, for instance because no rule ever covered it.
                      Every other field is then null or empty.
                  member_allowance_id:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: >-
                      The id to pass to POST
                      /allowances/{id}/revert-carryover-override.
                  fiscal_year_start_month:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                    description: 0 = January, matching the workspace setting.
                  active_rule:
                    anyOf:
                      - type: object
                        properties:
                          name:
                            type: string
                          amount:
                            type: number
                          cycle:
                            type: string
                            description: How often the rule grants, e.g. `monthly`.
                        required:
                          - name
                          - amount
                          - cycle
                        additionalProperties: false
                      - type: 'null'
                    description: The rule that governed this year, if any.
                  allowance:
                    type: number
                    description: The rule-granted entitlement after rounding.
                  raw_allowance:
                    type: number
                    description: The same figure before rounding.
                  rounding_increment:
                    anyOf:
                      - type: number
                      - type: 'null'
                    description: What the entitlement was rounded up to, e.g. 0.5 days.
                  rounding_delta:
                    type: number
                    description: >-
                      How much the rounding added: `allowance` minus
                      `raw_allowance`.
                  adjustments:
                    type: number
                    description: The manual adjustments of this year.
                  brought_forward:
                    type: number
                  overwrite_brought_forward:
                    type: boolean
                  taken:
                    type: number
                  remaining:
                    type: number
                  will_expire:
                    type: number
                  expired:
                    type: number
                  expiration:
                    type: number
                  carry_forward_deadline:
                    anyOf:
                      - type: string
                      - type: 'null'
                  next_credit_expiry:
                    anyOf:
                      - type: string
                      - type: 'null'
                    description: The next day on which part of the balance expires.
                  credit_expiration_past:
                    type: number
                    description: Already expired out of the dated credits.
                  credit_expiration_future:
                    type: number
                    description: Still to expire out of them, later this year.
                  monthly_accruals:
                    type: array
                    items:
                      type: object
                      properties:
                        month:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                          description: >-
                            0-based index within the fiscal year, not the
                            calendar.
                        amount:
                          type: number
                        earned:
                          type: boolean
                          description: False for a month that has not accrued yet.
                        ruleName:
                          type: string
                      required:
                        - month
                        - amount
                        - earned
                      additionalProperties: false
                    description: >-
                      Empty when the year accrued in one go rather than per
                      month.
                  carry_forward_detail:
                    anyOf:
                      - type: object
                        properties:
                          previous_remaining:
                            type: number
                            description: What was left at the end of the previous year.
                          carried:
                            type: number
                            description: How much of it was carried over.
                          expired:
                            type: number
                          deadline:
                            anyOf:
                              - type: string
                              - type: 'null'
                          expiry_months:
                            anyOf:
                              - type: number
                              - type: 'null'
                            description: >-
                              How long carry-over survives; null means it never
                              expires.
                          max_carry_forward:
                            anyOf:
                              - type: number
                              - type: 'null'
                          kept_after_expiry:
                            anyOf:
                              - type: number
                              - type: 'null'
                          computed_carried:
                            anyOf:
                              - type: number
                              - type: 'null'
                            description: >-
                              What the engine would have carried over. Only set
                              when an admin overrode the carry-over, so the two
                              can be compared.
                        required:
                          - previous_remaining
                          - carried
                          - expired
                          - deadline
                          - expiry_months
                          - max_carry_forward
                          - kept_after_expiry
                          - computed_carried
                        additionalProperties: false
                      - type: 'null'
                    description: >-
                      Null for the member's first year, which carries nothing
                      over.
                  deductions:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                        amount:
                          type: number
                        request_id:
                          type: string
                        leave_type_id:
                          type: string
                        leave_type_name:
                          type: string
                        request_start:
                          type: string
                        request_end:
                          type: string
                      required:
                        - date
                        - amount
                        - request_id
                        - leave_type_id
                        - leave_type_name
                        - request_start
                        - request_end
                      additionalProperties: false
                    description: What was booked out of this year, oldest first.
                  adjustment_details:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        amount:
                          type: number
                        date:
                          type: string
                        expiry_date:
                          anyOf:
                            - type: string
                            - type: 'null'
                        comment:
                          type: string
                        is_expired:
                          type: boolean
                        is_overtime:
                          type: boolean
                          description: True when the adjustment is overtime compensation.
                        created_by:
                          anyOf:
                            - type: object
                              properties:
                                name:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                                email:
                                  anyOf:
                                    - type: string
                                    - type: 'null'
                              required:
                                - name
                                - email
                              additionalProperties: false
                            - type: 'null'
                      required:
                        - id
                        - amount
                        - date
                        - expiry_date
                        - comment
                        - is_expired
                        - is_overtime
                        - created_by
                      additionalProperties: false
                    description: The individual adjustments that make up `adjustments`.
                required:
                  - legacy_unmigrated
                  - no_allowance_for_year
                  - member_allowance_id
                  - fiscal_year_start_month
                  - active_rule
                  - allowance
                  - raw_allowance
                  - rounding_increment
                  - rounding_delta
                  - adjustments
                  - brought_forward
                  - overwrite_brought_forward
                  - taken
                  - remaining
                  - will_expire
                  - expired
                  - expiration
                  - carry_forward_deadline
                  - next_credit_expiry
                  - credit_expiration_past
                  - credit_expiration_future
                  - monthly_accruals
                  - carry_forward_detail
                  - deductions
                  - adjustment_details
                additionalProperties: false
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - ApiKey: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    ApiKey:
      type: apiKey
      name: X-API-KEY
      in: header

````