"openapi: 3.0.1\ninfo:\n title: PA Perdana\n # description: API documentation for PA Perdana\n description: Provides compensation in the event of permanent disablement or death caused by accident\n termsOfService: http://sandbox.takaful-ikhlas.com.my\n contact:\n email: digital@mnrb.com.my\n version: 1.0.0\n logoUrl: assets/images/catalog-icon/vectorPa.svg\nservers:\n- url: https://sandbox.takaful-ikhlas.com.my/api/v1\n- url: https://sandbox.takaful-ikhlas.com.my/\n description: For payment and document endpoints\ntags:\n- name: Plans\n description: PA Perdana Plans\n- name: Quotations\n description: Quotations API\n- name: Policies\n description: Policies API\n- name: Customers\n description: Customers API\n- name: Beneficiaries\n description: Beneficiaries API\n- name: Nominees\n description: Nominees API\n- name: References\n description: General API\n- name: Payment\n description: Payment API\n- name: Document\n description: Document API\npaths:\n /refs/pa/plans:\n get:\n tags:\n - Plans\n summary: Get All Personal Accident Plans\n parameters:\n - name: product\n in: query\n description: 'Query plans by product. Example: perdana, permata, amani'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 404:\n description: No Product Type Found\n content: {}\n security:\n - api_key: []\n /nonmotor/pa/quotation:\n post:\n tags:\n - Quotations\n summary: Create Quotation\n requestBody:\n description: Quotation details\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/Quotation'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n /nonmotor/pa/quotations:\n get:\n tags:\n - Quotations\n summary: Get List Quotations\n parameters:\n - name: offset\n in: query\n description: 'The page number. Default is 0. Example: 0'\n schema:\n type: integer\n - name: limit\n in: query\n description: 'The numbers of items to return. Default is 10. Example: 30'\n schema:\n type: integer\n - name: attributes\n in: query\n description: 'Select attributes to show for quotation. Example: id,grossContribution,riskCode'\n schema:\n type: string\n - name: includeCustomer\n in: query\n description: 'Include customer details for each quotation. Example: true'\n schema:\n type: boolean\n - name: customerAttributes\n in: query\n description: 'Select attributes to show for customer. Example: idNo,name'\n schema:\n type: string\n - name: includeBeneficiaries\n in: query\n description: 'Include all beneficiaries details for each quotation. Example:\n true'\n schema:\n type: boolean\n - name: beneficiariesAttributes\n in: query\n description: 'Select attributes to show for beneficiary. Example: name,beneficiaryType'\n schema:\n type: string\n - name: insuredId\n in: query\n description: 'Select quotations with this customerId only. Example: 1'\n schema:\n type: integer\n - name: insuredName\n in: query\n description: 'Select quotations with this customer''s name. Example: customer\n name'\n schema:\n type: string\n - name: insuredIdNo\n in: query\n description: 'Select quotations with this idNo only. Example: 900101010101'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /nonmotor/pa/quotation/{quotationId}:\n get:\n tags:\n - Quotations\n summary: Get Quotation Details by ID\n parameters:\n - name: quotationId\n in: path\n description: Quotation ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n put:\n tags:\n - Quotations\n summary: Update Quotation Details by ID\n parameters:\n - name: quotationId\n in: path\n description: Quotation ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Update Details\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/UpdateQuotation'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n delete:\n tags:\n - Quotations\n summary: Delete Quotation Details by ID\n parameters:\n - name: quotationId\n in: path\n description: Quotation ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n /nonmotor/pa/quotation/accept/{quotationId}:\n put:\n tags:\n - Quotations\n summary: Accept Quotation ID\n parameters:\n - name: quotationId\n in: path\n description: Quotation ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Acceptance details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/AcceptQuotation'\n application/json:\n schema:\n $ref: '#/components/schemas/AcceptQuotation'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n /nonmotor/pa/policies:\n get:\n tags:\n - Policies\n summary: Get List Policies\n parameters:\n - name: offset\n in: query\n description: 'The page number. Default is 0. Example: 0'\n schema:\n type: integer\n - name: limit\n in: query\n description: 'The numbers of items to return. Default is 10. Example: 30'\n schema:\n type: integer\n - name: attributes\n in: query\n description: 'Select attributes to show for quotation. Example: id,grossContribution,riskCode'\n schema:\n type: string\n - name: insuredName\n in: query\n description: 'Select quotations with this idNo only. Example: 900101010101'\n schema:\n type: string\n - name: insuredIdNo\n in: query\n description: 'Select quotations with this idNo only. Example: 900101010101'\n schema:\n type: string\n - name: includeInsured\n in: query\n description: 'Include customer details for each quotation. Example: true'\n schema:\n type: boolean\n - name: insuredAttributes\n in: query\n description: 'Select attributes to show for customer. Example: idNo,name'\n schema:\n type: string\n - name: includeQuotation\n in: query\n description: 'Include all beneficiaries details for each quotation. Example:\n true'\n schema:\n type: boolean\n - name: quotationAttributes\n in: query\n description: 'Select attributes to show for beneficiary. Example: name,beneficiaryType'\n schema:\n type: string\n - name: includePayment\n in: query\n description: 'Select quotations with this customer''s name. Example: customer\n name'\n schema:\n type: string\n - name: paymentAttributes\n in: query\n description: 'Select quotations with this idNo only. Example: 900101010101'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /nonmotor/pa/policy/{policyId}:\n get:\n tags:\n - Policies\n summary: Get Policy Details by Policy Number\n parameters:\n - name: policyId\n in: path\n description: Policy ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Policy Found\n content: {}\n security:\n - api_key: []\n /customer:\n post:\n tags:\n - Customers\n summary: Create Customer\n requestBody:\n description: Customer details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/Customer'\n application/json:\n schema:\n $ref: '#/components/schemas/Customer'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n /customers:\n get:\n tags:\n - Customers\n summary: Get List of Customers\n parameters:\n - name: offset\n in: query\n description: 'The page number. Default is 0. Example: 0'\n schema:\n type: integer\n - name: limit\n in: query\n description: 'The numbers of items to return. Default is 10. Example: 30'\n schema:\n type: integer\n - name: attributes\n in: query\n description: 'Select attributes or columns to show for quotation. Example:\n id,idNo,name'\n schema:\n type: string\n - name: includeBeneficiaries\n in: query\n description: 'Include all beneficiaries details for each quotation. Example:\n true'\n schema:\n type: boolean\n - name: beneficiaryAttributes\n in: query\n description: 'Select attributes or columns to show for beneficiary. Example:\n name,beneficiaryType'\n schema:\n type: string\n - name: includeNominees\n in: query\n description: 'Select attributes or columns to show for beneficiary. Example:\n name,beneficiaryType'\n schema:\n type: boolean\n - name: nomineeAttributes\n in: query\n description: 'Select attributes or columns to show for beneficiary. Example:\n name,beneficiaryType'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /customer/{customerId}:\n get:\n tags:\n - Customers\n summary: Get Customer Details by ID\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n put:\n tags:\n - Customers\n summary: Update Customer Details by ID\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Update Details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/UpdateCustomer'\n application/json:\n schema:\n $ref: '#/components/schemas/UpdateCustomer'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n delete:\n tags:\n - Customers\n summary: Delete Customer Details by ID\n description: Unable to delete if customer is registered to any quotation.\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n /beneficiary/customer/{customerId}:\n post:\n tags:\n - Beneficiaries\n summary: Create Beneficiary\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n requestBody:\n description: 'Beneficiary details: idNo required'\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/Beneficiary'\n application/json:\n schema:\n $ref: '#/components/schemas/Beneficiary'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n /beneficiaries/customer/{customerId}:\n get:\n tags:\n - Beneficiaries\n summary: Get Customer's Beneficiary\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /beneficiaries:\n get:\n tags:\n - Beneficiaries\n summary: Get List of Beneficiaries\n parameters:\n - name: offset\n in: query\n description: 'The page number. Default is 0. Example: 0'\n schema:\n type: integer\n - name: limit\n in: query\n description: 'The numbers of items to return per page. Default is 10. Example:\n 30'\n schema:\n type: integer\n - name: attributes\n in: query\n description: 'Select attributes or columns to show for quotation. Example:\n id,idNo,name'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /beneficiary/{beneficiaryId}:\n get:\n tags:\n - Beneficiaries\n summary: Get Beneficiary Details by ID\n parameters:\n - name: beneficiaryId\n in: path\n description: Beneficiary ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n put:\n tags:\n - Beneficiaries\n summary: Update Beneficiary Details by ID\n parameters:\n - name: beneficiaryId\n in: path\n description: Beneficiary ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Update Details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/UpdateBeneficiary'\n application/json:\n schema:\n $ref: '#/components/schemas/UpdateBeneficiary'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n delete:\n tags:\n - Beneficiaries\n summary: Delete Beneficiary Details by ID\n parameters:\n - name: beneficiaryId\n in: path\n description: Beneficiary ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n /nominee/customer/{customerId}:\n post:\n tags:\n - Nominees\n summary: Create Nominee\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Nominee details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/Nominee'\n application/json:\n schema:\n $ref: '#/components/schemas/Nominee'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n /nominees/customer/{customerId}:\n get:\n tags:\n - Nominees\n summary: Get Customer's Nominees\n parameters:\n - name: customerId\n in: path\n description: Customer ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /nominees:\n get:\n tags:\n - Nominees\n summary: Get List of Nominees\n parameters:\n - name: offset\n in: query\n description: 'The page number. Default is 0. Example: 0'\n schema:\n type: integer\n - name: limit\n in: query\n description: 'The numbers of items to return per page. Default is 10. Example:\n 30'\n schema:\n type: integer\n - name: attributes\n in: query\n description: 'Select attributes or columns to show for quotation. Example:\n id,idNo,name'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /nominee/{nomineeId}:\n get:\n tags:\n - Nominees\n summary: Get Nominee Details by ID\n parameters:\n - name: nomineeId\n in: path\n description: Nominee ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n content: {}\n security:\n - api_key: []\n put:\n tags:\n - Nominees\n summary: Update Nominee Details by ID\n parameters:\n - name: nomineeId\n in: path\n description: Nominee ID\n required: true\n schema:\n type: integer\n requestBody:\n description: Update Details\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/UpdateNominee'\n application/json:\n schema:\n $ref: '#/components/schemas/UpdateNominee'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: Bad Request\n content: {}\n security:\n - api_key: []\n x-codegen-request-body-name: body\n delete:\n tags:\n - Nominees\n summary: Delete Nominee Details by ID\n parameters:\n - name: nomineeId\n in: path\n description: Nominee ID\n required: true\n schema:\n type: integer\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: Bad Request\n content: {}\n security:\n - api_key: []\n /refs/postcodes:\n get:\n tags:\n - References\n summary: Get All Postcodes\n operationId: getPostcodes\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /refs/postcode/{postcodeId}:\n get:\n tags:\n - References\n summary: Get Specific Postcode Details\n operationId: getPostcode\n parameters:\n - name: postcodeId\n in: path\n description: ID of postcode to return\n required: true\n schema:\n type: integer\n format: int64\n responses:\n 200:\n description: Success\n content: {}\n 404:\n description: No Postcode Found\n content: {}\n security:\n - api_key: []\n /refs/banks:\n get:\n tags:\n - References\n summary: Get All Banks and Bank Codes\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /refs/bank/{bankKey}:\n get:\n tags:\n - References\n summary: Get Specific Bank Details\n parameters:\n - name: bankKey\n in: path\n description: Code of bank to return\n required: true\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 404:\n description: No Bank Found\n content: {}\n security:\n - api_key: []\n /refs/nationalities:\n get:\n tags:\n - References\n summary: Get All Nationalities and Nationalities Codes\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /refs/nationality/{nationalityCode}:\n get:\n tags:\n - References\n summary: Get Specific Nationalities Details\n parameters:\n - name: nationalityCode\n in: path\n description: Code of nationality to return\n required: true\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 404:\n description: No Nationalities Found\n content: {}\n /refs/relationships:\n get:\n tags:\n - References\n summary: Get All Relationships and Relationships Codes\n responses:\n 200:\n description: Success\n content: {}\n security:\n - api_key: []\n /refs/relationship/{relationship}:\n get:\n tags:\n - References\n summary: Get Specific Relationships Details\n parameters:\n - name: relationship\n in: path\n description: relationship details to return\n required: true\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 404:\n description: No Relationships Found\n content: {}\n /payment/start:\n post:\n tags:\n - Payment\n summary: Start payment\n parameters:\n requestBody:\n description: Start Payment details, POST must be done in form POST redirection. Example, https://sandbox.takaful-ikhlas.com.my/payment/test\n content:\n multipart/form-data:\n schema:\n $ref: '#/components/schemas/StartPayment'\n application/json:\n schema:\n $ref: '#/components/schemas/StartPayment'\n required: true\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Quotation ID Found\n /payment/test/ePolicy:\n get:\n tags:\n - Document\n summary: Get policy certificate\n parameters:\n - name: policyNumber\n in: query\n description: 'Policy number'\n schema:\n type: string\n - name: agentCode\n in: query\n description: 'Agent Code'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Policy Number Found\n /payment/test/invoice:\n get:\n tags:\n - Document\n summary: Get payment receipt\n parameters:\n - name: policyNumber\n in: query\n description: 'Policy number'\n schema:\n type: string\n - name: agentCode\n in: query\n description: 'Agent Code'\n schema:\n type: string\n responses:\n 200:\n description: Success\n content: {}\n 400:\n description: |-\n Bad Request\n - No Policy Number Found\n /payment/assets/pdf/PA_FACT_SHEET.pdf:\n get:\n tags:\n - Document\n summary: Get PA Takaful Fact Sheet\n /payment/assets/pdf/PA_PERDANA_CONTRACT.pdf:\n get:\n tags:\n - Document\n summary: Get PA Perdana Contract\n /payment/assets/pdf/PA_PERDANA_PDS.pdf:\n get:\n tags:\n - Document\n summary: Get PA Perdana PDS\n /payment/assets/pdf/PA_PERMATA_CONTRACT.pdf:\n get:\n tags:\n - Document\n summary: Get PA Permata Contract\n /payment/assets/pdf/PA_PERMATA_PDS.pdf:\n get:\n tags:\n - Document\n summary: Get PA Permata PDS\ncomponents:\n schemas:\n Quotation:\n type: object\n required:\n - planId\n properties:\n planId:\n description: Plan ID from list of PA plans\n type: integer\n example: 3\n coverageStartDate:\n description: Must not be in past and must not be more than 30 days from now\n type: string\n example: '2021-08-01'\n customerId:\n description: Only valid customer ID\n type: integer\n wakafPct:\n description: Valid values - 0, 5, 10, 15, 20, 25, 30\n type: integer\n enum: [0, 5, 10, 15, 20, 25, 30]\n beneficiaries:\n description: Only valid beneficiary IDs\n type: array\n items:\n type: integer\n example: [1]\n nominees:\n description: Only 1 executor allowed. Total percentage for all nominees' sharePct and wakafPct must be 100\n type: array\n items:\n type: object\n properties:\n nomineeId:\n type: integer\n example: '3'\n sharePct:\n type: integer\n isExecutor:\n type: boolean\n example:\n - nomineeId: 1\n sharePct: 100\n isExecutor: true\n quotationVersion:\n type: integer\n UpdateQuotation:\n type: object\n properties:\n coverageStartDate:\n description: Must not be in past and must not be more than 30 days from now\n type: string\n example: '2021-09-01'\n customerId:\n description: Only valid customer ID\n type: integer\n example: 1\n wakafPct:\n type: integer\n example: 30\n enum: [0, 5, 10, 15, 20, 25, 30]\n beneficiaries:\n description: Only valid beneficiary IDs\n type: array\n items:\n type: integer\n example: [5] \n nominees:\n description: Only 1 executor allowed. Total percentage for all nominees' sharePct and wakafPct must be 100\n type: array\n items:\n type: object\n properties:\n nomineeId:\n type: integer\n sharePct:\n type: integer\n isExecutor:\n type: boolean\n example:\n - nomineeId: 1\n sharePct: 70\n isExecutor: false\n quotationVersion:\n type: integer\n example: 2\n Customer:\n type: object\n required:\n - name\n - mobileNumber\n - email\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Najwa Hidayah binti Abu Syamil\n mobileNumber:\n description: Must starts with 601\n type: string\n example: \"60176665555\"\n email:\n description: Must be valid email format\n type: string\n example: email@domain.com\n idNo:\n description: Must be unique. Minimum 4 and Maximum 20 characters.\n type: string\n idType:\n description: Choose 'NRIC', 'MYPR' or 'PASSPORT'\n type: string\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT only\n type: string\n nationalityCode:\n description: Required for idType PASSPORT only. Must be valid nationalityCode, exactly 3 characters only\n type: string\n address1:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n address2:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n address3:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n postcode:\n description: Must be a valid postcode and exactly 5 characters\n type: string\n bankKey:\n description: Must be a valid bankKey from list of banks\n type: string\n bankAccountNumber:\n description: Bank account length must be valid based on selected bankKey\n type: string\n UpdateCustomer:\n type: object\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n mobileNumber:\n description: Must starts with 601\n type: string\n email:\n description: Must be valid email format\n type: string\n idNo:\n description: Must be unique. Minimum 4 and Maximum 20 characters.\n type: string\n example: \"900101010101\"\n idType:\n description: Only 'NRIC', 'MYPR' or 'PASSPORT' allowed\n type: string\n example: NRIC\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT only\n type: string\n address1:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Jalan Suakasih 2/6B\n address2:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Bandar Tun Hussein Onn\n address3:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Cheras\n postcode:\n description: Must be a valid postcode and exactly 5 characters\n type: string\n example: \"43200\"\n bankKey:\n description: Must be a valid bankKey from list of banks\n type: string\n example: BOFAMY2X\n bankAccountNumber:\n description: Bank account length must be valid based on selected bankKey\n type: string\n example: \"563525178211\"\n Beneficiary:\n type: object\n required:\n - name\n - beneficiaryType\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Fatimah binti Ahmad\n beneficiaryType:\n description: Only 'CHILD' or 'SPOUSE' allowed\n type: string\n example: SPOUSE\n enum: ['CHILD', 'SPOUSE']\n idNo:\n description: Must be unique. Minimum 4 and Maximum 20 characters.\n type: string\n idType:\n description: Only 'NRIC', 'MYPR' or 'PASSPORT' allowed\n type: string\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT only\n type: string\n nationalityCode:\n description: Required for idType PASSPORT and beneficiaryType SPOUSE only. Must be valid nationalityCode, exactly 3 characters only\n type: string\n fullTimeEducation:\n description: Required for beneficiaryType CHILD between age 18 and 23\n type: boolean\n UpdateBeneficiary:\n type: object\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Spouse Beneficiary\n beneficiaryType:\n description: Only 'CHILD' or 'SPOUSE' allowed\n type: string\n example: Spouse\n enum: ['CHILD', 'SPOUSE']\n idNo:\n description: Must be unique. Minimum 4 and Maximum 20 characters.\n type: string\n example: A0000123\n idType:\n description: Only 'NRIC', 'MYPR' or 'PASSPORT' allowed\n type: string\n example: PASSPORT\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT\n type: string\n example: '1980-01-01'\n nationalityCode:\n description: Required for idType PASSPORT and beneficiaryType SPOUSE only. Must be valid nationalityCode, exactly 3 characters only\n type: string\n example: '139'\n fullTimeEducation:\n description: Required for beneficiaryType CHILD between age 18 and 23\n type: boolean\n example: true\n Nominee:\n type: object\n required:\n - name\n - mobileNumber\n - email\n - relationship\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Son Nominee\n relationship:\n description: Must be a valid relationship from list of relationships\n type: string\n example: Son\n mobileNumber:\n description: Must starts with 601\n type: string\n example: \"60198765432\"\n email:\n description: Must be valid email format\n type: string\n example: son@nominee.com\n idNo:\n description: Must be unique. Minimum 4 and Maximum 20 characters.\n type: string\n idType:\n description: Only 'NRIC', 'MYPR' or 'PASSPORT' allowed\n type: string\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT\n type: string\n UpdateNominee:\n type: object\n properties:\n name:\n description: Maximum 40 characters, certain special characters not allowed\n type: string\n example: Son Nominee\n relationship:\n description: Must be a valid relationship from list of relationships\n type: string\n example: Son\n mobileNumber:\n description: Must starts with 601\n type: string\n example: \"60198765432\"\n email:\n description: Must be valid email format\n type: string\n example: son@nominee.com\n idNo:\n type: string\n example: \"900101010101\"\n idType:\n description: Only 'NRIC', 'MYPR' or 'PASSPORT' allowed\n type: string\n example: NRIC\n enum: ['NRIC', 'MYPR', 'PASSPORT']\n dateOfBirth:\n description: Required for idType PASSPORT\n type: string\n AcceptQuotation:\n description: All required fields must be completed before quotation acceptance is allowed\n type: object\n properties:\n aqad:\n type: boolean\n example: true\n consent:\n type: boolean\n example: true\n StartPayment:\n description: All fields are required\n type: object\n properties:\n commonId:\n type: string\n description: commonId from the created quotation\n example: 1537\n agentCode:\n type: string\n example: V0123456\n returnUrl:\n type: string\n description: URL for our payment service to POST the data back to, after payment\n example: https://sandbox.takaful-ikhlas.com.my/payment/test/landing-page\n channel:\n type: string\n description: Payment initiate from which channel. Only 'WEB', 'MOBILE', 'API', 'AGENT PORTAL' or 'BANCA' allowed \n example: WEB\n enum: ['WEB', 'MOBILE', 'API', 'AGENT PORTAL', 'BANCA']\n madeBy:\n type: string\n description: Payment initiate from who. Only 'WTP', 'CUSTOMER' or 'AGENT' allowed \n example: WTP\n enum: ['WTP', 'CUSTOMER', 'AGENT']\n paymentType:\n type: string\n description: Payment type, use by agent. Only 'GROSS' or 'NETT' allowed \n example: GROSS\n enum: ['GROSS', 'NETT']\n securitySchemes:\n api_key:\n type: apiKey\n name: apikey\n in: header\n"
{}