
one.credify.sdk.dto.UserInfoRes Maven / Gradle / Ivy
package one.credify.sdk.dto;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import lombok.experimental.FieldDefaults;
import java.util.Map;
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserInfoRes {
@JsonProperty("_claim_names")
Map claimNames;
@JsonProperty("_claim_sources")
Map claimSources;
String sub;
@JsonProperty("auth_time")
long authTime;
long iat;
long rat;
String[] aud;
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class ClaimSourceValue {
@JsonProperty("JWT")
String jwt;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
public static class UserInfo {
// standard claims
Profile profile;
Phone phone;
Email email;
Address address;
// non basic standard claims
AdvanceProfile advanceProfile;
Address permanentAddress;
Employment employment;
Income income;
BankAccount bankAccount;
ReferencePerson primaryReferencePerson;
ReferencePerson secondaryReferencePerson;
Spouse spouse;
Ekyc ekyc;
DrivingPermit drivingPermit;
Idcard idcard;
OpenidDto openid;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Ext {
@JsonProperty("offer_rank")
int offerRank;
@JsonProperty("claim_tokens")
Map claimTokens;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class OpenidDto {
Ext ext;
@JsonProperty("transaction_id")
String transactionId;
@JsonProperty("signing_public_key")
String signingPublicKey;
String txn;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Profile {
String birthdate;
@JsonProperty("family_name")
String familyName;
String gender;
@JsonProperty("given_name")
String givenName;
@JsonProperty("middle_name")
String middleName;
String name;
@JsonProperty("profile_commitment")
String profileCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class AdvanceProfile {
@JsonProperty("current_housing_type")
String currentHousingType;
@JsonProperty("education_level")
String educationLevel;
@JsonProperty("marital_status")
String maritalStatus;
@JsonProperty("number_of_dependents")
int numberOfDependents;
@JsonProperty("current_housing_type_other")
String currentHousingTypeOther;
@JsonProperty("advanced_profile_commitment")
String advancedProfileCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Email {
@JsonProperty("email")
String email;
@JsonProperty("email_verified")
boolean emailVerified;
@JsonProperty("email_commitment")
String emailCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Phone {
@JsonProperty("phone_number")
String phoneNumber;
@JsonProperty("phone_number_verified")
boolean phoneNumberVerified;
@JsonProperty("phone_commitment")
String phoneCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Income {
@JsonProperty("main_income_type")
String mainIncomeType;
@JsonProperty("monthly_wage_income")
Long monthlyWageIncome;
@JsonProperty("payroll_date")
String payrollDate;
@JsonProperty("receiving_salary_method")
String receivingSalaryMethod;
@JsonProperty("monthly_family_income")
Long monthlyFamilyIncome;
@JsonProperty("monthly_expenses")
Long monthlyExpenses;
@JsonProperty("other_incomes")
String otherIncomes;
@JsonProperty("income_commitment")
String incomeCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Employment {
String occupation;
@JsonProperty("other_occupation")
String otherOccupation;
@JsonProperty("labor_contract_type")
String laborContractType;
String department;
@JsonProperty("working_time")
String workingTime;
String position;
@JsonProperty("company_name")
String companyName;
@JsonProperty("company_phone_number")
String companyPhoneNumber;
@JsonProperty("company_tax_number")
String companyTaxNumber;
@JsonProperty("company_registration_type")
String companyRegistrationType;
@JsonProperty("company_industry")
String companyIndustry;
@JsonProperty("work_address")
Address workAddress;
@JsonProperty("company_address")
Address companyAddress;
@JsonProperty("company_industry_other")
String companyIndustryOther;
@JsonProperty("company_registration_type_other")
String companyRegistrationTypeOther;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class BankAccount {
@JsonProperty("account_owner")
String accountOwner;
@JsonProperty("account_number")
String accountNumber;
String bank;
String branch;
}
// REFERENCE PERSON INFO CLASS
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PROTECTED)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class ReferencePerson {
String name;
@JsonProperty("phone_number")
String phoneNumber;
String relationship;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Spouse {
String name;
@JsonProperty("phone_number")
String phoneNumber;
@JsonProperty("idcard_number")
String idCardNumber;
}
// ADDRESS INFO CLASS
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PROTECTED)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Address {
String country;
String locality;
String region;
@JsonProperty("street_address")
String streetAddress;
String postalCode;
String formatted;
@JsonProperty("street_number")
String streetNumber;
String street;
@JsonProperty("sublocality_level_3")
String sublocalityLevel3;
@JsonProperty("sublocality_level_2")
String sublocalityLevel2;
String sublocality;
@JsonProperty("country_code")
String countryCode;
}
// EKYC INFO CLASS
public interface EkycInterface {
VerifiedClaimsDto.Evidence getEvidence();
VerifiedClaimsDto.Claims getClaims();
}
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class DrivingPermit implements EkycInterface {
@JsonProperty("driving_permit_commitment")
String drivingPermitCommitment;
@JsonProperty("driving_permit")
VerifiedClaimsDto drivingPermit;
@JsonProperty("driving_permit_number")
String drivingPermitNumber;
@JsonProperty("driving_permit_issuer")
String drivingPermitIssuer;
@JsonProperty("driving_permit_date_of_issuance")
String drivingPermitDateOfIssuance;
@JsonProperty("driving_permit_date_of_expiry")
String drivingPermitDateOfExpiry;
public VerifiedClaimsDto.Evidence getEvidence() {
if (drivingPermit == null) {
return null;
}
return drivingPermit.getEvidence();
}
public VerifiedClaimsDto.Claims getClaims() {
if (drivingPermit == null) {
return null;
}
return drivingPermit.getClaims();
}
}
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Idcard implements EkycInterface {
@JsonProperty("idcard_commitment")
String idcardCommitment;
@JsonProperty("idcard")
VerifiedClaimsDto idcard;
@JsonProperty("idcard_old_number")
String idcardOldNumber;
@JsonProperty("idcard_number")
String idcardNumber;
@JsonProperty("idcard_issuer")
String idcardIssuer;
@JsonProperty("idcard_date_of_issuance")
String idcardDateOfIssuance;
@JsonProperty("idcard_date_of_expiry")
String idcardDateOfExpiry;
public VerifiedClaimsDto.Evidence getEvidence() {
if (idcard == null) {
return null;
}
return idcard.getEvidence();
}
public VerifiedClaimsDto.Claims getClaims() {
if (idcard == null) {
return null;
}
return idcard.getClaims();
}
}
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class Ekyc implements EkycInterface {
@JsonProperty("ekyc_commitment")
String ekycCommitment;
@JsonProperty("verified_claims")
VerifiedClaimsDto verifiedClaims;
public VerifiedClaimsDto.Evidence getEvidence() {
if (verifiedClaims == null) {
return null;
}
return verifiedClaims.getEvidence();
}
public VerifiedClaimsDto.Claims getClaims() {
if (verifiedClaims == null) {
return null;
}
return verifiedClaims.getClaims();
}
}
// Special data profile
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class EmploymentDto {
Employment employment;
@JsonProperty("employment_commitment")
String employmentCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class PrimaryReferencePersonDto {
@JsonProperty("primary_reference_person")
ReferencePerson primaryReferencePerson;
@JsonProperty("primary_reference_person_commitment")
String primaryReferencePersonCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class SecondaryReferencePersonDto {
@JsonProperty("secondary_reference_person")
ReferencePerson secondaryReferencePerson;
@JsonProperty("secondary_reference_person_commitment")
String secondaryReferencePersonCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class BankAccountDto {
@JsonProperty("bank_account")
BankAccount bankAccount;
@JsonProperty("bank_account_commitment")
String bankAccountCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class SpouseDto {
Spouse spouse;
@JsonProperty("spouse_commitment")
String spouseCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class AddressDto {
Address address;
@JsonProperty("address_commitment")
String addressCommitment;
}
@NoArgsConstructor
@Getter
@Setter
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonIgnoreProperties(ignoreUnknown = true)
public static class PermanentAddressDto {
@JsonProperty("permanent_address")
Address permanentAddress;
@JsonProperty("permanent_address_commitment")
String permanentAddressCommitment;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy