Partner API — v4.0.0
Type: Major Release · Previous version: v3.1.0
✅ New Endpoints
GET /tenant/agreement/get-agreement
Summary: Fetch agreement details by agreement ID
Retrieves agreement details using the optional agreementId query parameter.
Only the agreementId query param should be provided in the request. If it's not passed, the service may return a default or list view based on implementation.
Include the tenant-id in headers if tenant context is required (commented interceptor suggests it's optional or under refactor).
Use this API to:
- View signed agreements
- Retrieve the latest terms & conditions or user consent documents
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
agreementId |
string | No | agreement Id |
Response Codes
| Code | Description |
|---|---|
| 200 | Returns agreement data if found |
| 400 | Returned when the request is malformed or processing fails |
| 404 | Returned when no agreement is found for the given ID. |
200 — Returns agreement data if found
{
"message": "Agreements fetched successfully",
"data": [
{
"id": "4162f690-a5d7-43a5-ba54-82c6f3aa3e09",
"content": "US Patriot ACT: To help the government fight the funding of terrorism and money laundering activities",
"status": "PENDING",
"first_name": "Jone",
"last_name": "Doe",
"email": "test@test.com",
"account_address": "0x4162f690a5d743a5ba5482c6f3aa3e09",
"ip": "0.0.0.0",
"agreement_type": "US_PATRIOTIC_ACT",
"created_at": "2023-06-27T13:05:26.8250000+00:00"
}
]
}
400 — Returned when the request is malformed or processing fails
{
"errors": [
{
"type": "catch",
"message": "Shows what kind of error occurred in the execution of this API"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"type": "catch",
"message": "err.message"
},
{
"type": "Agreement",
"message": "Tenant Id is missing in Headers"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"data": {},
"message": "No data found"
}
]
}
404 — Returned when no agreement is found for the given ID.
GET /tenant/agreement/terms-and-privacy-agreements
Summary: Fetch Agreement Template
Retrieves pre-defined agreement templates such as Privacy Policy or Terms & Conditions based on the query parameter provided.
Only the type query parameter should be passed with a valid value:
PRIVACY_POLICYTERMS_CONDITIONS
Include the tenant-id in headers to scope the template to a specific tenant if applicable.
Use this API to:
- Display legal documents before onboarding
- Fetch the latest agreement templates for review or download
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | Yes | Template type |
Response Codes
| Code | Description |
|---|---|
| 200 | Returned when the requested agreement template is fetched successfully. |
| 400 | Returned when the template type is invalid or the fetch operation fails. |
200 — Returned when the requested agreement template is fetched successfully.
{
"message": "Fetched template successfully",
"data": {
"templateId": "4b9c4c86-0701-40cf-9ebb-59bc0ddd4650",
"html": "<Content>",
"type": "UL_TEMPLATE"
}
}
400 — Returned when the template type is invalid or the fetch operation fails.
{
"errors": [
{
"type": "Catch",
"message": "Shows what kind of error occurred in the execution of this API"
},
{
"type": "Agreement",
"message": "No Template with the type {agreementType}"
}
]
}
GET /tenant/customer/link-bank/{customerAccountId}
Summary: Get linked Bank details of Customer
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
customerAccountId |
string | Yes | — |
Response Codes
| Code | Description |
|---|---|
| 200 | Success response after getting linked bank details of customer |
| 400 | Bad request response if customer is not found |
| 404 | Error response if no linked bank details found for customer |
200 — Success response after getting linked bank details of customer
{
"message": "Successfully fetched linked bank accounts",
"data": [
{
"linkedBankId": "8f2ede54-1fc6-4484-b28c-0708a85d3928",
"bankLegalName": "US Bank",
"bankAccountHolderName": "fantalon binil",
"bankAccountNumber": "XXXXXX0412",
"bankAbaRoutingNumber": "22440412",
"bankAccountType": "Savings"
}
]
}
400 — Bad request response if customer is not found
404 — Error response if no linked bank details found for customer
POST /ach/in
Tag: ACH IN ODFI
Summary: Initiate ACH IN ODFI transaction
Initiates an ACH IN ODFI transaction after validating authorization record and other compliance checks:
- Active Omnumi wallet: checks whether the customer has an active Omnumi wallet.
- Bank account linkage: confirms whether the customer has a linked bank account.
- Customer account status: checks whether the customer account is active.
- Feature flagging: checks whether the vendor feature flag is enabled.
- Rule validation: executes the deposit rule to verify eligibility.
Once validation succeeds, the service calls an API to initiate the debit transaction.
NOTE
- Identifier field: The request contains an
identifierobject with the structure: type: Indicates the kind of identifier provided (e.g., namespace, customNamespace, walletAddress).value: The actual identifier value corresponding to the type.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
processor |
string | No | Determines the vendor who processes the transaction One of: CLIQ, CORE e.g. CLIQ |
customerAccountId |
string | Yes | Customer Account identifier e.g. 5f84a0c7-4b29-43f3-8d8e-63a5c8d4b1f9 |
linkedBankId |
string | Yes | Linked bank account identifier e.g. a2e3c2c1-0f7e-4c1b-9e4d-9b75a4f7e1b3 |
identifier.type |
string | Yes | Type of wallet identifier One of: namespace, customNamespace, walletAddress e.g. customNamespace |
identifier.value |
string | Yes | Value for the selected wallet identifier e.g. custom99 |
authorizationText |
string | Yes | Authorization text content e.g. I authorize this ACH transaction.. |
secCode |
string | Yes | SEC code for ACH transaction e.g. WEB |
ipAddress |
string | Yes | IP address of authorization e.g. 172.168.1.1 |
authorizationMethod |
string | No | Method used for authorization One of: MPIN, DIGITAL_FINGER_PRINT e.g. MPIN |
amount |
number | Yes | Transaction Amount e.g. 100.50 |
tokenSymbol |
string | Yes | Token symbol for the transaction e.g. USBC |
effectiveDate |
string | No | date for processing the transaction (YYYY-MM-DD) e.g. 2023-12-31 |
debitType |
string | No | Type of debit transaction One of: ONE_TIME, RECURRING e.g. ONE_TIME |
userRisk |
string | No | Determines User Risk Rating e.g. LOW |
transactionRisk |
string | No | Determines Transaction Risk Rating e.g. LOW |
Example Request
{
"processor": "CORE",
"customerAccountId": "5f84a0c7-4b29-43f3-8d8e-63a5c8d4b1f9",
"linkedBankId": "a2e3c2c1-0f7e-4c1b-9e4d-9b75a4f7e1b3",
"identifier": {
"type": "customNamespace",
"value": "custom99"
},
"authorizationText": "I authorize this ACH transaction..",
"secCode": "WEB",
"ipAddress": "172.168.1.1",
"authorizationMethod": "MPIN",
"amount": "100.50",
"tokenSymbol": "USBC",
"effectiveDate": "2023-12-31",
"debitType": "ONE_TIME",
"userRisk": "LOW",
"transactionRisk": "LOW"
}
Response Codes
| Code | Description |
|---|---|
| 201 | ACH IN ODFI initiated successfully |
| 400 | Invalid request parameters |
| 404 | Record or linked bank account not found |
| 500 | Internal server error |
| 502 | Unable to fetch details from an api |
201 — ACH IN ODFI initiated successfully
{
"message": "ACH IN ODFI triggered successfully",
"data": {
"status": "INITIATED",
"referenceId": "12361886992",
"message": "Successfully processed; no error",
"reasonCode": "A00"
}
}
400 — Invalid request parameters
404 — Record or linked bank account not found
500 — Internal server error
{
"errors": [
{
"type": "internalServerError",
"message": "An error occured while storing authorization record"
}
]
}
502 — Unable to fetch details from an api
POST /ach/out
Tag: ACH OUT ODFI
Summary: Initiate ACH Out transaction
Initiates an ACH Out transaction after validating authorization record and other compliance checks:
- Active Omnumi wallet: checks whether the customer has an active Omnumi wallet.
- Bank account linkage: confirms whether the customer has a linked bank account.
- Customer account status: checks whether the customer account is active.
- Feature flagging: checks whether the vendor feature flag is enabled.
- Rule validation: executes the withdrawal rule to verify eligibility.
Once validation succeeds, the service calls an API to initiate the transaction.
NOTE
- Identifier field: The request contains an
identifierobject with the structure:type: Indicates the kind of identifier provided (e.g., namespace, customNamespace, walletAddress).value: The actual identifier value corresponding to the type.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
processor |
string | No | Determines the vendor who processes the transaction One of: CLIQ, CORE e.g. CLIQ |
customerAccountId |
string | Yes | Customer Account identifier e.g. 5f84a0c7-4b29-43f3-8d8e-63a5c8d4b1f9 |
linkedBankId |
string | Yes | Linked bank account identifier e.g. a2e3c2c1-0f7e-4c1b-9e4d-9b75a4f7e1b3 |
identifier.type |
string | Yes | Type of wallet identifier One of: namespace, customNamespace, walletAddress e.g. customNamespace |
identifier.value |
string | Yes | Value for the selected wallet identifier e.g. custom99 |
authorizationText |
string | Yes | Authorization text content e.g. I authorize this ACH transaction.. |
secCode |
string | Yes | SEC code for ACH transaction e.g. WEB |
ipAddress |
string | Yes | IP address of authorization e.g. 172.168.1.1 |
authorizationMethod |
string | No | Method used for authorization One of: MPIN, DIGITAL_FINGER_PRINT e.g. MPIN |
amount |
number | Yes | Transaction Amount e.g. 100.50 |
tokenSymbol |
string | Yes | Token symbol for the transaction e.g. USBC |
effectiveDate |
string | No | date for processing the transaction (YYYY-MM-DD) e.g. 2023-12-31 |
debitType |
string | No | Type of debit transaction One of: ONE_TIME, RECURRING e.g. ONE_TIME |
userRisk |
string | No | Determines User Risk Rating e.g. LOW |
transactionRisk |
string | No | Determines Transaction Risk Rating e.g. LOW |
Example Request
{
"processor": "CORE",
"customerAccountId": "5f84a0c7-4b29-43f3-8d8e-63a5c8d4b1f9",
"linkedBankId": "a2e3c2c1-0f7e-4c1b-9e4d-9b75a4f7e1b3",
"identifier": {
"type": "customNamespace",
"value": "custom99"
},
"authorizationText": "I authorize this ACH transaction..",
"secCode": "WEB",
"ipAddress": "172.168.1.1",
"authorizationMethod": "MPIN",
"amount": "100.50",
"tokenSymbol": "USBC",
"effectiveDate": "2023-12-31",
"debitType": "ONE_TIME",
"userRisk": "LOW",
"transactionRisk": "LOW"
}
Response Codes
| Code | Description |
|---|---|
| 201 | ACH Out initiated successfully |
| 400 | Invalid request parameters |
| 404 | Record or linked bank account not found |
| 500 | Internal server error |
| 502 | Unable to fetch details from an api |
201 — ACH Out initiated successfully
{
"message": "ACH Out ODFI triggered successfully",
"data": {
"status": "INITIATED",
"referenceId": "12361886992",
"message": "Successfully processed no error",
"reasonCode": "A00"
}
}
400 — Invalid request parameters
404 — Record or linked bank account not found
500 — Internal server error
{
"errors": [
{
"type": "internalServerError",
"message": "An error occured while storing authorization record"
}
]
}
502 — Unable to fetch details from an api
POST /tenant/agreement/preview-UL-agreement
Summary: Preview UL agreement document
Generates a preview of a UL-specific agreement based on the payload provided in the request body. This allows the user or system to view terms before they are finalized.
Only the request body should include the agreement input parameters based on the UL agreement schema.
Include the tenant-id in headers to identify the tenant. You may also include the api-key for authentication if required.
Use this API to:
- Preview UL-branded agreements before signature
- Show user-specific dynamic terms & conditions
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
firstName |
string | Yes | tenant customer first name e.g. Jone |
lastName |
string | Yes | tenant customer last name e.g. Doe |
email |
string | Yes | tenant email e.g. lorem@mygmail.com |
ip |
string | Yes | IP Address e.g. 0.0.0.0 |
accountAddress |
string | Yes | tenant customer account address e.g. 0x874259c8e1d58ac53f6f22e3f3e5a5dc86773248 |
Example Request
{
"firstName": "Jone",
"lastName": "Doe",
"email": "lorem@mygmail.com",
"ip": "0.0.0.0",
"accountAddress": "0x874259c8e1d58ac53f6f22e3f3e5a5dc86773248"
}
Response Codes
| Code | Description |
|---|---|
| 200 | Returned when the UL agreement preview is generated successfully. |
| 400 | Returned when the request payload is invalid or the preview generation fails. |
| 404 | Returned when no agreement data is found based on the input payload. |
200 — Returned when the UL agreement preview is generated successfully.
{
"message": "Agreements fetched successfully",
"data": [
{
"id": "4162f690-a5d7-43a5-ba54-82c6f3aa3e09",
"content": "US Patriot ACT: To help the government fight the funding of terrorism and money laundering activities",
"status": "PENDING",
"first_name": "Jone",
"last_name": "Doe",
"email": "test@test.com",
"account_address": "0x4162f690a5d743a5ba5482c6f3aa3e09",
"ip": "0.0.0.0",
"agreement_type": "US_PATRIOTIC_ACT",
"created_at": "2023-06-27T13:05:26.8250000+00:00"
}
]
}
400 — Returned when the request payload is invalid or the preview generation fails.
{
"errors": [
{
"type": "catch",
"message": "Shows what kind of error occurred in the execution of this API"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"type": "catch",
"message": "err.message"
},
{
"type": "Agreement",
"message": "Tenant Id is missing in Headers"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"data": {},
"message": "No data found"
}
]
}
404 — Returned when no agreement data is found based on the input payload.
POST /tenant/agreement/preview-agreement
Summary: Preview agreement document
Generates a preview of an agreement based on the payload provided in the request body. This is typically used to render agreements dynamically before final submission or signature.
Only the payload should be included in the request body, structured according to the agreement creation schema.
Include the tenant-id in headers to identify the tenant. You may also include the api-key for authorization if required.
Use this API to:
- Preview agreement content before final submission
- Show terms and conditions or consent forms for review
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
firstName |
string | Yes | First name of the tenant/customer (minimum 2 characters, maximum 255). e.g. Jone |
middleName |
string | No | Middle name of the tenant/customer (optional). |
lastName |
string | Yes | Last name of the tenant/customer (minimum 2 characters, maximum 255). e.g. Doe |
ip |
string | Yes | IP address of the user creating the agreement. e.g. 0.0.0.0 |
accountAddress |
string | Yes | Blockchain or application account address associated with the user. e.g. 0x874259c8e1d58ac53f6f22e3f3e5a5dc86773248 |
dateOfBirth |
string | Yes | Date of birth of the tenant/customer in DD-MM-YYYY format. e.g. 02-02-1997 |
email |
string | Yes | Email address of the tenant/customer. e.g. lorem@mygmail.com |
taxCountry |
string | Yes | Country code for the customer's tax residency (ISO Alpha-2 format). e.g. BO |
taxIdNumber |
string | Yes | Tax Identification Number (TIN) of the customer. e.g. 122-22-2332 |
phoneNumber.country |
string | Yes | phone country e.g. IN |
phoneNumber.number |
string | Yes | tenant customer number e.g. 7027779322 |
phoneNumber.sms |
boolean | Yes | sms e.g. True |
address.address1 |
string | Yes | tenant customer address line 1 e.g. address1 |
address.address2 |
string | Yes | tenant customer address line 2 e.g. address2 |
address.postalCode |
string | Yes | tenant address postal code e.g. Lorem |
address.city |
string | Yes | tenant customer city e.g. Lorem |
address.state |
string | Yes | tenant customer state e.g. KY |
address.country |
string | Yes | tenant customer country e.g. BO |
Example Request
{
"firstName": "Jone",
"middleName": "string",
"lastName": "Doe",
"ip": "0.0.0.0",
"accountAddress": "0x874259c8e1d58ac53f6f22e3f3e5a5dc86773248",
"dateOfBirth": "1997-02-02",
"email": "lorem@mygmail.com",
"taxCountry": "BO",
"taxIdNumber": "122-22-2332",
"phoneNumber": {
"country": "IN ",
"number": "7027779322 ",
"sms": true
},
"address": {
"address1": "address1 ",
"address2": "address2 ",
"postalCode": "Lorem",
"city": "Lorem",
"state": "KY",
"country": "BO"
}
}
Response Codes
| Code | Description |
|---|---|
| 200 | Returns the agreement content successfully if generated. |
| 400 | Returned when the request is invalid or the preview generation fails. |
| 404 | Returned when no agreement data could be generated based on the input payload. |
200 — Returns the agreement content successfully if generated.
{
"message": "Agreements fetched successfully",
"data": [
{
"id": "4162f690-a5d7-43a5-ba54-82c6f3aa3e09",
"content": "US Patriot ACT: To help the government fight the funding of terrorism and money laundering activities",
"status": "PENDING",
"first_name": "Jone",
"last_name": "Doe",
"email": "test@test.com",
"account_address": "0x4162f690a5d743a5ba5482c6f3aa3e09",
"ip": "0.0.0.0",
"agreement_type": "US_PATRIOTIC_ACT",
"created_at": "2023-06-27T13:05:26.8250000+00:00"
}
]
}
400 — Returned when the request is invalid or the preview generation fails.
{
"errors": [
{
"type": "catch",
"message": "Shows what kind of error occurred in the execution of this API"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"type": "catch",
"message": "err.message"
},
{
"type": "Agreement",
"message": "Tenant Id is missing in Headers"
},
{
"type": "fetch",
"message": "Could't fetch token"
},
{
"data": {},
"message": "No data found"
}
]
}
404 — Returned when no agreement data could be generated based on the input payload.
POST /tenant/customer/api/otp/request
Summary: Request OTP for customer email verification
Triggers OTP generation for email verification. Used during account sign-up or verification processes.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | customer email e.g. test@email.com |
Example Request
Response Codes
| Code | Description |
|---|---|
| 201 | OTP generated successfully |
| 400 | Returned when OTP generation fails due to invalid input or system error |
201 — OTP generated successfully
{
"data": {
"verification_request_id": "97673401-793e-4533-8b83-85bdf6c59409"
},
"message": "OTP has been sent on provided email."
}
400 — Returned when OTP generation fails due to invalid input or system error
{
"errors": [
{
"type": "Email Verification",
"message": "OTP generation got failed."
},
{
"type": "Invalid UUID",
"message": "Please provide valid tenant id"
},
{
"type": "Tenant",
"message": "Tenant not found"
}
]
}
POST /tenant/customer/api/otp/verify
Summary: Verify OTP for customer email verification
Validates the OTP sent to the customer for email verification purposes.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
otp |
string | Yes | OTP received for verification (6 digits) e.g. 123456 |
verificationRequestId |
string | Yes | Verification request Id e.g. 969a1166-8664-4820-9cf7-76a82f076544 |
Example Request
Response Codes
| Code | Description |
|---|---|
| 201 | OTP verified successfully |
| 400 | Returned when OTP verification fails due to invalid input |
| 401 | Returned when OTP verification request is unauthorized |
| 404 | Returned when no matching OTP request is found |
| 409 | Returned when OTP has already been used or expired |
| 429 | Returned when OTP verification attempts exceed allowed limit |
201 — OTP verified successfully
400 — Returned when OTP verification fails due to invalid input
{
"errors": [
{
"type": "Email Verification",
"message": "Invalid OTP"
},
{
"type": "Email Verification",
"message": "OTP expired or incorrect"
}
]
}
401 — Returned when OTP verification request is unauthorized
404 — Returned when no matching OTP request is found
409 — Returned when OTP has already been used or expired
429 — Returned when OTP verification attempts exceed allowed limit
POST /tenant/customer/link-bank
Summary: Link Bank via verified Bank DTO or Plaid
- Allows linking a customer’s bank account to the Omnumi platform using Plaid details or direct bank account information.
- Once linked, the customer can use any stored account to authorize and process ACH Debit In transactions.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
customerAccountId |
string | Yes | e.g. 4c3f3bbe-7190-4a49-8454-d240ba108d18 |
bankAccountDetails |
object | No | — |
plaidDetails |
object | No | — |
Example Request
{
"customerAccountId": "4c3f3bbe-7190-4a49-8454-d240ba108d18",
"bankAccountDetails": {
"bankLegalName": "US Bank",
"bankAccountHolderName": "John Doe",
"bankAccountType": "Savings",
"bankAccountNumber": "Ul22440412",
"bankAbaRoutingNumber": "22440412",
"bankAccountHolderPhoneNumber": "+917347634906",
"bankAccountHolderEmail": "unknown@gmail.com",
"bankAccountHolderAddress": "Connaught Place, New Delhi"
},
"plaidDetails": {
"plaidToken": "token",
"plaidConsentTimestamp": "2024-09-25T10:51:39.1788210+00:00"
}
}
Response Codes
| Code | Description |
|---|---|
| 201 | Created response after tenant customer successfully onboard |
| 400 | Error response after tenant customer onboarding gets failed |
201 — Created response after tenant customer successfully onboard
{
"message": "1 Bank Account Linked Successfully",
"data": [
{
"id": "8f2ede54-1fc6-4484-b28c-0708a85d3928",
"bankLegalName": "US Bank",
"bankAccountHolderName": "John Doe",
"bankAccountType": "Savings",
"bankAccountNumber": "1234567890",
"bankAccountId": "8f2ede54-1fc6-4484-b28c-0708a85d3928",
"bankAbaRoutingNumber": "22440412",
"bankAccountHolderPhoneNumber": "+1234567890",
"bankAccountHolderEmail": "john.doe@example.com",
"bankAccountHolderAddress": "123 Main St, City, State 12345",
"status": "ACTIVE",
"createdAt": "2024-01-01T00:00:00.0000000+00:00",
"updatedAt": "2024-01-01T00:00:00.0000000+00:00"
}
]
}
400 — Error response after tenant customer onboarding gets failed
{
"errors": [
{
"type": "link-bank",
"message": "bankLegalName should not be empty when plaidToken is not provided"
},
{
"type": "link-bank",
"message": "bankAccountHolderName should not be empty when plaidToken is not provided"
}
]
}
PUT /tenant/agreement/preview-agreement/{agreementId}
Summary: Update consent of agreement
Updates the consent or acknowledgment status of an agreement using the provided agreementId path parameter and the payload.
Only the agreementId should be present in the URL, and the consent or status update must be passed in the request body as per the schema.
Include the tenant-id in headers to identify the tenant. You may also include the api-key for authentication if required.
Use this API to:
- Record user consent for terms and agreements
- Update agreement metadata such as status, timestamp, or audit logs
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
status |
string | Yes | Status e.g. ACCEPTED |
Example Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
agreementId |
string | Yes | — |
Response Codes
| Code | Description |
|---|---|
| 200 | Returned when the agreement consent is updated successfully. |
| 400 | Returned when the update fails due to validation error or processing issues. |
200 — Returned when the agreement consent is updated successfully.
{
"data": {
"customerAccountId": "c02d249a-e720-4df8-b1b6-f016e2d351de",
"id": "c02d249a-e720-4df8-b1b6-f016e2d351de",
"status": "PENDING",
"createdAt": "2023-05-01T11:30:25.2590000+00:00",
"updatedAt": "2023-05-01T11:30:25.2590000+00:00"
},
"message": "Agreement successfully updated"
}
400 — Returned when the update fails due to validation error or processing issues.
{
"errors": [
{
"type": "catch",
"message": "Could't Update agreement"
},
{
"type": "Agreement",
"message": "Tenant Id is missing in Headers"
},
{
"type": "Agreement",
"message": "Could't Update agreement"
},
{
"type": "catch",
"message": "err.message"
}
]
}
PUT /tenant/agreement/ul-preview-agreement/{agreementId}
Summary: Update consent of UL agreement
Updates the consent or acknowledgment status of a UL-specific agreement using the provided agreementId and the request payload.
Only the agreementId should be passed as a path parameter. The request body must include valid consent or agreement fields based on the schema.
Include the tenant-id in headers to identify the tenant. You may also include the api-key for authorization.
Use this API to:
- Capture or update user consent on UL-specific agreements
- Update audit logs or agreement status for UL tenants
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
status |
string | Yes | Status e.g. ACCEPTED |
Example Request
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
agreementId |
string | Yes | — |
Response Codes
| Code | Description |
|---|---|
| 200 | Returned when the UL agreement consent is updated successfully. |
| 400 | Returned when the update fails due to validation issues or processing error. |
200 — Returned when the UL agreement consent is updated successfully.
{
"data": {
"customerAccountId": "c02d249a-e720-4df8-b1b6-f016e2d351de",
"id": "c02d249a-e720-4df8-b1b6-f016e2d351de",
"status": "PENDING",
"createdAt": "2023-05-01T11:30:25.2590000+00:00",
"updatedAt": "2023-05-01T11:30:25.2590000+00:00"
},
"message": "Agreement successfully updated"
}
400 — Returned when the update fails due to validation issues or processing error.
{
"errors": [
{
"type": "catch",
"message": "Could't Update agreement"
},
{
"type": "Agreement",
"message": "Tenant Id is missing in Headers"
},
{
"type": "Agreement",
"message": "Could't Update agreement"
},
{
"type": "catch",
"message": "err.message"
}
]
}