### Sample Callback Payload Source: https://docs.uppass.io/api-reference This is a sample JSON payload for a callback event. It includes details about the event and the application. ```json { "event": { "type": "string", "nounce": "string", "created_at": "string" }, "application": { "id": 0, "no": "string", "form": "string", "slug": "string", "status": "string", "other_status": { "ekyc": "string" }, "submitted_at": "string" } } ``` -------------------------------- ### Create Form API Source: https://docs.uppass.io/api-reference This API allows you to create a new form application. You can pass parameters for eKYC verification and predefined input answers. The data will be returned via webhook upon completion of verification. ```APIDOC ## Create Form API Specification ### Description Allows the creation of a new form application with optional eKYC and input parameters. ### Method POST ### Endpoint `/{lang}/api/forms/{form_slug}/create/` ### Path Parameters - **lang** (string) - Required - A language of the output form for the end user (`en`|`th`) - **form_slug** (string) - Required - A flow you want to create a new `applied_form` for ### Header Parameters - **Authorization** (string) - Required - Example: Bearer {api_token} A `{api_token}` generated from UpPass dashboard ### Request Body Schema `application/json` - **answers** (object) - Optional - Used for eKYC verification or passing predefined answers. - **ekyc_document_type** (string) - Optional - Specifies the document type for KYC verification (e.g., `passport`). Defaults to `National ID`. - **customer_id** (string) - Optional - Predefined answer for customer ID. ### Request Example ```json { "answers": { "ekyc_document_type": "passport", "customer_id": "uuid_1" } } ``` ### Responses #### Success Response (200 OK) - **info** (string) - URL to the form information. - **detail** (object) - Contains details about the created form application. - **form** (string) - The slug of the form. - **step** (string) - The current step in the form. - **section** (string) - The current section in the form. - **submitted_at** (null) - Timestamp of submission (null if not submitted). - **slug** (string) - Unique identifier for the applied form. - **form_url** (string) - The URL to access the form. ### Response Example (200 OK) ```json { "info": "{UPPASS_HOSTNAME}/{lang}/api/forms/{form_slug}/applied-forms/{slug}/info/", "detail": { "form": "{form_slug}", "step": "{current_step}", "section": "{current_section}", "submitted_at": null, "slug": "{slug}" }, "form_url": "{UPPASS_HOSTNAME}/en/form/{form_slug}/{slug}/?" } ``` ``` -------------------------------- ### Create Form API Response (200 OK) Source: https://docs.uppass.io/api-reference A successful response (200 OK) from the Create Form API includes information about the created form, such as its URL, slug, and current step. ```json { "info": "{UPPASS_HOSTNAME}/{lang}/api/forms/{form_slug}/applied-forms/{slug}/info/", "detail": { "form": "{form_slug}", "step": "{current_step}", "section": "{current_section}", "submitted_at": null, "slug": "{slug}" }, "form_url": "{UPPASS_HOSTNAME}/en/form/{form_slug}/{slug}/?" } ``` -------------------------------- ### Webhook Callback Payload Sample Source: https://docs.uppass.io/api-reference This is a sample JSON payload that the UpPass system will send to your configured webhook URL upon completion of a verification process. It contains detailed information about the event, extra data from eKYC and bank statement analysis, and application details. ```json { "event": { "type": "string", "nounce": "string", "created_at": "string" }, "extra": { "ekyc": { "liveness": { "url": "string", "attempts": [ { "id": 0, "images": [ { "url": "string", "action": "string" } ], "status": "string", "attempt": 0, "message": "string", "created_at": "string" } ] }, "face_compare": { "score": 0, "status": "string" }, "identity_document": { "url": "string", "type": "string", "attempts": [ { "id": 0, "url": "string", "type": "string", "status": "string", "attempt": 0, "message": "string", "created_at": "string" } ], "face_image_url": "string" } }, "bank_statement": { "id": 0, "margin": { }, "casa_weighted_pct": { }, "validation": { "validation_transaction_min_month": true, "validation_transaction_latest_after": true, "validation_transaction_oldest_before": true }, "validation_pass": true, "validation_note": { "validation_transaction_min_month": { }, "validation_transaction_latest_after": "string", "validation_transaction_oldest_before": "string" }, "documents": [ { "id": 0, "bank_statement": 0, "url": "string", "file_pk": "string", "applicant_id": "string", "account_name": "string", "account_type": "string", "branch_name": "string", "statement_period_from": "string", "statement_period_to": "string", "doc_period_from": "string", "doc_period_to": "string", "doc_requested_date": { }, "account_number": "string", "address": "string", "validation_note": "string", "validation_same_creation_mod_date": true, "validation_name_match": true, "validation_has_transaction": true, "validation_valid_structure": true, "validation_valid_account_number": true, "validation_producer_check": true, "metadata_created_date": "string", "metadata_mod_date": "string", "metadata_producer": "string", "metadata_creator": "string", "bank_code": "string", "file_name": "string", "ocr_created_at": "string", "password": { }, "status": "string", "excluded": true, "created_at": "string", "deleted_at": { }, "transactions": [ { "id": 0, "document_id": 0, "transaction_id": "string", "transaction_date": "string", "transaction_type": "string", "chq": "string", "particular": "string", "party": "string", "channel": "string", "deposit": 0, "withdrawal": 0, "balance": 0, "category": { }, "exclusion_flag": { }, "exclusion_reason": { }, "group_name": { }, "lo_issuer_tier": { }, "lo_type": { }, "created_at": "string", "deleted_at": { } } ] } ], "created_at": "string", "deleted_at": { } } }, "answers": { "question_key_1": { "value": "string", "created_at": "string", "updated_at": "string" }, "question_key_2": { "value": "string", "created_at": "string", "updated_at": "string" } }, "application": { "id": 0, "no": "string", "form": "string", "slug": "string", "status": "string", "other_status": { "ekyc": "string" }, "submitted_at": "string" } } ``` -------------------------------- ### Create Form API Request Payload Source: https://docs.uppass.io/api-reference This is the sample request payload for the Create Form API, used to submit data and initiate form creation. ```json { "answers": { } } ``` -------------------------------- ### Resend Webhook API Endpoint Source: https://docs.uppass.io/api-reference Use this endpoint to resend a webhook to the end server. It requires language, form slug, and applied form slug as path parameters, along with an Authorization header. ```bash post/{lang}/api/forms/{form_slug}/applied-forms//hook-submit/ ``` -------------------------------- ### Default eKYC Document Type Source: https://docs.uppass.io/api-reference When creating a form, pass an empty 'answers' object to use the default National ID for eKYC verification. ```json { "answers": {} } ``` -------------------------------- ### Pass Input Parameters Source: https://docs.uppass.io/api-reference Predefined answers for form fields can be passed as input parameters within the 'answers' object when creating a form. This is configured in the form builder under 'Input Parameter'. ```json { "answers" : { "customer_id": "uuid_1" } } ``` -------------------------------- ### Webhook Events Receiver URL Source: https://docs.uppass.io/api-reference This is the URL where client webhook events will be received. It is used for POST requests. ```bash post/CLIENT_WEBHOOK_EVENTS_RECEIVER_URL ``` -------------------------------- ### Webhook Submission Endpoint Source: https://docs.uppass.io/api-reference The system will call this endpoint to pass verification results data to your system after a user has finished verification. ```APIDOC ## POST /CLIENT_WEBHOOK_SUBMISSION_RECEIVER_URL ### Description This endpoint receives webhook callbacks containing verification results from UpPass. ### Method POST ### Endpoint https://app.uppass.io/CLIENT_WEBHOOK_SUBMISSION_RECEIVER_URL ### Headers - **Content-Type**: application/json - **Authorization**: Bearer [Your Bearer Token] ### Request Body This endpoint accepts a JSON payload containing detailed verification results. The structure includes event information, extra data from EKYC and bank statement analysis, and application details. ### Request Example ```json { "event": { "type": "string", "nounce": "string", "created_at": "string" }, "extra": { "ekyc": { "liveness": { "url": "string", "attempts": [ { "id": 0, "images": [ { "url": "string", "action": "string" } ], "status": "string", "attempt": 0, "message": "string", "created_at": "string" } ] }, "face_compare": { "score": 0, "status": "string" }, "identity_document": { "url": "string", "type": "string", "attempts": [ { "id": 0, "url": "string", "type": "string", "status": "string", "attempt": 0, "message": "string", "created_at": "string" } ], "face_image_url": "string" } }, "bank_statement": { "id": 0, "margin": { }, "casa_weighted_pct": { }, "validation": { "validation_transaction_min_month": true, "validation_transaction_latest_after": true, "validation_transaction_oldest_before": true }, "validation_pass": true, "validation_note": { "validation_transaction_min_month": { }, "validation_transaction_latest_after": "string", "validation_transaction_oldest_before": "string" }, "documents": [ { "id": 0, "bank_statement": 0, "url": "string", "file_pk": "string", "applicant_id": "string", "account_name": "string", "account_type": "string", "branch_name": "string", "statement_period_from": "string", "statement_period_to": "string", "doc_period_from": "string", "doc_period_to": "string", "doc_requested_date": { }, "account_number": "string", "address": "string", "validation_note": "string", "validation_same_creation_mod_date": true, "validation_name_match": true, "validation_has_transaction": true, "validation_valid_structure": true, "validation_valid_account_number": true, "validation_producer_check": true, "metadata_created_date": "string", "metadata_mod_date": "string", "metadata_producer": "string", "metadata_creator": "string", "bank_code": "string", "file_name": "string", "ocr_created_at": "string", "password": { }, "status": "string", "excluded": true, "created_at": "string", "deleted_at": { }, "transactions": [ { "id": 0, "document_id": 0, "transaction_id": "string", "transaction_date": "string", "transaction_type": "string", "chq": "string", "particular": "string", "party": "string", "channel": "string", "deposit": 0, "withdrawal": 0, "balance": 0, "category": { }, "exclusion_flag": { }, "exclusion_reason": { }, "group_name": { }, "lo_issuer_tier": { }, "lo_type": { }, "created_at": "string", "deleted_at": { } } ] } ], "created_at": "string", "deleted_at": { } } }, "answers": { "question_key_1": { "value": "string", "created_at": "string", "updated_at": "string" }, "question_key_2": { "value": "string", "created_at": "string", "updated_at": "string" } }, "application": { "id": 0, "no": "string", "form": "string", "slug": "string", "status": "string", "other_status": { "ekyc": "string" }, "submitted_at": "string" } } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the webhook submission. #### Response Example ```json { "status": "success" } ``` ``` -------------------------------- ### Specify Passport for eKYC Source: https://docs.uppass.io/api-reference To use a passport for eKYC verification, set the 'ekyc_document_type' within the 'answers' object to 'passport'. ```json { "answers": {"ekyc_document_type": "passport"} } ``` -------------------------------- ### Resend Webhook Source: https://docs.uppass.io/api-reference Resends a webhook notification to the specified endpoint. This is useful for replaying webhook events when the original delivery may have failed or been missed. ```APIDOC ## POST /api/forms/{lang}/{form_slug}/applied-forms//hook-submit/ ### Description Use this API when you want to resend webhook to the end server. ### Method POST ### Endpoint `https://app.uppass.io/{lang}/api/forms/{form_slug}/applied-forms//hook-submit/` ### Parameters #### Path Parameters - **lang** (string) - Required - A language of the output form for the end user (`en`|`th`) - **form_slug** (string) - Required - A flow you want to create a new `applied_form` for - **slug** (string) - Required - A `slug` of an `applied_form` you want to resend the webhook #### Header Parameters - **Authorization** (string) - Required - Example: Bearer {api_token} A `{api_token}` generated from UpPass dashboard ### Responses #### Success Response (204) The webhook submission request was submitted. ### Webhook Events This endpoint is related to the following webhook events: - `submit_form`: When the end user has submitted the verification. - `update_status`: When admin has changed the status of eKYC via UpPass Portal. - `drop_off`: When the verification form is expired. Requires configuration to trigger, please contact the support team for inquiry. - `ekyc_front_card_reached_max_attempts`: When the verification of ID scan has reached maximum attempt. Requires configuration to trigger, please contact the support team for inquiry. - `ekyc_liveness_reached_max_attempts`: When the verification of facial liveness has reached maximum attempts. Requires configuration to trigger, please contact the support team for inquiry. ### Callback Payload Sample ```json { "event": { "type": "string", "nounce": "string", "created_at": "string" }, "application": { "id": 0, "no": "string", "form": "string", "slug": "string", "status": "string", "other_status": { "ekyc": "string" }, "submitted_at": "string" } } ``` ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.