Список платежей

Шаги для получения списка всех платежей с возможностью пагинации

В этом разделе мы рассмотрим, как получить список всех платежей, используя API Yookassa. Это позволяет запрашивать платежи, фильтровать их по дате и ограничивать количество выводимых записей. Этот функционал полезен для отображения истории платежей или для обработки большого объема данных с использованием пагинации.

Вызов метода для получения списка платежей

Метод getPayments позволяет получать список всех платежей. Вы можете использовать его для фильтрации платежей по датам, а также задавать ограничение на количество отображаемых платежей на странице (пагинация).

Функция имеет следующие параметры:

  • limit (число) — максимальное количество платежей, которое будет возвращено на одну страницу.

  • from (строка) — начальная дата в формате YYYY-MM-DD для фильтрации платежей по дате.

  • to (строка) — конечная дата в формате YYYY-MM-DD для фильтрации платежей по дате.

import { YookassaService } from 'nestjs-yookassa';
 
@Injectable()
export class PaymentService {
  	constructor(private readonly yookassaService: YookassaService) {}
 
  	async getPaymentsList() {
		const limit = 2; // Ограничение на количество платежей
		const from = '2025-01-01'; // Начальная дата фильтра
		const to = '2025-01-31'; // Конечная дата фильтра
 
		const payments = await this.yookassaService.getPayments(limit, from, to);
 
		return payments
 	}
}

Обработка ответа от API

Ответ от API содержит массив объектов PaymentDetails, где каждый объект представляет собой информацию о платеже. Пример ответа может быть следующим:

{
	"type": "list", // Тип ответа, в данном случае список
	"next_cursor": "2f1c5d0c-000f-5000-9000-1bc0db33907d", // Указатель на следующую страницу (для пагинации)
	"items": [
		{
			"id": "2f1c6950-000f-5000-b000-142aa79ed0ff",
			"status": "succeeded",
			"amount": {
				"value": "529.00",
				"currency": "RUB"
			},
			"income_amount": {
				"value": "510.48",
				"currency": "RUB"
			},
			"description": "Test payment",
			"recipient": {
				"account_id": "497037",
				"gateway_id": "2358944"
			},
			"payment_method": {
				"type": "bank_card",
				"id": "2f1c6950-000f-5000-b000-142aa79ed0ff",
				"saved": false,
				"status": "inactive",
				"title": "Bank card *4444",
				"card": {
					"first6": "555555",
					"last4": "4444",
					"expiry_year": "2044",
					"expiry_month": "04",
					"card_type": "MasterCard",
					"card_product": {
						"code": "E"
					},
					"issuer_country": "US"
				}
			},
			"captured_at": "2025-01-17T13:06:01.264Z",
			"created_at": "2025-01-17T13:05:20.062Z",
			"test": true,
			"refunded_amount": {
				"value": "0.00",
				"currency": "RUB"
			},
			"paid": true,
			"refundable": true,
			"metadata": {
				"order_id": "12345678"
			},
			"authorization_details": {
				"rrn": "224984783956865",
				"auth_code": "769976",
				"three_d_secure": {
					"applied": false,
					"method_completed": false,
					"challenge_completed": false
				}
			}
		},
		{
			"id": "2f1c5df0-000f-5000-8000-11e6d86b5540",
			"status": "canceled",
			"amount": {
				"value": "100.00",
				"currency": "RUB"
			},
			"description": "Test payment",
			"recipient": {
				"account_id": "497037",
				"gateway_id": "2358944"
			},
			"payment_method": {
				"type": "yoo_money",
				"id": "2f1c5df0-000f-5000-8000-11e6d86b5540",
				"saved": false,
				"status": "inactive",
				"title": "YooMoney wallet 410011758831136",
				"account_number": "410011758831136"
			},
			"created_at": "2025-01-17T12:16:48.321Z",
			"test": true,
			"paid": false,
			"refundable": false,
			"metadata": {
				"order_id": "12345678"
			},
			"cancellation_details": {
				"party": "merchant",
				"reason": "canceled_by_merchant"
			}
		}
	]
}