paymentSessions.create
Create a payment session for processing transactions with Ryft. Specify amount, currency, and payment details to initiate secure payment flows.
Instructions
Create a Ryft payment session.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| currency | Yes | ||
| customerEmail | No | ||
| customerId | No | ||
| paymentType | No | ||
| entryMode | No | ||
| captureFlow | No | ||
| metadata | No |
Implementation Reference
- src/tools/payment-sessions.ts:58-70 (handler)The handler function for paymentSessions.create that parses arguments and calls the Ryft API.
async (args) => { const parsed = paymentSessionCreateSchema.parse(args); return client.post('/payment-sessions', { amount: parsed.amount, currency: parsed.currency, customerEmail: parsed.customerEmail, paymentType: parsed.paymentType, entryMode: normalizeEntryMode(parsed.entryMode), captureFlow: parsed.captureFlow, metadata: parsed.metadata, ...(parsed.customerId ? { customer: { id: parsed.customerId } } : {}), }); }, - src/tools/payment-sessions.ts:6-15 (schema)The Zod schema defining the inputs for paymentSessions.create.
const paymentSessionCreateSchema = z.object({ amount: z.number().int().positive(), currency: z.string().length(3), customerEmail: z.string().email().optional(), customerId: z.string().optional(), paymentType: z.enum(['Standard', 'Recurring']).optional(), entryMode: z.enum(['Online', 'MOTO', 'CardPresent', 'Ecommerce', 'Moto']).optional(), captureFlow: z.enum(['Automatic', 'Manual']).optional(), metadata: z.record(z.string(), z.string()).optional(), }); - src/tools/payment-sessions.ts:54-71 (registration)Registration of the paymentSessions.create tool.
registerTool( 'paymentSessions.create', 'Create a Ryft payment session.', paymentSessionCreateSchema.shape, async (args) => { const parsed = paymentSessionCreateSchema.parse(args); return client.post('/payment-sessions', { amount: parsed.amount, currency: parsed.currency, customerEmail: parsed.customerEmail, paymentType: parsed.paymentType, entryMode: normalizeEntryMode(parsed.entryMode), captureFlow: parsed.captureFlow, metadata: parsed.metadata, ...(parsed.customerId ? { customer: { id: parsed.customerId } } : {}), }); }, );