Paymentus.Xotp 1.0.0

dotnet add package Paymentus.Xotp --version 1.0.0
                    
NuGet\Install-Package Paymentus.Xotp -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Paymentus.Xotp" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Paymentus.Xotp" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Paymentus.Xotp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Paymentus.Xotp --version 1.0.0
                    
#r "nuget: Paymentus.Xotp, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Paymentus.Xotp@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Paymentus.Xotp&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Paymentus.Xotp&version=1.0.0
                    
Install as a Cake Tool

Paymentus Server XOTP Package

XOTP API client for payment functionality

Installation

dotnet add package Paymentus.Xotp

Usage

Create XotpApiClient

using Paymentus.Xotp.Api;
using Paymentus.Xotp.Client;
using Paymentus.Xotp.Configuration;
using Paymentus.Xotp.Types;
using System;

// Initialize API client with base URL and TLA
string baseUrl = "https://<environment>.paymentus.com/api";
string tla = "ABC";
XotpApiClient xotpClient = XotpSdk.CreateApiClient(baseUrl, tla);

// Set session headers
xotpClient.SetSessionId(Guid.NewGuid().ToString());
xotpClient.SetSessionApp("xotp-sdk@1.0.0");

// Set token supplier
Func<string> tokenProvider = () => "valid-jwt-token";
xotpClient.SetAuthTokenSupplier(tokenProvider);

// Optional: Configure logging
var loggingConfig = new LoggingConfiguration(
    LogLevel.Normal,
    MaskingLevel.PciOnly
);
XotpApiClient xotpClientWithLogging = XotpSdk.CreateApiClient(baseUrl, tla, loggingConfig);

Payment Examples

// Example 1: Make Payment
using Paymentus.Xotp.Api;
using Paymentus.Xotp.Client;
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header for first account
var header1 = new PaymentHeader(
    accountNumber: "6759370",
    paymentAmount: 13.21,
    paymentTypeCode: "UTILITY"
);

// Create payment header for second account
var header2 = new PaymentHeader(
    accountNumber: "6759375",
    paymentAmount: 13.21,
    paymentTypeCode: "WATER"
);

// Create payment method (credit card)
var paymentMethod = new PaymentMethod(
    type: PaymentMethodTypeEnum.VISA,
    accountNumber: "4111111111111111",
    cardHolderName: "John Doe",
    creditCardExpiryDate: new CreditCardExpiryDate(
        month: MonthEnum.January, 
        year: 2035
    )
);

// Create address for customer
var address = new Address(
    line1: "10 Fifth Ave.",
    state: "NY",
    zipCode: "12345",
    city: "New York",
    country: "US"
);

// Create customer information
var customer = new Customer(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com",
    dayPhoneNr: "9051112233",
    address: address
);

// Create payment item combining all details
var paymentItem = new MakePaymentItem(
    header: new List<PaymentHeader> { header1, header2 },
    paymentMethod: paymentMethod,
    customer: customer
);

// Create the payment payload
var paymentPayload = new MakePaymentRequest(
    payment: paymentItem
);

// Make the payment
PaymentResponse result = xotpClient.MakePayment(paymentPayload);
// Example 2: Refund Payment
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header
var header = new PaymentHeader(
    accountNumber: "6759370",
    paymentAmount: 11.22,
    paymentTypeCode: "UTILITY"
);

// Create payment method for refund
var expiryDate = new CreditCardExpiryDate(
    month: MonthEnum.December,
    year: 2035
);

var paymentMethod = new PaymentMethod(
    type: PaymentMethodTypeEnum.VISAIREFUND,
    accountNumber: "4111111111111111",
    cardHolderName: "John Doe",
    creditCardExpiryDate: expiryDate
);

// Create address
var address = new Address(
    line1: "10 Fifth Ave.",
    state: "NY",
    zipCode: "12345",
    city: "New York",
    country: "US"
);

// Create customer
var customer = new Customer(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com",
    dayPhoneNr: "9051112233",
    address: address
);

// Create payment item
var payment = new Payment(
    header: header,
    paymentMethod: paymentMethod,
    customer: customer
);

// Create refund payment request
var refundPayload = new PaymentRequest(
    payment: payment
);

// Process refund
PaymentResponse result = xotpClient.RefundPayment(refundPayload);
// Example 3: Fetch Last Payment
using Paymentus.Xotp.Model;

// Create payment search request
var paymentSearchRequest = new PaymentSearchRequest(
    accountNumber: "6759370"
);

// Fetch the last payment
PaymentSearchResponse result = xotpClient.FetchLastPayment(paymentSearchRequest);
// Example 4: Payment History
using Paymentus.Xotp.Model;

// Create payment search request with date range
var searchPayload = new PaymentSearchRequest(
    accountNumber: "6759370"
)
{
    DateFrom = DateTime.Parse("2025-06-18"),
    DateTo = DateTime.Parse("2025-09-19")
};

// Get payment history
PaymentHistoryResponse result = xotpClient.GetPaymentHistory(searchPayload);
// Example 5: Convenience Fee Calculation
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header with convenience fee information
var header = new PaymentHeader(
    paymentAmount: 22.00,
    convenienceFeeState: "NY",
    convenienceFeeCountry: ConvenienceFeeCountryEnum.US
);

// Create payment method
var method = new PaymentMethod(
    type: PaymentMethodTypeEnum.MC
);

// Create payment object
var payment = new Payment(
    header: header,
    paymentMethod: method,
    paymentMethodCategory: PaymentMethodCategoryEnum.CC
);
    
// Create convenience fee calculation request
var feePayload = new PaymentRequest(
    payment: payment
);

// Calculate convenience fee
PaymentResponse result = xotpClient.CnvCalculation(feePayload);
// Example 6: Stage Payment
using Paymentus.Xotp.Model;

// Create payment header
var header = new PaymentHeader(
    accountNumber: "6759370",
    paymentAmount: 13.21,
    paymentTypeCode: "UTILITY",
    authToken1: "12345"
);

// Create customer
var customer = new Customer(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com",
    dayPhoneNr: "9051112233"
);

// Create payment item
var payment = new Payment(
    header: header,
    customer: customer
);

// Create stage payment request
var stagePaymentPayload = new PaymentRequest(
    payment: payment
);

// Stage the payment
StagePaymentResponse result = xotpClient.StagePayment(stagePaymentPayload);

Autopay Examples

// Example 1: Create Autopay
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header with schedule information
var header = new PaymentHeader(
    accountNumber: "6759371",
    paymentAmount: 21.01,
    paymentTypeCode: "UTILITY",
    scheduleTypeCode: ScheduleTypeCodeEnum.MONTHLY,
    scheduleDay: 2
);

// Create payment method with token
var paymentMethod = new PaymentMethod(
    token: "17BA0791499DB908433B80F37C5FBC89B870084B"
);

// Create customer information
var customer = new Customer(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com",
    dayPhoneNr: "9051112233"
);

// Create payment schedule combining all details
var paymentSchedule = new Payment(
    header: header,
    paymentMethod: paymentMethod,
    customer: customer
);

// Create the autopay request
var autopayPayload = new AutopayRequest(
    paymentSchedule: paymentSchedule
);

// Create autopay schedule
AutopayResponse result = xotpClient.CreateAutopay(autopayPayload);
// Example 2: Update Autopay
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header with updated values
var header = new PaymentHeader(
    scheduleTypeCode: ScheduleTypeCodeEnum.MONTHLY,
    scheduleDay: 13,
    paymentAmount: 11.09
);

// Create payment schedule
var paymentSchedule = new Payment(
    header: header
);

// Create autopay request
var autopayPayload = new AutopayRequest(
    paymentSchedule: paymentSchedule
);

// Reference number of the autopay schedule to update
string referenceNumber = "3454";

// Update autopay schedule
AutopayResponse result = xotpClient.UpdateAutopay(referenceNumber, autopayPayload);
// Example 3: Get Autopay By Reference Number
using Paymentus.Xotp.Model;

// Reference number of the autopay schedule to retrieve
string referenceNumber = "3454";

// Fetch autopay details
AutopayFindResponse result = xotpClient.GetAutopay(referenceNumber);
// Example 4: List Autopay
using Paymentus.Xotp.Model;

// Create autopay search request
var searchPayload = new AutopaySearchRequest(
    accountNumber: "6759371"
);

// List autopay schedules
AutopayListResponse result = xotpClient.ListAutoPay(searchPayload);
// Example 5: Stage Autopay
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

// Create payment header with schedule information
var header = new PaymentHeader(
    accountNumber: "6759372",
    paymentAmount: 13.21,
    paymentTypeCode: "UTILITY",
    scheduleTypeCode: ScheduleTypeCodeEnum.MONTHLY,
    scheduleStartDate: "20250909",
    scheduleDay: 11,
    authToken1: "12345"
);

// Create customer information
var customer = new Customer(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com",
    dayPhoneNr: "9051112233"
);

// Create payment schedule
var payment = new Payment(
    header: header,
    customer: customer
);

// Create stage autopay request
var stageAutopayPayload = new PaymentRequest(
    payment: payment
);

// Stage the autopay
StagePaymentResponse result = xotpClient.StageAutopay(stageAutopayPayload);
// Example 6: Delete Autopay
using Paymentus.Xotp.Model;

// Reference number of the autopay schedule to delete
string referenceNumber = "3449";

// Delete the autopay schedule
AutopayResponse result = xotpClient.DeleteAutopay(referenceNumber);

Account Examples

// Example 1: Account Inquiry
using Paymentus.Xotp.Model;

var payload = new AccountInquiryRequest(
    accountNumber: "6759370",
    paymentTypeCode: "UTILITY",
    authToken1: "12345",
    includeSchedules: true,
    includeLastUsedPm: true,
    detailedInfo: true
);

AccountInquiryResponse result = xotpClient.AccountInquiry(payload);
// Example 2: Account Info by Account Number
using Paymentus.Xotp.Model;

string accountNumber = "6759370";

ListAccountInfoResponse result = xotpClient.GetAccountInfoByAccountNumber(accountNumber);
// Example 3: Account Info by Email
using Paymentus.Xotp.Model;

string email = "user@example.com";

ListAccountInfoResponse result = xotpClient.GetAccountInfoByEmail(email);

Profile Examples

// Example 1: Create Profile
using Paymentus.Xotp.Model;
using Paymentus.Xotp.Types;

var paymentMethod = new PaymentMethod(
    type: PaymentMethodTypeEnum.VISA,
    accountNumber: "4444444444444448",
    creditCardExpiryDate: new CreditCardExpiryDate(
        month: MonthEnum.October,
        year: 2035
    ),
    cardHolderName: "John Doe"
);

var userInfo = new ProfileUserInfo(
    loginId: "john@example.com"
);

var customer = new ProfileCustomer(
    firstName: "John", 
    lastName: "Doe"
);

var profileItem = new ProfileRequestItem(
    paymentMethod: paymentMethod, 
    customer: customer,
    userInfo: userInfo
);

var payload = new ProfileRequest(profile: profileItem);

ProfileResponse result = xotpClient.CreateProfile(payload);
// Example 2: Update Profile
using Paymentus.Xotp.Model;

var profileItem = new ProfileUpdateItem(
    profileDescription: "Main Payment Profile",
    defaultFlag: true
);

var payload = new ProfileUpdateRequest(profile: profileItem);

string profileToken = "some-token";

ProfileResponse result = xotpClient.UpdateProfile(profileToken, payload);
// Example 3: Get Profile
using Paymentus.Xotp.Model;

string profileToken = "some-token";

ProfileResponse result = xotpClient.GetProfile(profileToken);
// Example 4: List Profiles
using Paymentus.Xotp.Model;

string loginId = "john@example.com";

// Use null for paymentMethodTypes to get all profiles
ListProfilesResponse result = xotpClient.GetProfiles(loginId);
// Example 5: Delete Profile
using Paymentus.Xotp.Model;

string profileToken = "some-token";

ProfileResponse result = xotpClient.DeleteProfile(profileToken);

User Examples

// Example 1: Create User
using Paymentus.Xotp.Model;

// Create user profile info
var profile = new UserProfileInfo(
    firstName: "John",
    lastName: "Doe",
    email: "john@example.com"
);

// Create user info
var userInfo = new UserInfo(
    loginId: "john@example.com",
    password: "SecretPassword123",
    forcePasswordChange: true,
    profile: profile
);

// Create client account
var clientAccount = new ClientAccountItem(
    accountNumber: "6759374",
    paymentTypeCode: "UTILITY",
    authToken1: "12345"
);

// Create user profile
var userProfile = new UserRequestItem(
    userInfo: userInfo,
    clientAccount: new List<ClientAccountItem> { clientAccount }
);

// Create the request
var createUser = new UserRequest(userProfile: userProfile);

// Create the user
UserResponse result = xotpClient.CreateUser(createUser);
// Example 2: Update User
using Paymentus.Xotp.Model;

// Create profile info with updated details
var profile = new UserProfileInfo(
    dayPhoneNr: "5559098888",
    zipCode: "28202"
);

// Create user info for user to be updated
var userInfo = new UserInfo(
    loginId: "john@example.com",
    profile: profile
);

// Create user with permission
var userWithPermission = new UserLoginId(
    loginId: "admin@example.com"
);

// Create user update request item
var userProfile = new UserUpdateRequestItem(
    userInfo: userInfo,
    user: userWithPermission
);

// Create update request
var updateUser = new UserUpdateRequest(
    userProfile: userProfile
);

// Update the user
UserResponse result = xotpClient.UpdateUser(updateUser);
// Example 3: Get User
using Paymentus.Xotp.Model;

bool includeContactInfo = true;
UserFindResponse result = xotpClient.GetUser("john@example.com", includeContactInfo);
// Example 4: Delete User
using Paymentus.Xotp.Model;

// Create user to delete
var userToDelete = new UserLoginId(
    loginId: "john@example.com"
);

// Create user with permission
var userWithPermission = new UserLoginId(
    loginId: "admin@example.com"
);

// Create user delete request
var user = new UserDeleteRequestItem(
    userInfo: userToDelete,
    user: userWithPermission
);

// Create the delete request
var deleteUser = new UserDeleteRequest(
    userProfile: user
);

// Delete the user
UserResponse result = xotpClient.DeleteUser(deleteUser);

Other Examples

// Example 1: Get Bank Info
using Paymentus.Xotp.Model;

string routingNumber = "021000128";

BankInfoResponse result = xotpClient.GetBankInfo(routingNumber);
// Example 2: Resend Email Confirmation
using Paymentus.Xotp.Model;

var header = new ResendEmailRequestHeader(
    accountNumber: "6759370",
    referenceNumber: "731358"
);

var payment = new ResendEmailRequestItem(
    header: header
);

var resendRequest = new ResendEmailRequest(
    payment: payment
);

ResendEmailResponse result = xotpClient.ResendEmailConfirmation(resendRequest);

Disclaimer

These SDKs are intended for use with the URLs and keys that are provided to you for your company by Paymentus. If you do not have this information, please reach out to your implementation or account manager. If you are interested in learning more about the solutions that Paymentus provides, you can visit our website at paymentus.com. You can request access to our complete documentation at developer.paymentus.io. If you are currently not a customer or partner and would like to learn more about the solution and how you can get started with Paymentus, please contact us at https://www.paymentus.com/lets-talk/.

Contact us

If you have any questions or need assistance, please contact us at sdksupport@paymentus.com.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Paymentus.Xotp:

Package Downloads
Paymentus.Core

Paymentus Core SDK for .NET

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 1,478 9/3/2025
0.0.2 204 9/1/2025
0.0.1 262 8/29/2025