Skip to content

Partner API — v4.0.0

Type: Major Release  ·  Previous version: v3.1.0


✅ 12 New

✅ 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.

{
  "errors": [
    {
      "type": "fetch",
      "message": "No data found"
    }
  ]
}

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_POLICY
  • TERMS_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}"
    }
  ]
}

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

{
  "errors": [
    {
      "type": "No data found",
      "message": "Customer id not found"
    }
  ]
}

404 — Error response if no linked bank details found for customer

{
  "errors": [
    {
      "type": "No data found",
      "message": "Customer has no linked bank accounts"
    }
  ]
}

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 identifier object 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

{
  "errors": [
    {
      "type": "validationError",
      "message": "Missing required fields"
    }
  ]
}

404 — Record or linked bank account not found

{
  "errors": [
    {
      "type": "recordNotFound",
      "message": "Record not found in Database"
    }
  ]
}

500 — Internal server error

{
  "errors": [
    {
      "type": "internalServerError",
      "message": "An error occured while storing authorization record"
    }
  ]
}

502 — Unable to fetch details from an api

{
  "errors": [
    {
      "type": "apiError",
      "message": "Failed to fetch bank account details"
    }
  ]
}

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 identifier object 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

{
  "errors": [
    {
      "type": "validationError",
      "message": "Missing required fields"
    }
  ]
}

404 — Record or linked bank account not found

{
  "errors": [
    {
      "type": "recordNotFound",
      "message": "Record not found in Database"
    }
  ]
}

500 — Internal server error

{
  "errors": [
    {
      "type": "internalServerError",
      "message": "An error occured while storing authorization record"
    }
  ]
}

502 — Unable to fetch details from an api

{
  "errors": [
    {
      "type": "apiError",
      "message": "Failed to fetch bank account details"
    }
  ]
}

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.

{
  "errors": [
    {
      "type": "fetch",
      "message": "No data found"
    }
  ]
}

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.

{
  "errors": [
    {
      "type": "fetch",
      "message": "No data found"
    }
  ]
}

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

{
  "email": "test@email.com"
}

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

{
  "otp": "123456",
  "verificationRequestId": "969a1166-8664-4820-9cf7-76a82f076544"
}

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

{
  "type": "Email Verification",
  "message": "Email 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

{
  "errors": [
    {
      "type": "Email Verification",
      "message": "OTP expired or incorrect"
    }
  ]
}

404 — Returned when no matching OTP request is found

{
  "errors": [
    {
      "type": "Email Verification",
      "message": "No OTP request found"
    }
  ]
}

409 — Returned when OTP has already been used or expired

{
  "errors": [
    {
      "type": "Email Verification",
      "message": "OTP already verified"
    }
  ]
}

429 — Returned when OTP verification attempts exceed allowed limit

{
  "errors": [
    {
      "type": "Email Verification",
      "message": "Too many failed attempts"
    }
  ]
}

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

{
  "status": "ACCEPTED"
}

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

{
  "status": "ACCEPTED"
}

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"
    }
  ]
}