NestJS Monobank

Відкритий ключ

Відкритий ключ для верифікації підписів

У цьому розділі описано, як отримати відкритий ECDSA-ключ Monobank, який використовується для перевірки підписів у вебхуках та інших запитах, підписаних банком.

Отримання відкритого ключа

Метод pubkey виконує запит до Monobank Merchant API та повертає base64-закодований x.509 ECDSA відкритий ключ.

🔐 Ключ можна кешувати. Робити запит на отримання ключа потрібно лише у випадку, якщо перевірка підпису з поточним ключем перестала працювати.

import { Injectable } from '@nestjs/common';
import { MonobankService } from 'nestjs-monobank';

@Injectable()
export class PubkeyService {
     constructor(private readonly monobankService: MonobankService) {}

     async getPubkey() {
          const merchant = await this.monobankService.merchant.getPubkey();
          return merchant;
     }
}

Обробка відповіді від API

API повертає обʼєкт з відкритим ключем у форматі Base64.

{
    "key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFK0UxRnBVZzczYmhGdmp2SzlrMlhJeTZtQkU1MQpib2F0RU1qU053Z1l5ZW55blpZQWh3Z3dyTGhNY0FpT25SYzNXWGNyMGRrY2NvVnFXcVBhWVQ5T3hRPT0KLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tCg=="
}

Отриманий ключ використовується виключно для перевірки цифрового підпису, який Monobank додає до вебхуків та інших підписаних запитів.

На цій сторінці