Splitit · Schema

Splitit Installment Plan

Schema for a Splitit installment plan created on a shopper's existing credit card

PaymentsInstallmentsBuy Now Pay LaterCredit CardFintechE-commerce

Properties

Name Type Description
installmentPlanNumber string Unique identifier for the installment plan assigned by Splitit
status string Current status of the installment plan
planData object Core data for the installment plan
consumerData object
creditCardDetails object
installments array Individual installment charge schedule
redirectUrls object
createdAt string ISO 8601 timestamp when the plan was created
updatedAt string ISO 8601 timestamp of the last plan update
View JSON Schema on GitHub

JSON Schema

installment-plan.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/splitit/json-schema/installment-plan.json",
  "title": "Splitit Installment Plan",
  "description": "Schema for a Splitit installment plan created on a shopper's existing credit card",
  "type": "object",
  "properties": {
    "installmentPlanNumber": {
      "type": "string",
      "description": "Unique identifier for the installment plan assigned by Splitit"
    },
    "status": {
      "type": "string",
      "description": "Current status of the installment plan",
      "enum": [
        "Initialized",
        "PendingPayment",
        "Active",
        "Cleared",
        "Cancelled",
        "Refunded",
        "PartiallyRefunded"
      ]
    },
    "planData": {
      "type": "object",
      "description": "Core data for the installment plan",
      "required": ["totalAmount", "numberOfInstallments"],
      "properties": {
        "totalAmount": {
          "$ref": "#/$defs/Money"
        },
        "numberOfInstallments": {
          "type": "integer",
          "description": "Number of monthly installments",
          "minimum": 2,
          "maximum": 36
        },
        "refOrderNumber": {
          "type": "string",
          "description": "Merchant reference order number for cross-referencing"
        },
        "extendedParams": {
          "type": "object",
          "description": "Merchant-defined key-value parameters for custom data",
          "additionalProperties": {
            "type": "string"
          }
        },
        "firstInstallmentAmount": {
          "$ref": "#/$defs/Money"
        },
        "firstChargeDate": {
          "type": "string",
          "format": "date",
          "description": "Scheduled date for the first installment charge"
        }
      }
    },
    "consumerData": {
      "$ref": "#/$defs/ConsumerData"
    },
    "creditCardDetails": {
      "$ref": "#/$defs/CreditCardDetails"
    },
    "installments": {
      "type": "array",
      "description": "Individual installment charge schedule",
      "items": {
        "$ref": "#/$defs/Installment"
      }
    },
    "redirectUrls": {
      "$ref": "#/$defs/RedirectUrls"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp when the plan was created"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 timestamp of the last plan update"
    }
  },
  "required": ["installmentPlanNumber", "status", "planData"],
  "$defs": {
    "Money": {
      "type": "object",
      "description": "A monetary value with currency",
      "required": ["value", "currency"],
      "properties": {
        "value": {
          "type": "number",
          "description": "Monetary amount",
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217 currency code",
          "pattern": "^[A-Z]{3}$",
          "examples": ["USD", "EUR", "GBP", "AUD", "CAD"]
        }
      }
    },
    "ConsumerData": {
      "type": "object",
      "description": "Shopper/consumer information",
      "properties": {
        "fullName": {
          "type": "string",
          "description": "Shopper's full legal name"
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "Shopper's email address"
        },
        "phoneNumber": {
          "type": "string",
          "description": "Shopper's phone number in international format"
        },
        "civilId": {
          "type": "string",
          "description": "National identification number if applicable"
        },
        "billingAddress": {
          "$ref": "#/$defs/Address"
        }
      }
    },
    "CreditCardDetails": {
      "type": "object",
      "description": "Payment card details (handle with PCI DSS compliance)",
      "properties": {
        "cardNumber": {
          "type": "string",
          "description": "Full credit card number (PAN)",
          "pattern": "^[0-9]{13,19}$"
        },
        "cardExpYear": {
          "type": "integer",
          "description": "Card expiration year (4 digits)",
          "minimum": 2020,
          "maximum": 2099
        },
        "cardExpMonth": {
          "type": "integer",
          "description": "Card expiration month",
          "minimum": 1,
          "maximum": 12
        },
        "cardCvv": {
          "type": "string",
          "description": "Card security code",
          "pattern": "^[0-9]{3,4}$"
        },
        "cardHolderFullName": {
          "type": "string",
          "description": "Name as it appears on the credit card"
        }
      }
    },
    "Address": {
      "type": "object",
      "description": "Physical postal address",
      "properties": {
        "addressLine1": {
          "type": "string",
          "description": "Primary street address"
        },
        "addressLine2": {
          "type": "string",
          "description": "Secondary address information (apt, suite, etc.)"
        },
        "city": {
          "type": "string",
          "description": "City name"
        },
        "state": {
          "type": "string",
          "description": "State, province, or region code"
        },
        "country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code",
          "pattern": "^[A-Z]{2}$"
        },
        "zip": {
          "type": "string",
          "description": "Postal or ZIP code"
        }
      }
    },
    "Installment": {
      "type": "object",
      "description": "A single installment charge within a plan",
      "properties": {
        "installmentNumber": {
          "type": "integer",
          "description": "Sequential number of this installment (1-indexed)",
          "minimum": 1
        },
        "amount": {
          "$ref": "#/$defs/Money"
        },
        "processDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "Scheduled or actual processing date and time"
        },
        "status": {
          "type": "string",
          "description": "Status of this installment charge",
          "enum": [
            "Pending",
            "Processing",
            "Succeeded",
            "Failed",
            "Refunded"
          ]
        }
      }
    },
    "RedirectUrls": {
      "type": "object",
      "description": "URLs for post-checkout redirection",
      "properties": {
        "succeeded": {
          "type": "string",
          "format": "uri",
          "description": "URL to redirect to on successful plan creation"
        },
        "failed": {
          "type": "string",
          "format": "uri",
          "description": "URL to redirect to on plan creation failure"
        },
        "cancelled": {
          "type": "string",
          "format": "uri",
          "description": "URL to redirect to if the shopper cancels"
        }
      }
    }
  }
}