Skip to content
GitHub

Continue a grant request

The Grant Continuation Request API lets you continue an interactive grant request during or after user interaction.

An authorization server can require a user (typically the client’s end user) to approve the grant by interacting directly with the server. For example, by tapping an Approve button on a web page provided by the auth server. Outgoing payment grant requests require interactive grants.

After the grant is approved, the auth server sends the client an interaction reference (interact_ref). The client must send a continuation request containing the reference back to the auth server to obtain an access token.

The code snippets below let an authorized client send a grant continuation request to an authorization server.

We recommend creating a wallet account on the test wallet. 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
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 } from '@interledger/open-payments'
// Initialize client
const client = await createAuthenticatedClient({
walletAddressUrl: WALLET_ADDRESS,
privateKey: PRIVATE_KEY_PATH,
keyId: KEY_ID
})
// Continue grant
const grant = await client.grant.continue(
{
accessToken: CONTINUE_ACCESS_TOKEN,
url: CONTINUE_URI
},
{
interact_ref: interactRef
}
)
// Check grant state
if (!isFinalizedGrant(grant)) {
throw new Error('Expected finalized grant. Received non-finalized grant.')
}
// Output
console.log('OUTGOING_PAYMENT_ACCESS_TOKEN =', grant.access_token.value)
console.log(
'OUTGOING_PAYMENT_ACCESS_TOKEN_MANAGE_URL =',
grant.access_token.manage
)

For TypeScript, run tsx path/to/directory/index.ts. View full TS source

For JavaScript, run node path/to/directory/index.js. View full JS source