# Create Payout — Xendit

> Create a new payout on Xendit platform See the documentation

- Key: `xendit-create-payout`
- Type: Action (Write)
- Version: 0.0.2
- App: Xendit (`xendit`) — https://pipedream.com/apps/xendit.md
- This page (HTML): https://pipedream.com/apps/xendit/actions/create-payout
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/xendit/actions/create-payout/create-payout.mjs

## Description

Create a new payout on Xendit platform [See the documentation](https://developers.xendit.co/api-reference/#create-payout)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `referenceId` | `string` | Yes | A client defined payout identifier. This is the ID assigned to the payout on your system, such as a transaction or order ID. Does not need to be unique. |
| `channelCode` | `string` | Yes | Channel code of destination bank, e-wallet or OTC channel. List of supported channels can be found here |
| `accountHolderName` | `string` | Yes | Name of account holder as per the bank or e-wallet's records. Needs to match the registered account name exactly. |
| `accountNumber` | `string` | Yes | Account number of destination. Mobile numbers for e-wallet accounts. |
| `accountType` | `string` | No | Account type of the destination for currencies and channels that supports proxy transfers (ie: Using mobile number as account number) |
| `amount` | `string` | Yes | Amount to be sent to the destination account. Should be a multiple of the minimum increment for the selected channel. |
| `description` | `string` | No | Description to send with the payout. The recipient may see this e.g., in their bank statement (if supported) or in email receipts we send on your behalf. |
| `currency` | `string` | No | ISO 4217 Currency Code. |
| `emailTo` | `string[]` | No | A list of email addresses to receive the payout details upon successful payout. Maximum of three email addresses. |
| `emailCc` | `string[]` | No | A list of email addresses to receive the payout details upon successful payout. Maximum of three email addresses. |
| `emailBcc` | `string[]` | No | A list of email addresses to receive a hidden copy of the payout details upon successful payout. Maximum of three email addresses. |
| `metadata` | `object` | No | A list of objects of metadata key-value pairs. The key must be a string and the value can be a string or number. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "xendit",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "xendit-create-payout",
  arguments: {
    referenceId: "Reference ID",
    channelCode: "Channel Code",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "xendit-create-payout",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    xendit: { authProvisionId: "apn_xxxxxxx" },
    referenceId: "Reference ID",
    channelCode: "Channel Code",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "xendit-create-payout",
    "configured_props": {
      "xendit": { "authProvisionId": "apn_xxxxxxx" },
      "referenceId": "Reference ID",
      "channelCode": "Channel Code"
    }
  }'
```

---

- App: https://pipedream.com/apps/xendit.md · All apps: https://pipedream.com/apps
