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

# Cancel an async grant request

> 
    Cancels a pending (async) grant request.
    The grant must be in a 'PendingLiquidation' state to be cancellable.
    
    This endpoint requires authentication, and the user must be the manager 
    of the fund from which the grant was initiated.
    



## OpenAPI

````yaml https://api.endaoment.org/oas-json post /v1/transfers/async-grants/{id}/cancel
openapi: 3.0.0
info:
  title: Endaoment API
  description: The official Endaoment API endpoints
  version: 0.0.1
  contact: {}
servers:
  - url: https://api.endaoment.org
    description: Production
security: []
tags: []
paths:
  /v1/transfers/async-grants/{id}/cancel:
    post:
      tags:
        - Transfers
      summary: Cancel an async grant request
      description: |2-

            Cancels a pending (async) grant request.
            The grant must be in a 'PendingLiquidation' state to be cancellable.
            
            This endpoint requires authentication, and the user must be the manager 
            of the fund from which the grant was initiated.
            
      operationId: InternalTransfersController_cancelAsyncGrant
      parameters:
        - name: id
          required: true
          in: path
          description: Unique identifier of the async grant to cancel
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Async grant request successfully cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantTransferDto'
        '400':
          description: Invalid grant ID or grant is not in a cancellable state
        '401':
          description: User is not authenticated
        '403':
          description: >-
            User does not have permission to cancel this grant (e.g., not the
            fund manager)
      security:
        - bearer: []
components:
  schemas:
    GrantTransferDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the transfer
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        type:
          type: string
          description: Type of transfer, always "grant" for GrantTransferDto
          enum:
            - GrantTransfer
            - EntityTransfer
          example: grant
        status:
          type: string
          description: Status of the transfer (deprecated)
          enum:
            - PendingReview
            - Approved
            - Rejected
          example: approved
          deprecated: true
        transactionHash:
          type: object
          description: Transaction hash of the donation made to the target entity
          example: '0x1234567890abcdef'
          nullable: true
        netAmount:
          type: object
          description: >-
            Net output amount for the transfer (total - fees) in USDC smallest
            currency unit (1000000 = 1 USD)
          example: '1000000'
          nullable: true
        fee:
          type: object
          description: >-
            Fee charged on this transfer in USDC smallest currency unit (1000000
            = 1 USD)
          example: '10000'
          nullable: true
        createdAtUtc:
          type: string
          description: UTC timestamp when the transfer was created
          format: date-time
          example: '2024-03-20T10:30:00Z'
        requestedAmount:
          type: object
          description: >-
            Requested amount for the transfer in USDC smallest currency unit
            (1000000 = 1 USD) (only for async transfers)
          example: '1000000'
          nullable: true
        updatedAtUtc:
          type: string
          description: UTC timestamp when the transfer was last updated
          format: date-time
          example: '2024-03-20T10:30:00Z'
        asyncStatus:
          type: string
          description: Current status of the async transfer request
          enum:
            - PendingLiquidation
            - Liquidated
            - Cancelled
          example: pending
        chainId:
          type: object
          description: Chain ID where the transfer occurred (null for async transfers)
          example: 1
          nullable: true
        destinationOrg:
          description: >-
            Organization receiving the grant. Null if the grant is for a
            subproject.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/OrgSimpleListingDto'
        destinationSubproject:
          description: >-
            Subproject receiving the grant. Null if the grant is for an
            organization.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/SubprojectListingDto'
        recommender:
          type: object
          description: Name of the person who recommended the grant
          example: John Doe
          nullable: true
        purpose:
          type: object
          description: Purpose of the grant
          example: Supporting educational programs
          nullable: true
        specialInstructions:
          type: object
          description: Special instructions for the use of granted assets
          example: Funds must be used exclusively for the summer education program
          nullable: true
      required:
        - id
        - type
        - status
        - transactionHash
        - netAmount
        - fee
        - createdAtUtc
        - requestedAmount
        - updatedAtUtc
        - asyncStatus
        - chainId
        - destinationOrg
        - destinationSubproject
        - recommender
        - purpose
        - specialInstructions
    OrgSimpleListingDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the organization in Endaoment database
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
          nullable: true
        ein:
          type: object
          description: IRS Employer Identification Number (EIN) without hyphen
          example: '530196605'
          nullable: true
        name:
          type: string
          description: Name of the organization
          example: American Red Cross
        description:
          type: object
          description: Description or mission statement of the organization
          example: Providing disaster relief and emergency assistance
          nullable: true
        address:
          description: Physical address of the organization
          allOf:
            - $ref: '#/components/schemas/OrgAddress'
        contactInfo:
          description: Contact information for the organization
          allOf:
            - $ref: '#/components/schemas/OrgContact'
        website:
          type: object
          description: Website URL of the organization
          example: https://www.redcross.org
          nullable: true
        logo:
          type: string
          description: URL to the organization logo
          example: https://example.com/logo.png
        nteeCode:
          type: string
          description: NTEE (National Taxonomy of Exempt Entities) Code
          example: E91
          externalDocs:
            url: https://nccs.urban.org/publication/irs-activity-codes
            description: Full NTEE Code List
        nteeDescription:
          type: string
          description: Human-readable description of the NTEE code
          example: Nursing, Convalescent (Geriatric and Nursing)
        featuredIndex:
          type: number
          description: Priority index for featured organizations (higher = shows first)
          example: 100
          minimum: 0
        claimedDateUtc:
          type: object
          description: UTC timestamp when the organization was claimed
          format: date-time
          example: '2024-03-20T10:30:00Z'
          nullable: true
        claimedType:
          type: string
          description: Type of organization claim
          enum:
            - WalletClaim
            - WireClaim
          example: DIRECT
          nullable: true
        claimed:
          type: boolean
          description: Whether the organization has been claimed
          example: true
        contractAddress:
          type: object
          description: Smart contract address on the default chain (deprecated)
          example: '0x1234567890123456789012345678901234567890'
          nullable: true
          deprecated: true
        deployments:
          description: >-
            List of smart contract deployments across different chains. Includes
            only deployed orgs.
          type: array
          items:
            $ref: '#/components/schemas/OrgDeployment'
      required:
        - id
        - ein
        - name
        - description
        - address
        - contactInfo
        - website
        - logo
        - nteeCode
        - nteeDescription
        - featuredIndex
        - claimedDateUtc
        - claimedType
        - claimed
        - contractAddress
        - deployments
    SubprojectListingDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the subproject
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        sponsorOrgId:
          type: string
          description: Unique identifier of the sponsoring organization
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        sponsorOrgEin:
          type: object
          description: Employer Identification Number (EIN) of the sponsoring organization
          example: '123456789'
          nullable: true
        ein:
          type: object
          description: IRS Identifier for the subproject (without hyphen)
          example: '123456789'
          nullable: true
        name:
          type: string
          description: Name of the subproject
          example: Education Initiative
        description:
          type: object
          description: Detailed description of the subproject
          example: Supporting educational programs in underserved communities
          nullable: true
        website:
          type: object
          description: Website URL of the subproject
          example: https://example.org/initiative
          nullable: true
        logo:
          type: string
          description: URL of the subproject logo image
          example: https://example.org/images/logo.png
        nteeCode:
          type: string
          description: NTEE (National Taxonomy of Exempt Entities) Code
          example: E91
          externalDocs:
            url: https://nccs.urban.org/publication/irs-activity-codes
            description: Full NTEE Code List
        nteeDescription:
          type: string
          description: Full text description of the NTEE code
          example: Nursing, Convalescent (Geriatric and Nursing)
        featuredIndex:
          type: number
          description: Display order index (higher values appear first)
          example: 100
        lifetimeContributionsUsdc:
          type: string
          description: >-
            Total lifetime contributions to this subproject in USDC, in the
            smallest currency unit (1000000 = 1 USD)
          example: '1000000'
      required:
        - id
        - sponsorOrgId
        - sponsorOrgEin
        - ein
        - name
        - description
        - website
        - logo
        - nteeCode
        - nteeDescription
        - featuredIndex
        - lifetimeContributionsUsdc
    OrgAddress:
      type: object
      properties:
        line1:
          type: string
          description: Street address including building/apartment number
          example: 123 Main St
          nullable: true
        city:
          type: string
          description: City name
          example: San Francisco
          nullable: true
        state:
          type: string
          description: State or province code
          example: CA
          nullable: true
        zip:
          type: string
          description: Postal code
          example: '94105'
          nullable: true
        country:
          type: string
          description: ISO 3166-1 alpha-3 country code
          example: USA
          enum:
            - ABW
            - AFG
            - AGO
            - AIA
            - ALA
            - ALB
            - AND
            - ARE
            - ARG
            - ARM
            - ASM
            - ATA
            - ATF
            - ATG
            - AUS
            - AUT
            - AZE
            - BDI
            - BEL
            - BEN
            - BES
            - BFA
            - BGD
            - BGR
            - BHR
            - BHS
            - BIH
            - BLM
            - BLR
            - BLZ
            - BMU
            - BOL
            - BRA
            - BRB
            - BRN
            - BTN
            - BVT
            - BWA
            - CAF
            - CAN
            - CCK
            - CHE
            - CHL
            - CHN
            - CIV
            - CMR
            - COD
            - COG
            - COK
            - COL
            - COM
            - CPV
            - CRI
            - CUB
            - CUW
            - CXR
            - CYM
            - CYP
            - CZE
            - DEU
            - DJI
            - DMA
            - DNK
            - DOM
            - DZA
            - ECU
            - EGY
            - ERI
            - ESH
            - ESP
            - EST
            - ETH
            - FIN
            - FJI
            - FLK
            - FRA
            - FRO
            - FSM
            - GAB
            - GBR
            - GEO
            - GGY
            - GHA
            - GIB
            - GIN
            - GLP
            - GMB
            - GNB
            - GNQ
            - GRC
            - GRD
            - GRL
            - GTM
            - GUF
            - GUM
            - GUY
            - HKG
            - HMD
            - HND
            - HRV
            - HTI
            - HUN
            - IDN
            - IMN
            - IND
            - IOT
            - IRL
            - IRN
            - IRQ
            - ISL
            - ISR
            - ITA
            - JAM
            - JEY
            - JOR
            - JPN
            - KAZ
            - KEN
            - KGZ
            - KHM
            - KIR
            - KNA
            - KOR
            - KWT
            - LAO
            - LBN
            - LBR
            - LBY
            - LCA
            - LIE
            - LKA
            - LSO
            - LTU
            - LUX
            - LVA
            - MAC
            - MAF
            - MAR
            - MCO
            - MDA
            - MDG
            - MDV
            - MEX
            - MHL
            - MKD
            - MLI
            - MLT
            - MMR
            - MNE
            - MNG
            - MNP
            - MOZ
            - MRT
            - MSR
            - MTQ
            - MUS
            - MWI
            - MYS
            - MYT
            - NAM
            - NCL
            - NER
            - NFK
            - NGA
            - NIC
            - NIU
            - NLD
            - NOR
            - NPL
            - NRU
            - NZL
            - OMN
            - PAK
            - PAN
            - PCN
            - PER
            - PHL
            - PLW
            - PNG
            - POL
            - PRI
            - PRK
            - PRT
            - PRY
            - PSE
            - PYF
            - QAT
            - REU
            - ROU
            - RUS
            - RWA
            - SAU
            - SDN
            - SEN
            - SGP
            - SGS
            - SHN
            - SJM
            - SLB
            - SLE
            - SLV
            - SMR
            - SOM
            - SPM
            - SRB
            - SSD
            - STP
            - SUR
            - SVK
            - SVN
            - SWE
            - SWZ
            - SXM
            - SYC
            - SYR
            - TCA
            - TCD
            - TGO
            - THA
            - TJK
            - TKL
            - TKM
            - TLS
            - TON
            - TTO
            - TUN
            - TUR
            - TUV
            - TWN
            - TZA
            - UGA
            - UKR
            - UMI
            - URY
            - USA
            - UZB
            - VAT
            - VCT
            - VEN
            - VGB
            - VIR
            - VNM
            - VUT
            - WLF
            - WSM
            - XKX
            - YEM
            - ZAF
            - ZMB
            - ZWE
          nullable: true
      required:
        - line1
        - city
        - state
        - zip
        - country
    OrgContact:
      type: object
      properties:
        email:
          type: string
          description: Contact email address
          example: contact@organization.org
          nullable: true
        name:
          type: string
          description: Contact person name
          example: John Doe
          nullable: true
        phone:
          type: string
          description: Contact phone number
          example: +1 (555) 123-4567
          nullable: true
        title:
          type: string
          description: Contact person title or role
          example: Executive Director
          nullable: true
      required:
        - email
        - name
        - phone
        - title
    OrgDeployment:
      type: object
      properties:
        chainId:
          type: number
          description: ID of the blockchain network where the contract is deployed
          example: 1
        contractAddress:
          type: string
          description: Smart contract address on the specified chain
          example: '0x1234567890123456789012345678901234567890'
        usdcBalance:
          type: object
          description: >-
            Current USDC balance of the org contract in the smallest currency
            unit (1000000 = 1 USD)
          example: '2000000'
          nullable: true
        isDeployed:
          type: boolean
          description: >-
            Whether the org contract is deployed on the specified chain (true)
            or not (false). Even if a contract is not deployed, its address can
            already be used to receive direct transfer donations.
          example: true
      required:
        - chainId
        - contractAddress
        - usdcBalance
        - isDeployed
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````