# Sign funding power of attorney (FPOA)

Source: https://developer.avalara.com/products/returns/integration-guides/managed-returns/noe0861719748448/

Guide: Avalara Managed Returns API (U.S. and Canada)

# Sign funding power of attorney (FPOA)

Learn about the funding power of attorney (FPOA) and how to sign and track its status.

Before Avalara can file any returns on behalf of a client, the merchant must sign and submit an FPOA.

This authorization allows Avalara to withdraw funds for tax payments and is a mandatory prerequisite for filing.

## What is the FPOA?

The FPOA gives Avalara permission to:

-   Pull funds from the merchant’s bank account.

-   Remit payments to tax jurisdictions on their behalf.

The FPOA document is company-specific. If the client has multiple companies, each requires its own signed FPOA.

Note

Before signing an FPOA for Canada, the client needs to complete a one-time Canada screening questionnaire. This short set of questions helps Avalara decide that they’re able to file Canadian returns for the client.

-   If Avalara can’t file the client’s Canadian returns, the client must file them independently.

-   If Avalara can file the client’s Canadian returns, the client can proceed to sign the FPOA.

For details, see [Answer screener questions for Canada filing requirements](/managed-returns/mms2975618637385/ "Learn how to answer screening questions to determine if Avalara can file the client’s Canada returns.").

## Submit an FPOA

To request an FPOA signature, use the `fundingPoa` mutation.

**View request for U.S.**:

```
mutation FundingPOA {
  fundingPoa(
    input: {
    agreementType: "ACHDebit",
    currency: "USD",
    fundingEmailRecipient: "valid.recipient@example.com",
    requestEmail: true,
    requestWidget: false
  },
  companyId: 9327743,
  bankingContact: {
    name: "Steve Fidler",
    email: "Steve.recipient@example.com",
    phone: "(555) 555-5555",
    line1: "123 Main St",
    city: "Seattle",
    region: "WA",
    postalCode: "98001",
    country: "US"
  }
  ) {
    agreementType
    errorMessage
    javaScript
    lastActivated
    lastPolled
    lastSigned
    methodReturn {
      javaScript
      javaScriptReady
      method
    }
    recipient
    requestId
    sender
    status
    agreementVersion
    subledgerProfileId
    subscriptionType
    templateRequestId
    widgetId
  }
}
```

**View request for Canada**:

```
mutation FundingPOA {
  fundingPoa(
    input: {
    agreementType: "ACHDebit",
    currency: "CAD",
    fundingEmailRecipient: "valid.recipient@example.com",
    requestEmail: true,
    requestWidget: false
  },
  companyId: 9327743,
  bankingContact: {
    name: "Steve Fidler",
    email: "Steve.recipient@example.com",
    phone: "(416) 555-0123",
    line1: "456 Queen St W",
    city: "Toronto",
    region: "ON",
    postalCode: "M5V 2B6",
    country: "CA"
  }
  ) {
    agreementType
    errorMessage
    javaScript
    lastActivated
    lastPolled
    lastSigned
    methodReturn {
      javaScript
      javaScriptReady
      method
    }
    recipient
    requestId
    sender
    status
    agreementVersion
    subledgerProfileId
    subscriptionType
    templateRequestId
    widgetId
  }
}
```

**View response for the U.S. and Canada**:

```
{
  "data": {
    "fundingPoa": {
      "agreementType": "ACHDebit",
      "errorMessage": null,
      "javaScript": null,
      "lastActivated": null,
      "lastPolled": null,
      "lastSigned": null,
      "methodReturn": null,
      "recipient": "valid.recipient@example.com",
      "requestId": 0,
      "sender": "valid.recipient@example.com",
      "status": "Out for Signature",
      "agreementVersion": 0,
      "subledgerProfileId": 0,
      "subscriptionType": "Mrs",
      "templateRequestId": null,
      "widgetId": null
    }
  }
}
```

Note

-   Set `requestEmail: true` to send an email-based signing request.
-   Optionally, you can use `requestWidget: true` if embedding the signing experience in your application.

## Track FPOA status

Once you send the request, you can track the FPOA’s status directly by using the companies query.

**View request**:

```
query CompanyFundingStatus {
  companies(id: 123456) {
    errors {
      message
      extensions {
        documentation
      }
    }
    value {
      name
      fundingStatus {
        companyId
        lastActivated
        status
      }
    }
  }
}
```

**View response**:

```
{
  "data": {
    "companies": {
      "errors": [],
      "value": [
        {
          "name": "ABCDE",
          "fundingStatus": [
            {
              "companyId": "123456",
              "lastActivated": "2025-04-22T12:06:25.072",
              "status": "Out for Signature"
            }
          ]
        }
      ]
    }
  }
}
```

**FPOA statuses**:

-   **Out for Signature**: The POA document has been sent out and is awaiting signature.

-   **Signed**: The POA document has been successfully signed.

-   **Staged**: The signed POA is ready and staged for the next step in the process.

-   **Pending**: The POA process is in progress but not yet signed.

-   **None**: This represents an invalid or incomplete state, such as Aborted, Expired, or Idle. It also includes Invalid Data, Request Failed, or Unknown.

Important

-   Avalara can’t begin filing returns until the FPOA is approved.

-   Status polling and client notification are mandatory.

-   The partner must provide a separate signed FPOA for each company that they manage.