What are Payouts and Payment Plan?

Payouts and Payment Plan are essential configurations for setting up how you receive payments after a student books a property. They ensure that your payment process is smooth and transparent.

  • Payouts: When “Students must make payment online” is set to Yes, Student.com will collect the payment from the student and transfer it to you via the configured payouts. Available payout methods include Stripe, Virtual Credit Card, or Bank Transfer. In this case, a Payout Plan is required.

  • Payment methods: When “Students must make payment online” is set to No, students will pay you directly, and Student.com will not be involved in the payment process. You’ll need to configure a payment methods to clearly instruct students on how to pay you — for example, via offline methods or bank transfer. Note that even though Student.com doesn’t collect the payment, a service fee will still apply once the booking is confirmed.

Students must make payment online setting

Create Payout

Create Payout

  • API: createOnlinePaymentMethod

  • Purpose & Use Cases: When “Students must make payment online” is set to Yes, Student.com will collect the payment from the student and transfer it to you via the configured payouts. In this case, a Payout Plan is required. Supported payout methods include:

    • Stripe
    • Virtual Credit Card (VCC)
    • Bank Transfer

  • Request:
Attribute Name Data Type Required Details
name NonEmptyString Yes The name of the payout
methodType OnlinePaymentMethodType Yes The type of the payout; Possible values: STRIPE VIRTUAL_CREDIT_CARD BANK_TRANSFER
properties OnlinePaymentMethodBankPropertyInput[] Yes A list of property related to the payment methods;

OnlinePaymentMethodBankPropertyInput is an object includes,
propertyId: DecodedPropertyID!;
stripes OnlinePaymentMethodStripeInput Yes when methodType is set to STRIPE Detail of payment method Stripes;

OnlinePaymentMethodStripeInput is an object includes,
stripeId: NonEmptyString!;
virtualCreditCards OnlinePaymentMethodVirtualCreditCardInput Yes when methodType is set to VIRTUAL_CREDIT_CARD Detail of payment method Virtual Credit Cards;

OnlinePaymentMethodVirtualCreditCardInput is an object includes,
email: NonEmptyString!
bankTransfers OnlinePaymentMethodBankTransferInput Yes when methodType is set to BANK_TRANSFER Detail of payment method Bank Transfers;

OnlinePaymentMethodBankTransferInput is an object includes,
data: JSON!
  QUERY
mutation CreateOnlinePaymentMethod($input: CreateOnlinePaymentMethodInput) {
  createOnlinePaymentMethod(input: $input) {
    id
    landlordId
    name
    methodType
    createdAt
    updatedAt
    stripes {
      stripeId
    }
    virtualCreditCards {
      email
    }
    bankTransfers {
      data
    }
    properties {
      id
    }
    updatedBy {
      id
      firstName
      lastName
      phone
      email
    }
  }
}

GRAPHQL VARIABLES
{
    "input": {
        "name": "open api test payout 02",
        "methodType": "VIRTUAL_CREDIT_CARD",
        "virtualCreditCards": {
      "email": "1010@qq.com"
    },
        "properties": [
            {
                "propertyId": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDc3OX0="
            }
        ]
    }
}
  
  • Response:
  {
    "data": {
        "createOnlinePaymentMethod": {
            "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjN9",
            "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
            "name": "open api test payout 02",
            "methodType": "VIRTUAL_CREDIT_CARD",
            "createdAt": "2025-05-29T08:14:02+00:00",
            "updatedAt": "2025-05-29T08:14:02+00:00",
            "stripes": null,
            "virtualCreditCards": {
                "email": "1010@qq.com"
            },
            "bankTransfers": null,
            "properties": [
                {
                    "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg4N30="
                }
            ],
            "updatedBy": {
                "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                "firstName": "tyra 2",
                "lastName": "test1",
                "phone": "(+86) 15000089474",
                "email": "tyra.huang+1@student.com"
            }
        }
    }
}
  
  • Error Message:
Error Message Description
property data is wrong Unable to create payout because input.propertyIds contain duplicate or non-existent IDs
Invalid property id Access denied because the property.landlordId does not match the token.landlord
Invalid property booking journey: ${property.bookingJourney}$ Unable to create a payout because property.bookingJourney is not in [BOOK, CONNECT]
properties`s apCategory is not KEY Unable to create a payout because property.apCategory is not KEY and methodType is STRIPE

Update Payout

  • API: updateOnlinePaymentMethod

  • Purpose & Use Cases: This API allows you to update the basic information of the payout.

  • Request:

Attribute Name Data Type Required Details
onlinePaymentMethodId DecodedWithdrawMethodID Yes Unique identifier for the payout
name NonEmptyString No The name of the payout
methodType OnlinePaymentMethodType No The type of the payout; Possible values: STRIPE VIRTUAL_CREDIT_CARD BANK_TRANSFER
stripes OnlinePaymentMethodStripeInput Yes when methodType is set to STRIPE Detail of payment method Stripes;

OnlinePaymentMethodStripeInput is an object includes,
stripeId: NonEmptyString!;
virtualCreditCards OnlinePaymentMethodVirtualCreditCardInput Yes when methodType is set to VIRTUAL_CREDIT_CARD Detail of payment method Virtual Credit Cards;

OnlinePaymentMethodVirtualCreditCardInput is an object includes,
email: NonEmptyString!
bankTransfers OnlinePaymentMethodBankTransferInput Yes when methodType is set to BANK_TRANSFER Detail of payment method Bank Transfers;

OnlinePaymentMethodBankTransferInput is an object includes,
data: JSON!
  QUERY
mutation UpdateOnlinePaymentMethod($input: updateOnlinePaymentMethodInput) {
  updateOnlinePaymentMethod(input: $input) {
    id
    landlordId
    name
    methodType
    createdAt
    updatedAt
    stripes {
      stripeId
    }
    virtualCreditCards {
      email
    }
    bankTransfers {
      data
    }
    properties {
      id
    }
    updatedBy {
      id
      firstName
      lastName
      phone
      email
    }
  }
}

 GRAPHQL VARIABLES
{
    "input": {
        "name": "update 002",
        "bankTransfers": {
            "data": {
                "beneficiary_account_number": "68684458",
                "beneficiary_name": "Test updates",
                "beneficiary_addr": "上海静安昌平路",
                "bank_address": "test",
                "beneficiary_bank_name": "Test name",
                "ibanNumber": "12323888777",
                "routingNumber": "23434",
                "sortCode": "234998",
                "account_number":"233333",
                "name_of_beneficiary":"test",
                "swift_code": "skws"
            }
        },
        "methodType": "BANK_TRANSFER",
        "onlinePaymentMethodId": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjN9=="
    }
}
  
  • Response:
  {
  "data": {
    "updateOnlinePaymentMethod": {
      "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjN9",
      "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
      "name": "test UpdateOnlinePaymentMethod 002",
      "methodType": "BANK_TRANSFER",
      "createdAt": "2025-05-29T08:14:02+00:00",
      "updatedAt": "2025-05-29T08:18:20+00:00",
      "stripes": null,
      "virtualCreditCards": null,
      "bankTransfers": {
        "data": {
          "ibanNumber": "12323888777",
          "accountNumber": "233333",
          "nameOfBeneficiary": "test",
          "sortCode": "234998"
        }
      },
      "properties": [
        {
          "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg4N30="
        }
      ],
      "updatedBy": {
        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
        "firstName": "tyra 2",
        "lastName": "test1",
        "phone": "(+86) 15000089474",
        "email": "tyra.huang+1@student.com"
      }
    }
  }
}
  

List Payouts

  • API: listOnlinePaymentMethods

  • Purpose & Use Cases: This API allows you to get the list of the payouts.

  • Request:

Attribute Name Data Type Required Details
pageNumber Int No The number of the page
pageSize Int No The size of the page
  QUERY
query ListOnlinePaymentMethods(
    $pageNumber: PositiveInteger
    $pageSize: PositiveInteger
) {
    listOnlinePaymentMethods(pageNumber: $pageNumber, pageSize: $pageSize) {
        onlinePaymentMethod {
            id
            landlordId
            name
            methodType
            createdAt
            updatedAt
            stripes {
                stripeId
            }
            virtualCreditCards {
                email
            }
            bankTransfers {
                data
            }
            properties {
                id
            }
            updatedBy {
                id
                firstName
                lastName
                phone
                email
            }
        }
        pageInfo {
            total
            totalPages
            currentPage
            pageSize
        }
    }
}


GRAPHQL VARIABLES
{
  "pageSize": 10,
  "pageNumber": 1
}
  
  • Response:
  {
    "data": {
        "listOnlinePaymentMethods": {
            "onlinePaymentMethod": [
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6Mzd9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "name",
                    "methodType": "VIRTUAL_CREDIT_CARD",
                    "createdAt": "2024-08-14T09:17:57+00:00",
                    "updatedAt": "2024-08-14T09:17:57+00:00",
                    "stripes": null,
                    "virtualCreditCards": {
                        "email": "fancey.zou@student.com"
                    },
                    "bankTransfers": null,
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg0Mn0="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                },
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NDV9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "Payout plan_JP",
                    "methodType": "VIRTUAL_CREDIT_CARD",
                    "createdAt": "2024-12-26T05:58:00+00:00",
                    "updatedAt": "2024-12-26T05:58:00+00:00",
                    "stripes": null,
                    "virtualCreditCards": {
                        "email": "kevin.wen+dashboard2@student.com"
                    },
                    "bankTransfers": null,
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg0Nn0="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                },
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NTN9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "faceny test",
                    "methodType": "VIRTUAL_CREDIT_CARD",
                    "createdAt": "2025-03-04T03:45:03+00:00",
                    "updatedAt": "2025-03-04T03:45:03+00:00",
                    "stripes": null,
                    "virtualCreditCards": {
                        "email": "fancey.zou@student.com"
                    },
                    "bankTransfers": null,
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg3NX0="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                },
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NTZ9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "payout",
                    "methodType": "VIRTUAL_CREDIT_CARD",
                    "createdAt": "2025-04-29T09:48:01+00:00",
                    "updatedAt": "2025-04-29T09:48:01+00:00",
                    "stripes": null,
                    "virtualCreditCards": {
                        "email": "tyra.huang@student.com"
                    },
                    "bankTransfers": null,
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDc3OH0="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                },
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjB9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "open api test payout 02",
                    "methodType": "VIRTUAL_CREDIT_CARD",
                    "createdAt": "2025-05-20T05:51:23+00:00",
                    "updatedAt": "2025-05-20T05:51:23+00:00",
                    "stripes": null,
                    "virtualCreditCards": {
                        "email": "1010@qq.com"
                    },
                    "bankTransfers": null,
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDc3OX0="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                },
                {
                    "id": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjN9",
                    "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6NDEyN30=",
                    "name": "test UpdateOnli",
                    "methodType": "BANK_TRANSFER",
                    "createdAt": "2025-05-29T08:14:02+00:00",
                    "updatedAt": "2025-06-03T06:42:40+00:00",
                    "stripes": null,
                    "virtualCreditCards": null,
                    "bankTransfers": {
                        "data": {
                            "ibanNumber": "12323888777",
                            "accountNumber": "233333",
                            "nameOfBeneficiary": "test",
                            "sortCode": "234998"
                        }
                    },
                    "properties": [
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg4M30="
                        },
                        {
                            "id": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDg4N30="
                        }
                    ],
                    "updatedBy": {
                        "id": "eyJ0eXBlIjoiTGFuZGxvcmRDb250YWN0IiwiaWQiOjE5MX0=",
                        "firstName": "tyra 2",
                        "lastName": "test1",
                        "phone": "(+86) 15000089474",
                        "email": "tyra.huang+1@student.com"
                    }
                }
            ],
            "pageInfo": {
                "total": 6,
                "totalPages": 1,
                "currentPage": 1,
                "pageSize": 10
            }
        }
    }
}
  

Delete Payout

  • API: deleteOnlinePaymentMethod

  • Purpose & Use Cases: This API allows you to delete the payout.

  • Request:

Attribute Name Data Type Required Details
onlinePaymentMethodId ID Yes Unique identifier for the payout
  mutation DeleteOnlinePaymentMethod ($input: deleteOnlinePaymentMethodInput) {
    deleteOnlinePaymentMethod(input: $input) {
        success
    }
}
  
  • Response:
  {
  "input": {
    "onlinePaymentMethodId": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjN9"
  }
}
  

Bind Properties To Payout

  • API: bindPropertiesToOnlinePaymentMethod

  • Purpose & Use Cases: This API allows you to bind a payout to the corresponding properties.

  • Request:

Attribute Name Data Type Required Details
propertyIds ID[] Yes A list of propertyId related to the payment methods
onlinePaymentMethodId ID Yes Unique identifier for the payout
  QUERY
mutation BindPropertiesToOnlinePaymentMethod($input: BindPropertiesToOnlinePaymentMethodInput!) {
  bindPropertiesToOnlinePaymentMethod(input: $input) {
    success
    message
  }
}

GRAPHQL VARIABLES
{
  "input": {
    "propertyIds": ["eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0MTE5Mn0="],
    "onlinePaymentMethodId": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjB9"
  }
}
  
  • Response:
  {
    "data": {
        "bindPropertiesToOnlinePaymentMethod": {
            "success": true,
            "message": null
        }
    }
}
  
  • Error Message:
Error Message Description
PAYMENT_METHOD_NOT_FOUND
The specified payment method does not exist
Unable to bind properties to the payout because the specified payout does not exist
This payment method does not belong to you Access denied because the onlinePaymentMethod.landlordId does not match the token.landlord
The specified property could not be found Unable to bind properties because the input.PropertyId cannot retrieve the property
This property does not belong to you Access denied because the property.landlordId does not match the token.landlord
Booking journey is not eligible for applying an online payment method Unable to bind properties because property.bookingJourney is not in [BOOK, CONNECT]
properties`s apCategory is not KEY Unable to bind properties because onlinePaymentMethod.methodType is STRIPE and property.apCategory is not KEY
INVALID_PROPERTIES
message: errorMessages
Failed to bind properties because the validation rules were not met. All invalid properties are listed in the error message

Unbind Properties To Payout

  • API: unbindPropertiesToOnlinePaymentMethod

  • Purpose & Use Cases: This API allows you to unbind a payout to the corresponding properties.

  • Request:

Attribute Name Data Type Required Details
propertyIds ID[] Yes A list of propertyId related to the payment methods
onlinePaymentMethodId ID Yes Unique identifier for the payout
  QUERY
mutation UnbindPropertiesToOnlinePaymentMethod($input: UnbindPropertiesToOnlinePaymentMethodInput!) {
  unbindPropertiesToOnlinePaymentMethod(input: $input) {
    success
    message
  }
}

GRAPHQL VARIABLES
{
  "input": {
    "propertyIds": ["eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0NDc3NH0="],
    "onlinePaymentMethodId": "eyJ0eXBlIjoiV2l0aGRyYXdNZXRob2QiLCJpZCI6NjB9"
  }
}
  
  • Response:
  {
    "data": {
        "unbindPropertiesToOnlinePaymentMethod": {
            "success": true,
            "message": null
        }
    }
}
  
  • Error Message:
Error Message Description
PAYMENT_METHOD_NOT_FOUND
The specified payment method does not exist
Unable to bind properties to the payout because the specified payout does not exist
This payment method does not belong to you Access denied because the onlinePaymentMethod.landlordId does not match the token.landlord
The specified property could not be found Unable to bind properties because the input.PropertyId cannot retrieve the property
This property does not belong to you Access denied because the property.landlordId does not match the token.landlord
Cannot unbind online payment method from a published property. Please unpublish the property before proceeding Unable to unbind the payout because the property.status is PUBLISHED

Create Payment Method

Create Payment Method

  • API: createOfflinePaymentMethod

  • Purpose & Use Cases: Payment method is used when students will pay you directly, instead of making payment through Student Student.com. When “Students must make payment online” is set to No, you are responsible for collecting payment from the student.

    Students must make payment online setting

    A Payment Plan provides students with clear instructions on how to pay you — for example:

    • Payment Link
    • Virtual Credit Card (VCC)
    • Bank Transfer
    • Other

    Student.com does not handle the payment in this case, but will still charge a service fee once the booking is confirmed.

  • Request:

Attribute Name Data Type Required Details
instruction String No The instruction of the payment methods
methodType OfflinePaymentMethodType Yes The type of the payment methods; Possible values: PAYMENT_LINK VIRTUAL_CREDIT_CARD BANK_TRANSFER OTHER
propertyId DecodedPropertyID Yes Identifier for the related property object
data JSON Yes The data of the payment methods;

data is an object includes,
method_name: String!;
  QUERY
mutation CreateOfflinePaymentMethod($input: CreateOfflinePaymentMethodInput) {
    createOfflinePaymentMethod(input: $input) {
        offlinePaymentMethod {
            id
            landlordId
            methodType
            data
            instruction
            createdAt
            updatedAt
            updatedBy {
                id
                firstName
                lastName
                phone
                email
            }
        }
    }
}

GRAPHQL VARIABLES
{
  "input": {
    "methodType": "OTHER",
    "data": {
        "method_name": "new method"
    },
    "propertyId": "eyJ0eXBlIjoiUHJvcGVydHkiLCJpZCI6MTA0MTE5Mn0=",
    "instruction": "This is the instruction"
  }
}
  
  • Response:
  {
    "data": {
        "createOfflinePaymentMethod": {
            "offlinePaymentMethod": {
                "id": "eyJ0eXBlIjoiT2ZmbGluZVBheW1lbnRNZXRob2QiLCJpZCI6MTF9",
                "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6MTI4N30=",
                "methodType": "OTHER",
                "data": {
                    "methodName": "new method"
                },
                "instruction": "This is the instruction",
                "createdAt": "2025-06-11T12:28:43+00:00",
                "updatedAt": "2025-06-11T12:28:43+00:00"
            }
        }
    }
}
  
  • Error Message:
Error Message Description
The property already exists offline payment method, cannot create repeatedly Unable to create a payment method because the input.property already has one

Update Payment Method

  • API: updateOfflinePaymentMethod

  • Purpose & Use Cases: This API allows you to update the basic information of the payment method.

  • Request:

Attribute Name Data Type Required Details
id DecodedOfflinePaymentMethodID Yes Identifier for the related property object
instruction String No The instruction of the payment methods
methodType OfflinePaymentMethodType Yes The type of the payment methods; Possible values: PAYMENT_LINK VIRTUAL_CREDIT_CARD BANK_TRANSFER OTHER
data JSON Yes The data of the payment methods;

data is an object includes,
method_name: String!;
  QUERY
mutation UpdateOfflinePaymentMethod($input: UpdateOfflinePaymentMethodInput) {
  updateOfflinePaymentMethod(input: $input) {
    offlinePaymentMethod {
      id
      landlordId
      methodType
      data
      instruction
      createdAt
      updatedAt
      updatedBy {
        id
        firstName
        lastName
        phone
        email
      }
    }
  }
}

GRAPHQL VARIABLES
{
  "input": {
    "id": "eyJ0eXBlIjoiT2ZmbGluZVBheW1lbnRNZXRob2QiLCJpZCI6MTF9",
    "methodType": "OTHER",
    "data": {
        "method_name": "updated method"
    },
    "instruction": "This is the new instruction"
  }
}
  
  • Response:
  {
    "data": {
        "updateOfflinePaymentMethod": {
            "offlinePaymentMethod": {
                "id": "eyJ0eXBlIjoiT2ZmbGluZVBheW1lbnRNZXRob2QiLCJpZCI6MTF9",
                "landlordId": "eyJ0eXBlIjoiTGFuZGxvcmQiLCJpZCI6MTI4N30=",
                "methodType": "OTHER",
                "data": {
                    "methodName": "updated method"
                },
                "instruction": "This is the instruction",
                "createdAt": "2025-06-11T12:28:43+00:00",
                "updatedAt": "2025-06-11T12:28:43+00:00"
            }
        }
    }
}
  
  • Error Message:
Error Message Description
permission rule cannot execute with invalid id Access denied because the offlinePaymentMethod id does not belong to the landlord

Payout Object

Attribute Name Data Type Details
id ID Unique identifier for the payment object
name NonEmptyString The name of the payout
landlordId String Unique identifier for the related landlord object
methodType OnlinePaymentMethodType The type of the payment methods; Possible values: STRIPE VIRTUAL_CREDIT_CARD BANK_TRANSFER
createdAt Datetime The created time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ)
updatedAt Datetime The updated time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ)
updatedBy LandlordContact The landlordContact of the payment methods;

LandlordContact is an object includes,
id: ID!,
firstName: String!,
lastName: String!,
phone: String,
email: String;
stripes OnlinePaymentMethodStripe Detail of payment method Stripes;

OnlinePaymentMethodStripe is an object includes,
stripeId: NonEmptyString!;
virtualCreditCards OnlinePaymentMethodVirtualCreditCard Detail of payment method Virtual Credit Cards;

OnlinePaymentMethodVirtualCreditCard is an object includes,
email: NonEmptyString!
bankTransfers OnlinePaymentMethodBankTransfer Detail of payment method Bank Transfers;

OnlinePaymentMethodBankTransfer is an object includes,
data: JSON!
properties Property[] A list of property related to the payment methods

Payment Method Object

Attribute Name Data Type Details
id ID Unique identifier for the payment object
landlordId String Unique identifier for the related landlord object
methodType OfflinePaymentMethodType The type of the payment methods; Possible values: PAYMENT_LINK VIRTUAL_CREDIT_CARD BANK_TRANSFER OTHER
data JSON The data of the payment methods;

data is an object includes,
method_name: String!;
instruction String The instruction of the payment methods
createdAt Datetime The created time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ)
updatedAt Datetime The updated time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ)
updatedBy LandlordContact The landlordContact of the payment methods;

LandlordContact is an object includes,
id: ID!,
firstName: String!,
lastName: String!,
phone: String,
email: String;