Extending SCRIPE: Custom Fields & Marketplace Plugins

Walkthrough extending entity schemas with custom fields and installing sandboxed marketplace plugins.

Customize your platform without modifying backend code by using EAV custom fields and installing third-party marketplace plugins.

Step 1: Defining Custom Field Groups & Data Types

Attach custom text, numeric, date, or lookup fields to core platform entities like reservations and parties.

Custom Field Definition (POST /api/v1/custom-fields/definitions)JSON
{
  "targetEntity": "Venue.Reservation",
  "name": "EmergencyContactPhone",
  "labelKey": "custom.reservation.emergencyPhone",
  "valueType": "Text",
  "isRequired": true,
  "isEncrypted": true,
  "validationRegex": "^\\+?[1-9]\\d{1,14}$",
  "fieldGroupId": "fg_safety_protocol"
}

Step 2: Field Validation & AES-256 Encryption

Configure regex pattern matching, required flags, and secure sensitive fields with field-level encryption.

Step 3: Discovering & Installing Marketplace Plugins

Browse the plugin directory, review security permissions, and install extensions in a single click.

Step 4: Webhook Integration & Event Subscriptions

Connect external applications by subscribing to real-time webhook events with HMAC signature verification.

Node.js Webhook Receiver (HMAC-SHA256 Verification)TypeScript
import crypto from "crypto";

/**
 * Documentation for verifyScripeWebhook
 */
export function verifyScripeWebhook(
  rawBody: string,
  signatureHeader: string,
  signingSecret: string
): boolean {
  const computedHash = crypto
    .createHmac("sha256", signingSecret)
    .update(rawBody, "utf8")
    .digest("hex");

  return crypto.timingSafeEqual(
    Buffer.from(computedHash, "utf8"),
    Buffer.from(signatureHeader, "utf8")
  );
}