/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { cardsLink } from "../../funcs/cardsLink.js"; import * as operations from "../../models/operations/index.js"; import { formatResult, ToolDefinition } from "../tools.js"; const args = { request: operations.LinkCardRequest$inboundSchema, }; export const tool$cardsLink: ToolDefinition = { name: "cards-link", description: `Link a card to an existing Moov account. Read our [accept card payments guide](https://docs.moov.io/guides/sources/cards/accept-card-payments/#link-a-card) to learn more. Only use this endpoint if you have provided Moov with a copy of your PCI attestation of compliance. During card linking, the provided data will be verified by submitting a $0 authorization (account verification) request. If \`merchantAccountID\` is provided, the authorization request will contain that account's statement descriptor and address. Otherwise, the platform account's profile will be used. If no statement descriptor has been set, the authorization will use the account's name instead. It is strongly recommended that callers include the \`X-Wait-For\` header, set to \`payment-method\`, if the newly linked card is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment Methods](https://docs.moov.io/api/sources/payment-methods/list/) endpoint to wait for the new payment methods to be available for use. To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the \`/accounts/{accountID}/cards.write\` scope.`, args, tool: async (client, args, ctx) => { const [result, apiCall] = await cardsLink( client, args.request, { fetchOptions: { signal: ctx.signal } }, ).$inspect(); if (!result.ok) { return { content: [{ type: "text", text: result.error.message }], isError: true, }; } const value = result.value.result; return formatResult(value, apiCall); }, };