Finalise checkout process by creating transactions and capturing payment

POST /v1/basket/{familyId}/checkout

Finalise checkout process by creating transactions and capturing payment

Path parameters

  • familyId string Required

    Family ID

application/json

Body

  • paymentIntentId string | null Required

    Stripe payment intent id

  • items object Required

    List of enrolments and trials

    Hide items attributes Show items attributes object
    • enrolments array[object] Required

      Enrolments

      Hide enrolments attributes Show enrolments attributes object
      • classId string

        Class ID

      • studentId string

        Student ID

      • pricingPlanId string

        Pricing plan ID

    • trials array[object] Required

      Trials

      Hide trials attributes Show trials attributes object
      • classId string

        Class ID

      • studentId string

        Student ID

      • trialAt string(date)

        Trial date

      • time string(time)

        Trial time

Responses

  • 200 application/json

    successful operation

    Hide response attributes Show response attributes object
    • aggregateId string Required

      aggregateId

    • transaction object Required

      Transaction schema

      Hide transaction attributes Show transaction attributes object
      • id string Required

        id

      • companyId string Required

        Company ID

      • familyId string Required

        Family ID

      • familyName string Required

        Family name

      • relatedTransactionId string | null

        Related transaction ID

      • type string Required

        Values are debit or credit.

      • date string(date) Required

        Date of transaction

      • description string Required

        Description of transaction

      • orderId string | null

        Order ID

      • deletedAt string(date-time) | null

        Deleted at date

    • details array[object] Required

      details

      Transaction Details with related entities schema

      Hide details attributes Show details attributes object
      • details object Required

        Transaction Detail schema

        Hide details attributes Show details attributes object
        • id string Required

          id

        • companyId string Required

          Company ID

        • transactionId string Required

          Transaction ID

        • type string Required

          Values are manual-debit, tax, additional-fee, registration-fee, tuition, trial, refund, payment-auto-failed, payment-auto-failed-reversal, product, discount-credit, upcoming-payment-adjustment, payment-manual, payment-manual-account-balance, discount, discount-tax, credit-note, manual-debit-credit, tax-credit, registration-fee-credit, tuition-credit, trial-credit, product-credit, additional-credit, custom-credit, payment-auto, payment-pending-card, payment-auto-account-balance, fee-class-manager, or fee-company.

        • amount integer Required

          Amount of transaction

        • description string Required

          Description of transaction

        • deletedAt string(date-time) | null

          Deleted at date

      • relatedEntities array[object] Required

        relatedEntities

        Transaction Detail Entity schema

        Hide relatedEntities attributes Show relatedEntities attributes object
        • id string Required

          id

        • companyId string Required

          Company ID

        • transactionDetailId string Required

          Transaction Detail ID

        • entityId string Required

          Entity ID

    • stats object Required

      Transaction stats

      Hide stats attributes Show stats attributes object
      • total integer Required

        Total amount of transaction

      • subtotal integer Required

        Subtotal amount of transaction

      • discountTotal integer Required

        Total discount amount of transaction

      • taxTotal integer Required

        Total tax amount of transaction

  • 204

    Successful operation with no content

POST /v1/basket/{familyId}/checkout
curl \
 --request POST 'https://classmanager.test/v1/basket/fml_123123123123/checkout' \
 --header "Content-Type: application/json" \
 --data '{"items":{"trials":[{"time":"09:00","classId":"cls_xxxxxxxx","trialAt":"2024-08-20","studentId":"stu_xxxxxxxx"}],"enrolments":[{"classId":"cls_xxxxxxxx","studentId":"stu_xxxxxxxx","pricingPlanId":"pp_xxxxxxxx"}]},"paymentIntentId":"pi_xxxxxxxx"}'
Request example
{
  "items": {
    "trials": [
      {
        "time": "09:00",
        "classId": "cls_xxxxxxxx",
        "trialAt": "2024-08-20",
        "studentId": "stu_xxxxxxxx"
      }
    ],
    "enrolments": [
      {
        "classId": "cls_xxxxxxxx",
        "studentId": "stu_xxxxxxxx",
        "pricingPlanId": "pp_xxxxxxxx"
      }
    ]
  },
  "paymentIntentId": "pi_xxxxxxxx"
}
Response examples (200)
[
  {
    "aggregateId": "trn_xxxxxxxxxxx",
    "transaction": {
      "id": "trn_123123123123",
      "companyId": "co_123123123123",
      "familyId": "fml_123123123123",
      "familyName": "Potter",
      "relatedTransactionId": "trn_123123123123",
      "type": "debit",
      "date": "2023-12-05",
      "description": "This is a transaction",
      "orderId": "ord_xxxxxxxxxxxxxxxxxxxxxxxxxx",
      "deletedAt": "2023-12-05 14:30:41"
    },
    "details": [
      {
        "details": {
          "id": "trn_123123123123",
          "companyId": "co_123123123123",
          "transactionId": "trn_123123123123",
          "type": "manual-debit",
          "amount": 100,
          "description": "This is a transaction",
          "deletedAt": "2023-12-05 14:30:41"
        },
        "relatedEntities": [
          {
            "id": "trn_123123123123",
            "companyId": "co_123123123123",
            "transactionDetailId": "trnd_123123123123",
            "entityId": "cls_123123123123"
          }
        ]
      }
    ],
    "stats": {
      "total": 1000,
      "subtotal": 950,
      "discountTotal": 30,
      "taxTotal": 20
    }
  }
]