Skip to content
GitHub

Create a quote grant request

Last reviewed: Nov 3, 2026

The Grant Request API lets you request a grant for quote, outgoing payment, and incoming payment resources.

Before your client can call most of the Open Payments APIs, it must receive a grant from the appropriate authorization server.

The code snippets below let a client request a grant for a quote. The request to the authorization server must indicate the quote access type and the actions the client wants to take at the resource server.

We recommend you create an account on the Interledger test network. Creating an account allows you to test your client against the Open Payments APIs by using an ILP-enabled wallet funded with play money.

Authenticated client required
Prerequisites(opens in a new tab)
Initial configuration

If you’re using JavaScript, only do the first step.

  1. Add "type": "module" to package.json.

  2. Add the following to tsconfig.json

    {
    "compilerOptions": {
    "target": "ES2022",
    "module": "ES2022"
    }
    }
// Import dependencies
import {
createAuthenticatedClient,
isFinalizedGrantWithAccessToken
} from '@interledger/open-payments'
// Initialize client
const client = await createAuthenticatedClient({
walletAddressUrl: CLIENT_WALLET_ADDRESS,
privateKey: PRIVATE_KEY_PATH,
keyId: KEY_ID
})
// Get wallet address information
const walletAddress = await client.walletAddress.get({
url: WALLET_ADDRESS
})
// Request quote grant
const grant = await client.grant.request(
{
url: walletAddress.authServer
},
{
access_token: {
access: [
{
type: 'quote',
actions: ['create', 'read', 'read-all']
}
]
}
}
)
// Check grant state
if (!isFinalizedGrantWithAccessToken(grant)) {
throw new Error('Expected finalized grant')
}
// Output
console.log('QUOTE_ACCESS_TOKEN =', grant.access_token.value)
console.log('QUOTE_ACCESS_TOKEN_MANAGE_URL = ', grant.access_token.manage)