Ir al contenido
GitHub

Create an incoming payment grant request

Esta página aún no está disponible en tu idioma.

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

The snippets below enable a client to request a grant for an incoming payment. The request to the authorization server must indicate the incoming-payment and the actions the client wants to take at the resource 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.

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
})
// Get wallet address information
const walletAddress = await client.walletAddress.get({
url: WALLET_ADDRESS
})
// Request incoming payment grant
const grant = await client.grant.request(
{
url: walletAddress.authServer
},
{
access_token: {
access: [
{
type: 'incoming-payment',
actions: ['list', 'read', 'read-all', 'complete', 'create']
}
]
}
}
)
// Check grant state
if (isPendingGrant(grant)) {
throw new Error('Expected non-interactive grant')
}
// Output
console.log('INCOMING_PAYMENT_ACCESS_TOKEN =', grant.access_token.value)
console.log(
'INCOMING_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