Skip to content
GitHub

Revoke a grant request

If an authorized client no longer needs access to protected resources, the client can revoke the corresponding grant request.

These code snippets enable a client to revoke (cancel) a grant that it was previously issued. When a grant request is revoked, the request is placed into a finalized state and no further updates to the grant are allowed.

Before you begin

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.

Revoke a grant request

Prerequisites
  • Node 20 or higher
  • A package manager such as NPM or PNPM
  • Open Payments SDK

  • TSX

    Additional configuration
  1. Add "type": "module" to package.json.
  2. Add the following to tsconfig.json
    {
    "compilerOptions": {
    "target": "ES2022",
    "module": "ES2022"
    }
    }
  3. Import createAuthenticatedClient from the Open Payments SDK.

    Import dependencies

    import { createAuthenticatedClient } from "@interledger/open-payments";
    Copied!
  4. Create an authenticated Open Payments client by providing the following properties:
    • walletAddressURL : your Open Payments-enabled wallet address that your client will use to authenticate itself to one or more authorization servers.
    • privateKey : the EdDSA-Ed25519 key or preferably the absolute or relative file path to the key that’s bound to your wallet address. A public key signed with this private key must be made available as a public JWK document at {walletAddressUrl}/jwks.json url.
    • keyId : the identifier of the private key and the corresponding public key.

      Initialize Open Payments client

      const client = await createAuthenticatedClient({
        walletAddressUrl: WALLET_ADDRESS,
        privateKey: PRIVATE_KEY_PATH,
        keyId: KEY_ID,
      });
      Copied!

Get started

Import dependencies

import { createAuthenticatedClient } from "@interledger/open-payments";
Copied!

Initialize Open Payments client

const client = await createAuthenticatedClient({
  walletAddressUrl: WALLET_ADDRESS,
  privateKey: PRIVATE_KEY_PATH,
  keyId: KEY_ID,
});
Copied!

Revoke grant

await client.grant.cancel({
  accessToken: CONTINUE_ACCESS_TOKEN,
  url: CONTINUE_URI,
});
Copied!

Run tsx path/to/directory/index.ts.

View full source

References