Skip to content
GitHub

Complete an incoming payment

The Complete an Incoming Payment API lets you complete an unexpired incoming payment.

When a client completes an unexpired payment, it tells the recipient’s account servicing entity that no further payments will be sent toward the incoming payment resource.

The code snippets below let an authorized client pass a wallet address and incoming payment URL to the recipient’s resource server and mark the payment as completed.

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
})
// Complete incoming payment
const incomingPayment = await client.incomingPayment.complete({
url: INCOMING_PAYMENT_URL,
accessToken: INCOMING_PAYMENT_ACCESS_TOKEN
})
// Output
console.log('INCOMING PAYMENT:', JSON.stringify(incomingPayment, null, 2))

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