Create Tochka payment link with receipt and persist invoice (bot)
Usage
const { create_link_and_invoice } = require('@dieugene/tochka-bot-get-payment-link');
const { invoice, payment_url, invoice_id, response } = await create_link_and_invoice({
client_options: {
base_url: process.env.TOCHKA_BASE_URL,
access_token: process.env.TOCHKA_ACCESS_TOKEN,
default_customer_code: process.env.TOCHKA_CUSTOMER_CODE
},
domain: 'prod',
amount: 1000,
email: 'customer@example.com',
service_name: 'Услуга Х',
product_code: 'search_arc',
purpose: 'Оплата услуги Х',
redirect_url: 'https://example.com/success',
fail_redirect_url: 'https://example.com/fail',
payment_mode: ['sbp', 'card'],
pre_authorization: false,
ttl: 10080,
callback_url: 'https://functions.yandexcloud.net/xxxx',
callback_payload: { some: 'data' }
});
Parameters
- client_options: { base_url, access_token, default_customer_code }
- domain: string (default: 'career-bot-tochka')
- amount: number (> 0, required)
- email: string
- service_name: string
- product_code: string (required)
- purpose: string (default: 'Оплата услуг')
- redirect_url: string
- fail_redirect_url: string
- payment_mode: array of strings (default: ['sbp', 'card'])
- pre_authorization: boolean
- ttl: number (default: 10080)
- callback_url: string. Fallbacks: process.env.PAYMENT_CALLBACK_URL → process.env.THIS_FUNCTION_URL
- callback_payload: object. Will be augmented automatically.
Behavior
- Persists an invoice via
@dieugene/payments-db
withuuid = invoice_id
,domain
,amount
anddata
containing:callback_data
: { url, payload }product_code
: value ofservice_name
(if provided)
- Automatically augments
callback_payload
with:invoice_id
: operation identifier from Tochkais_webhook: true
Return value
{
invoice, // persisted invoice record
payment_url, // Tochka payment link
invoice_id, // operation identifier
response // raw API response
}