Complete an incoming payment
An authorized client can complete an unexpired incoming payment to indicate it will not send any additional payments to the wallet address.
These code snippets pass the wallet address and incoming payment URL to the resource server and mark the payment as completed.
Before you begin
We recommend creating a wallet account on Rafiki.Money, a test wallet provider that’s part of the Interledger testnet. Creating an account allows you to test your client against the Open Payments APIs by using an ILP-enabled wallet funded with play money.
Mark an incoming payment as complete
- Node 18
- A package manager such as NPM or PNPM
-
Open Payments SDK
- TSX
Additional configuration
Add "type": "module"
to package.json
Add the following to tsconfig.json
Get started
Import dependencies
import { createAuthenticatedClient } from "@interledger/open-payments";
Initialize Open Payments 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));
Run tsx path/to/directory/index.ts
.
- Node 18 or higher
- A package manager such as NPM or PNPM
-
Open Payments SDK
Additional configuration
Add "type": "module"
to package.json
Get started
Import dependencies
import { createAuthenticatedClient } from "@interledger/open-payments";
Initialize Open Payments 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));
Run node path/to/directory/index.js
.