PaidYET API v3.0

Welcome to the
Developer Hub.

Comprehensive documentation and guides to help you start integrating with PaidYET's robust REST API and our full suite of integration options — from hosted checkout to JavaScript widgets, webhooks, and POS devices. This hub will provide a summary. For additional documentation, please access our ReadMe Docs at paidyet.readme.io.

Quick links

API endpoints — transactions

POST/transactionCreate a transaction (sale or auth)
GET/transaction/searchSearch for transactions
GET/transaction/:idRetrieve a transaction
POST/transaction/refund/:idRefund a transaction
PUT/transaction/capture/:idCapture an authorized transaction
PUT/transaction/void/:idVoid a transaction
PATCH/device/:devicekey/transaction/:idCancel a device transaction request

View the full API Reference →

Getting started

Our Services

We provide a variety of services to make payments easy with PaidYET. Below you'll find a quick summary of each service and links for more detailed information.

Integrations

REST API
Our fast, secure REST API allows merchants to process transactions through their PaidYET merchant account with full backend fraud protection.
Hosted Checkout
Rapid-setup hosted payment page. Customers redirect to PaidYET's secure payment page then return to your site. Integrated in minutes, zero PCI liability.
JavaScript Widget
Embeddable credit card field plugin for a seamless checkout experience — no card data liability. Added in a few lines of code.
POS Devices
State-of-the-art Android POS devices for physical point-of-sale. Integrates between cardholders and PaidYET's secure processing infrastructure.
Get Token
Tokenization converts sensitive card data into a unique token string for use in future transactions — secure card-on-file without storing raw card data.
Webhooks
Define endpoints called when events occur — like batch closed, batch created, or batch failed. Real-time event notifications for your integration.
Platform overview · Integrations

API Keys

PaidYET offers two types of API keys depending on how you're integrating. Understanding which to use is the first step in building your integration. See paidyet.readme.io/docs/api-keys for full details.

Platform overview · Integrations

REST API

Our fast, secure REST API allows merchants to process transactions through their PaidYET merchant account. Our REST API uses our backend fraud protection to eliminate fraud and remove liability from the merchant.

Base URL

Production
https://api.paidyet.com/v3
Sandbox
https://api.sandbox-paidyet.com/v3

Authentication

All requests must include your API key in the request header. Pass your API key as the value for the Authorization header.

HTTP Header
Authorization: YOUR_API_KEY
Content-Type: application/json

Transaction endpoints

POST/transactionCreate a transaction (sale or auth)
GET/transaction/searchSearch transactions by criteria
GET/transaction/:transactionIdRetrieve a single transaction
POST/transaction/refund/:transactionIdRefund a settled transaction
PUT/transaction/capture/:transactionIdCapture an authorized transaction
PUT/transaction/void/:transactionIdVoid a transaction
PATCH/device/:devicekey/transaction/:transactionIdCancel a device transaction request

Example: create a transaction

JSON — Request body
{
  "type": "sale",
  "amount": 49.99,
  "credit_card": {
    "name": "John Doe",
    "number": "4000100011112224",
    "exp": "12/34",
    "cvv": "123"
  }
}
For full API reference documentation including all parameters, response schemas, and error codes, visit paidyet.readme.io/reference.
Platform overview · Integrations

Sandbox

Sandbox is a risk-free environment that allows PaidYET service integrators to test their integrations without using real cards — eliminating the risk of leaking sensitive card information while testing.

Sandbox account: To request a sandbox account, email [email protected]. Point your integration to: https://api.sandbox-paidyet.com/v3

Transaction gateway

The PaidYET sandbox does not process live transactions and passes no credit card data to settlement platforms. All transactions use our "Mock" processor, which works only with the test cards listed below. All other cards produce an "Invalid Card" error. We do not store any credit card data on invalid cards and keep no logs of invalid attempts due to PCI DSS rules.

Email system

The sandbox environment is not intended to send emails to external accounts and should not be used for testing email receipts at scale. Sandbox emails use a lower-volume platform and will differ slightly from production emails.

Test cards

Card numberExpCVVStatusDecline codeMessage
4000100011112224932123approved
4000100111112223932321approvedAVS: A
4000100211112222932999approvedAVS: N
4000100311112221932999approvedAVS: W
4000100411112220932999approvedAVS: X
4000100511112229932999approvedAVS: Y
4000100611112228932999approvedAVS: Z
345678901234564932999approvedName + address + ZIP match
371449635398431932999approvedName + address match
378282246310005932999approvedName matches
4000300011112220932999declinedDeclined
4000300001112222932999declined4Pickup Card
4000300211112228932999declined5Do Not Honor
4000300311112227932999declined12Invalid transaction
4000300411112226932999declined15Invalid Issuer
4000300511112225932999declined25Unable to locate record
4000300611112224932999declined51Insufficient Funds
4000300711112223932999declined55Invalid Pin
4000300811112222932999declined57Transaction Not Permitted
4000300911112221932999declined62Restricted Card
4000301011112228932999declined65Excess withdrawal count
4000301311112225932999declined97CVV failure

Test ACH accounts

Account numberRoutingStatusDecline code
111111999999992accepted
100999999992declined100
200999999992declined200
300999999992declined300
Platform overview · Integrations

Hosted Checkout

Hosted Checkout is our rapid-setup hosted payment page solution that sends a customer from the merchant's site to our secure payment page when it's time to make a payment. Once payment is complete, the customer is returned to the merchant's site. Integrated in minutes — relieves the merchant of PCI liabilities entirely.

Transaction setup

Our system allows merchants to send customers to their custom payment link via POST or redirect. When payment is done, we send them back to any custom results page. The results page must be SSL encrypted.

1
Set your custom results page (optional)Go to Merchant Details → Settings to configure your results URL. If results_url is posted directly to the PaidYET payment page, the posted value will be used instead.
2
POST data to your custom payment linkReplace fields with your merchant key, pin, and payment link URL as shown in the examples below.

Sample — use PaidYET's results page

HTML
<form action="https://[paymentlink].paidyet.com" method="post">
  Amount <input name="amount">
  Invoice <input name="invoice">
  Description <input name="description">
  <button type="submit">Submit</button>
</form>

Sample — use your own results page

HTML
<input type="hidden" name="results_url" value="[Your Results URL]">

Sample — testing

Change [paymentlink] to test to use the sandbox payment page.

HTML
<form action="https://test.paidyet.com" method="post">
  Amount <input name="amount">
  Invoice <input name="invoice">
  Description <input name="description">
  <button type="submit">Submit</button>
</form>

Test card numbers

Card numberExpirationCVV2Result
40001000111122240919anySuccess
40003000111122200919anyDeclined

Post fields

Fields marked ** are editable by the user on the payment page.

FieldDescription
results_urlURL that transaction details will be posted back to
amountThe USD amount that will be charged
invoiceA unique PaidYET transaction number
description **The description of the transaction
email **Email address of the cardholder
address **Residing address of the cardholder
city / state / zip **Cardholder location fields
phone **Phone number of the cardholder
fName / lName **First and last name of the cardholder
Platform overview · Integrations

JavaScript Widget

The JavaScript Widget is our embeddable credit card field plugin. It allows merchants to provide a seamless payment experience without handling or storing sensitive cardholder information — added in a few simple lines of code.

Implementation

1
Include PaidYET's JavaScript library
HTML
<script src="https://cdn.paidyet.com/paynowv5.js"></script>
2
Create HTML placeholder and trigger button
HTML
<div id="card-element-cof"></div>
<div id="card-errors"></div>
<button onclick="PaidYET.processPayment(callback);">Process</button>
3
Initialize and render the card fields
Replace {paypage subdomain} with the subdomain of your paypage.
JavaScript
PaidYET.init('{paypage subdomain}')
PaidYET.renderForm(settings)
4
Add a callback function
JavaScript
function callback(e) {
  if (e.success) {
    alert('Successful Request')
  }
}

// Callback event object contains:
// e.success (Boolean), e.token (String),
// e.type (String), e.cc_last4 (String)

Sandbox mode

JavaScript
PaidYET.setSandbox(true)

Settings object

FieldTypeRequiredDescriptionDefault
elementstringYesID of the HTML element to insert the credit card form into
modestringNosale — process immediately · cardonfile — tokenize for later usesale
amountdecimalNoDefault charge amount. Required if hideamount is true. Ignored in cardonfile mode.
notestringNoValue sent with transaction, appears in reports
fname / lnamestringNoFirst and last name of cardholder
emailstringNoEmail address of cardholder
hideamountbooleanNoHide the amount field. Must pass amount separately if true.false
hidenotesbooleanNoHide the notes fieldfalse
hidezipbooleanNoHide the zip field. Pass zip separately if required and hidden.false
styleobjectNoJSON object for styling widget elements (see Style Object below)

Full example

JavaScript
PaidYET.init('demo')

var settings = {
  amount: '1.00',
  element: "card-element-cof",
  hidenotes: true,
  hidezip: false,
  style: {
    paddingTop: '7px',
    paddingBottom: '7px',
    borderRadius: '2px',
    borderColor: '#efefef',
    cvv: {
      display: 'none'
    }
  }
}

PaidYET.renderForm(settings)
Platform overview · Integrations

Webhooks

With webhooks, users may define an endpoint that will be called when an event occurs — such as sending batch results when a batch closes. Webhooks enable real-time event-driven integrations with PaidYET.

Events

batch.closed
Fired when a batch has successfully been sent to the settlement platform and PaidYET has received confirmation it was received.
batch.created
Fired any time a new batch is created in the system.
batch.failed
Fired when a batch closure was attempted but errors occurred — either the settlement platform did not receive the closure or errors were returned.

Webhook response format

JSON — Example response
{
  "event": "batch.closed",
  "data": [
    {
      "id": 22642,
      "status": "closed",
      "amount": "1.23",
      "merchant": { "name": "Acme Anvils" },
      "source": "tsys",
      "device": {
        "name": "Front Office Terminal",
        "sn": "123456789"
      },
      "number_transactions": 1,
      "date_opened": "2023-11-21 13:07:39",
      "date_closed": "2023-11-22 16:20:54"
    }
  ]
}

The event property value changes based on which event was fired.

Adding webhooks to your account

1
Log into your PaidYET Dashboard.
2
Expand the Account tab on the left, then click Tools.
3
Click the Access Points tab.
4
Scroll to the bottom and find the Webhooks section.
5
Click the + ADD WEBHOOK button.
6
Select the event you'd like to use, then fill in the webhook destination URL.
7
Click Save. The webhook appears in the table. You may pause or edit the destination of any webhook at any time.
Platform overview · Integrations

SDK (.NET)

Our .NET Software Development Kit can be used with backend implementations in a .NET context to simplify the coding process to our Advanced API. It wraps the REST API in a native .NET library so you can integrate PaidYET without writing raw HTTP requests.

For SDK documentation, source code, and installation instructions, contact [email protected] or visit the full developer hub at paidyet.readme.io/docs/sdk.
Platform overview · Integrations

Terminals & Devices

Our state-of-the-art POS devices use an Android interface to integrate between cardholders and PaidYET's secure payment processing infrastructure. They allow merchants to process transactions through our gateway at a physical point of sale.

For full terminal integration documentation, device compatibility lists, and ordering information, see paidyet.readme.io/docs/payment-terminals or contact [email protected].
Platform overview

Fraud Modules

PaidYET's SecuredYET™ fraud module provides backend fraud protection that eliminates fraud and removes liability from the merchant. It runs automatically on all transactions processed through the REST API.

For full fraud module documentation and configuration options, see paidyet.readme.io/docs/fraud-modules.
Platform overview

Industry-Specific Features

PaidYET offers a variety of industry-specific features to help you seamlessly integrate our services according to your business needs.

🏨 Lodging
Lower transaction rates for lodging merchants. Supports check-in auth, incremental auth, and check-out capture flow.
🛍️ eCommerce
Recurring billing and card-on-file transactions for online merchants.
🏪 Retail (Terminals)
Gateway integration with POS devices for card-present retail environments.
💼 Collections
Debt repayment certified — lower transaction rates for certified merchants in collections.
🏦 Payment Facilitator
PayFac model support — handle deposits, fees, and risk for customers under your merchant account.
🏧 ACH
Electronic checking — let customers pay by bank account instead of card.
Industry features

Lodging

PaidYET provides tools for merchants enrolled in lodging-specific pricing to qualify for lower transaction rates. Lodging transactions use a specific object structure with check-in, incremental auth, and check-out flows.

Check-in (auth)

Lodging transactions intended for check-in should use a type of auth and include a lodging object.

JSON — Check-in request
{
  "type": "auth",
  "amount": 1.23,
  "credit_card": {
    "name": "John Doe",
    "exp": "12/34",
    "number": "4111111111111111"
  },
  "lodging": {
    "duration": 1,
    "check_in_date": "2024-01-01",
    "check_out_date": "2024-01-02",
    "room_rate": 12.34
  }
}

Incremental authorization

After check-in, PATCH the original transaction to add additional charges to the bill.

JSON — Incremental auth (PATCH)
{
  "type": "incremental",
  "amount": 1.23
}

Check-out (capture)

For check-out, PATCH the original transaction with a type of sale.

JSON — Check-out (PATCH)
{
  "type": "sale"
}
Industry features

ACH

Automated Clearing House (also known as Electronic Checking) allows ACH-approved merchants to offer their customers the ability to pay by bank account instead of card. ACH rates depend on industry — ranging from 0% to 0.5% + $0.25–$2.50.

ACH transaction statuses

StatusDefinition
ProcessedNewly accepted and successfully authenticated transaction
DownloadedDownloaded to back-office system — temporary status
BO ExceptionTransaction failed back office (BO) processes
OriginatedSuccessfully validated through BO and presented to the FED
FundedTransaction has been paid to the merchant
RefundedTransaction credited back to the consumer
Invalid ReturnReturned with invalid account information
NSF ReturnReturned for non-sufficient funds
Chargeback ReturnReturned unauthorized or authorization revoked
ReturnedAll other return types not defined above
IsLateReturnAttribute (not a status) — transaction was Processed, Originated, and Funded but returned after funding
Advanced transactions

Advanced Transactions

PaidYET offers advanced transaction features for complex commerce scenarios — dual pricing, transaction fees, scheduled payments, recurring billing, and auth-only authorizations.

Dual pricing / Surcharge
Pass processing fees to customers at the time of transaction with full disclosure.
Transaction fees
Disclose and collect merchant-identified fees from customers at checkout.
Schedules
Set transactions to run on a future date automatically.
Recurring
Process transactions automatically on a regular time interval.
Auth only
Reserve funds without capturing. Valid for 25 days. Capture when ready.
Advanced transactions

Dual Pricing / Surcharge

Dual Pricing / Surcharge allows the collection of processing fees that a merchant incurs at the time the transaction is performed. The merchant must disclose to the customer which fees are present at the time the transaction is performed.

Compliance required: Surcharge programs are subject to card network rules (Visa, Mastercard, Amex) and applicable state regulations. Contact [email protected] for compliance guidance before enabling.

For full implementation documentation, see paidyet.readme.io/docs/surcharge.

Advanced transactions

Auth Only Transactions

An Authorization Only (Auth Only) transaction reserves funds from a customer's credit card without processing the payment. This verifies the card is valid and has sufficient funds without capturing the charge.

How it works

Auth Only transactions are valid for 25 days within PaidYET. The transaction will not be finalized until it is captured using the capture endpoint.

To create an Auth Only transaction, set the type field to auth in your transaction request. The funds are reserved on the customer's card but not settled until you submit a capture request.

JSON — Auth only request
{
  "type": "auth",
  "amount": 49.99,
  "credit_card": {
    "name": "John Doe",
    "number": "4000100011112224",
    "exp": "12/34",
    "cvv": "123"
  }
}

To capture the reserved funds, use the capture endpoint:

PUT/transaction/capture/:transactionIdMoves auth into current batch for settlement
Platform overview

Integrations

PaidYET offers a variety of integration options that allow you to utilize our secure payment services. Choose the approach that fits your product and engineering resources.

🔑 API Keys
Partner-level and merchant-level key options. Understand which to use for your integration.
⚡ REST API
Fast, secure API for transaction processing with full backend fraud protection.
🧪 Sandbox
Risk-free testing environment with test cards and mock processor. No real card data.
💳 Hosted Checkout
Rapid-setup hosted payment page. Integrated in minutes, zero PCI liability.
🖥️ Terminals / Devices
Android POS devices for card-present payment processing at physical locations.
🧩 JavaScript Widget
Embeddable card fields. No PCI liability, added in a few lines of code.
🔔 Webhooks
Real-time event notifications for batch events and transaction updates.
📦 SDK (.NET)
.NET library that simplifies integration with PaidYET's Advanced API.
Industry features

eCommerce

PaidYET provides the tools for recurring billing and card-on-file transactions when buying and selling goods through online media. See paidyet.readme.io/docs/ecommerce for full details.

Industry features

Retail (Terminals)

PaidYET provides the gateway that integrates with our state-of-the-art POS devices for card-present retail environments. See paidyet.readme.io/docs/retail-terminals for full details.

Industry features

Collections

PaidYET is debt repayment certified, allowing certified merchants to qualify at lower transaction rates. See paidyet.readme.io/docs/collections for full details.

Industry features

Payment Facilitator

A payment facilitator is a provider that allows its customers to accept payments using their merchant account. A PayFac handles the deposits, fees, and risk of all customers boarded under the account. See paidyet.readme.io/docs/payfac for full details.

Advanced transactions

Transaction Fees

Our services allow usage of transaction fees — any fees a merchant has identified that they want to disclose to the customer at the time of payment. See paidyet.readme.io/docs/transaction-fees for full details.

Advanced transactions

Schedules

Transaction scheduling allows transactions to be set to run on a future date. Pass a schedule object when creating a transaction via the REST API. See paidyet.readme.io/docs/schedules for full details.

Advanced transactions

Recurring

PaidYET's recurring transaction options allow transactions to be performed on a regular time interval — daily, weekly, monthly, or custom schedules. See paidyet.readme.io/docs/recurring for full details.

Other resources

Gateway Emulator

The PaidYET Gateway Emulator allows developers to simulate gateway behavior for testing purposes. See paidyet.readme.io/docs/gateway-emulators for full details.

Other resources

QDI

The PaidYET QDI (Quick Device Interface) integration option. See paidyet.readme.io/docs/qdi for full details.