Skip to content
GitHub

Create an outgoing payment

After a quote is accepted and the authorized client obtains the requisite grant from the authorization server of the sender’s ASE, the client can create an outgoing payment resource against the sender’s wallet address.

These code snippets create an outgoing payment to a given wallet address. The amount of the outgoing payment is based on the amounts in the associated quote.

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
})
// Create outgoing payment
const outgoingPayment = await client.outgoingPayment.create(
{
url: walletAddress.resourceServer,
accessToken: OUTGOING_PAYMENT_ACCESS_TOKEN
},
{
walletAddress: WALLET_ADDRESS,
quoteId: QUOTE_URL
}
)
// Output
console.log('OUTGOING_PAYMENT_URL = ', outgoingPayment.id)

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