Skip to content
GitHub

Get an outgoing payment

An authorized client can look up the state of an outgoing payment on a wallet address. This is useful when a client must determine if an outgoing payment is still active and pending payment.

These code snippets return the state and details of a specific outgoing payment, if found.

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.

Get the state of an outgoing payment

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!

Get outgoing payment

const outgoingPayment = await client.outgoingPayment.get({
  url: OUTGOING_PAYMENT_URL,
  accessToken: OUTGOING_PAYMENT_ACCESS_TOKEN,
});
Copied!

Output

console.log("OUTGOING PAYMENT:", outgoingPayment);
Copied!

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

View full source

References