create method

Future<Response<RazorpayWebhook>> create({
  1. required RazorpayWebhookCreateRequestBody params,
  2. String? accountId,
  3. void callback(
    1. RazorpayApiException?,
    2. Response<RazorpayWebhook>?
    )?,
})

Creates a webhook (merchant or partner context)

@param params - Check doc for required params @param accountId - Optional: The unique identifier of the partner account. If provided, creates webhook under that account (v2).

Implementation

Future<Response<RazorpayWebhook>> create({
  required RazorpayWebhookCreateRequestBody params,
  String? accountId,
  void Function(RazorpayApiException?, Response<RazorpayWebhook>?)? callback,
}) async {
  Map<String, dynamic> payload;

  if (accountId != null && accountId.isNotEmpty) {
    payload = {
      'version': 'v2',
      'url': '$BASE_URL/$accountId$WEBHOOKS_BASE',
      'data': params.toJson(),
    };
  } else {
    payload = {
      'url': WEBHOOKS_BASE, // Merchant context (v1)
      'data': params.toJson(),
    };
  }

  return api.post<RazorpayWebhook>(
    payload,
    fromJsonFactory: RazorpayWebhook.fromJson,
    callback: callback,
  );
}