# PaidYET API Documentation > Documentation for PaidYET API ## Guides - [Our Services](https://paidyet.readme.io/docs/our-services.md): We provide a variety of services to make payments easy with PaidYET. Below, you'll find a quick summary of each service and some links for more detailed information. - [Integrations](https://paidyet.readme.io/docs/integrations.md) - [API Keys](https://paidyet.readme.io/docs/api-keys.md): Which API Key to use? - [REST API](https://paidyet.readme.io/docs/rest-api.md) - [Sandbox](https://paidyet.readme.io/docs/sandbox.md) - [Hosted Checkout](https://paidyet.readme.io/docs/hosted-checkout.md) - [Terminals / Devices](https://paidyet.readme.io/docs/payment-terminals.md) - [JavaScript Widget](https://paidyet.readme.io/docs/javascript-widget.md) - [SDK](https://paidyet.readme.io/docs/sdk.md) - [Fraud Modules](https://paidyet.readme.io/docs/fraud-modules.md): The Fraud modules in PaidYET provide customizable tools to help merchants reduce risk and prevent unauthorized or suspicious transactions. These settings can be managed via the Merchant Dashboard, and must be configured individually per merchant. Settings do not carry over across merchant accounts or sub-merchants. - [Industry-Specific Features](https://paidyet.readme.io/docs/industry-specific-features.md) - [Lodging](https://paidyet.readme.io/docs/lodging-feature.md) - [eCommerce](https://paidyet.readme.io/docs/ecommerce.md): PaidYET's payment gateway is certified for eCommerce transactions. - [Retail (Terminals)](https://paidyet.readme.io/docs/retail-terminals.md) - [Collections](https://paidyet.readme.io/docs/collections.md): PaidYET is a debt repayment certified gateway. This means that we have certified to provide a lower interchange for eligible merchants. - [Payment Facilitator](https://paidyet.readme.io/docs/payfac.md): PaidYET is payment facilitator certified. - [ACH](https://paidyet.readme.io/docs/ach.md) - [Dual Pricing / Surcharge](https://paidyet.readme.io/docs/surcharge.md) - [Auth Only Transactions](https://paidyet.readme.io/docs/auth-only-transactions.md) - [Gateway Emulator](https://paidyet.readme.io/docs/gateway-emulators.md): PaidYET supports transaction requests formatted for other gateways, so you can continue using your current integration structure with little to no redevelopment. Point your API requests to the PaidYET compantible endpoint and apply your PaidYET credentials to begin processing. - [QDI](https://paidyet.readme.io/docs/qdi.md): (Quick and Dirty Interface) ## API Reference - [Using This Documentation](https://paidyet.readme.io/reference/using-this-documentation.md) - [Address](https://paidyet.readme.io/reference/address.md): An Address represents a billing address that can be associated to a Card, Customer, or Transaction. - [Batch](https://paidyet.readme.io/reference/batch.md): A Batch is a grouping for any transactions that took place within a certain timeframe. Batches do not directly contain a collection of transactions. Instead, a transaction is associated with a Batch automatically when the transaction is created. - [Check](https://paidyet.readme.io/reference/check.md): A Check represents a type of payment method that may be associated to a transaction. - [Contact Media](https://paidyet.readme.io/reference/contact-media.md): A Contact Media is a generic representation of a contact method. As of now, phone and email types are supported. - [Credit Card](https://paidyet.readme.io/reference/credit-card.md): A Credit Card is a representation of a payment method. They exist independently of transactions, but they are required to be associated with a transaction when a transaction is created. - [Customer](https://paidyet.readme.io/reference/customer.md): Customers are stored in a Merchant's customer database. - [Custom Field](https://paidyet.readme.io/reference/custom-field.md): A Custom Field can be set for a Customer, and they can be sent in with a Transaction. They represent custom pieces of information that you may want to associate with Customer or Transaction. Custom Fields can be specified when searching for Customers or Transactions. - [Device](https://paidyet.readme.io/reference/device.md): A Device represents a physical POS terminal device. - [Device Transaction](https://paidyet.readme.io/reference/device-transaction.md): A Device Transaction represents a transaction and a device that are associated together. - [Lodging](https://paidyet.readme.io/reference/lodging.md): A Lodging object represents lodging information to be sent in with a transaction. - [Schedule](https://paidyet.readme.io/reference/schedule.md): A Schedule allows associated transactions to be scheduled. It also allows associated transactions to recur according to the provided Repeat. If the recurring should end, a Repeat Cancel should be provided. - [Repeat](https://paidyet.readme.io/reference/repeat.md): A Repeat sets how often a transaction should be repeated. It is used as part of a Schedule if recurring payments are necessary. - [Repeat Cancel](https://paidyet.readme.io/reference/repeat-cancel.md): A Repeat Cancel represents when a Schedule should stop, which ends associated scheduled transactions. If a Transaction should repeat indefinitely, do not include a Repeat Cancel in the Schedule. - [Transaction](https://paidyet.readme.io/reference/transaction.md): A Transaction is a representation of an exchange that has been made, is currently being made, or is about to be made through PaidYET's REST API. - [Fees](https://paidyet.readme.io/reference/fees.md): Fees refers specifically to any additional amount sent in with a sale. Fees are sent in via the API and are not controlled or assessed by PaidYET in any way. PaidYET supports two types of fee models: Partner and Transaction. - [Obtain a bearer token](https://paidyet.readme.io/reference/post_login.md): PaidYET's REST API uses bearer tokens to authenticate each API call. Authenticate with your PaidYET key to retrieve a bearer token. The bearer token will expire periodically and you will need to obtain a new one. - [Create a Payment Method](https://paidyet.readme.io/reference/post_token.md): Tokenization is the process of breaking a stream of text/numbers up into words, phrases, symbols, or other meaningful elements called tokens. This token can then be used in place of a card number or account and routing numbers when processing a transaction. This is useful when a developer does not want to take responsibility for the security requirements of storing payment method data.

This command validates the payment method data and then returns a payment method reference token. The payment method reference token can be used in the card number field or account and routing number fields in most scenarios. Tokens for cards only store the card number and the expiration date. Tokens for checks only store the account and routing numbers. Tokens are not related to a specific merchant and can be used across multiple merchants. Credit card numbers, check account numbers, and check routing numbers will not be retrievable after initial tokenization.

Note: If it is desired to use an External ID with the Payment Method, it must be associated to the Payment Method when the Payment Method is created. - [Retrieve a Payment Method by External ID](https://paidyet.readme.io/reference/get_token-external-external-id.md): Get a payment method using its External ID. For example doing an HTTP get call to [base_url]/token/external-abc will retrieve a payment method using the user defined External ID of 'abc'.

When tokenizing a payment method, it is possible to add an External ID. The External ID can be any alphanumeric string. Payment methods can then be looked up based on the External ID that was set during creation. Simply Prepend the External ID with 'external-'. - [Retrieve a Payment Method by Token](https://paidyet.readme.io/reference/get_token-token.md): Get a payment method using its token. For example, doing an HTTP get call to [base_url]/token/abc will retrieve a payment method using the token 'abc' - [List all Customers](https://paidyet.readme.io/reference/get_customer.md): List the customers that are in your PaidYET account. - [Create a Customer](https://paidyet.readme.io/reference/post_customer.md): Create a new customer. - [Retrieve a Customer by ID](https://paidyet.readme.io/reference/get_customer-id.md): Get a Customer from their ID. - [Update a Customer](https://paidyet.readme.io/reference/put_customer-id.md): Update the Customer associated with the provided ID. - [Retrieve a Customer by External ID](https://paidyet.readme.io/reference/get_customer-external-external-id.md): Get a Customer from their custom defined External ID.

When creating a customer it is possible to add an External ID. The External ID can be any alphanumeric string. Customers can then be looked up based on the External ID that was set during creation. Simply Prepend the External ID with 'external-'. - [List all Customer Transactions](https://paidyet.readme.io/reference/get_customer-id-transaction.md): Get a collection of transactions for the customer. - [Search for Customers](https://paidyet.readme.io/reference/get_customer-search.md): Get a collection of customers matching the supplied criteria. At least one parameter is required.

Specify the search in the URL query string.

Example: GET [base_url]customer/search?name=John will get all customers in your database that start with John. All searches are case insensitive. If you have a custom field set for a customer, those fields are searchable by keys as well. - [List Active Devices](https://paidyet.readme.io/reference/get_device.md): This will return a list of all active devices. - [Retrieve a Device Transaction](https://paidyet.readme.io/reference/get_device-devicekey-transaction-transaction-id.md): This will get the transaction associated to the provided transactionkey that was previously sent to the Device associated with the provided devicekey. - [Cancel a Device Transaction request](https://paidyet.readme.io/reference/put_device-devicekey-transaction-transaction-id.md): This will cancel the transaction request associated to the provided transactionkey on the Device associated with the provided devicekey. - [Cancel a Device Transaction request](https://paidyet.readme.io/reference/patch_device-devicekey-transaction-transaction-id.md): This will cancel the transaction request associated to the provided transactionkey on the Device associated with the provided devicekey. - [Send a Device Transaction request](https://paidyet.readme.io/reference/post_device-devicekey-transaction.md): Sends a transaction request to the device (sale or auth) associated to the provided devicekey. The payment will be performed on the Device, then the Device will return the results. - [Create a Transaction](https://paidyet.readme.io/reference/post_transaction.md): Create a new transaction. There are three ways to create a new transaction:

Credit Card Transactions

Created by passing a credit card object with the transaction. Can be of type 'sale' or 'auth'. Credit Card Transactions can also be scheduled using this endpoint by simply passing a schedule object with the transaction.

ACH Transactions

Created by passing a check object with the transaction.

EMV Transactions

Created by passing a BER-TLV compliant EMV data string with the transaction. - [Void a Transaction](https://paidyet.readme.io/reference/put_transaction-void-transaction-id.md): Once a transaction has been voided, it will not show up on the customer's credit card statement. Customers who have online banking that allows them to see 'Pending' transactions may see the voided transaction for a few days before it disappears.

You can only void a transaction that hasn't been settled yet. A transaction is settled when the batch that it is in has been closed. If the transaction has been settled, you must run a refund instead using a void transaction. If you run a credit, both the credit and the initial charge will show up on the customer's credit card statement.

You can void a transaction by putting the original transaction with a type of 'void'. - [Refund a Transaction](https://paidyet.readme.io/reference/post_transaction-refund-transaction-id.md): Refund a settled transaction. If you are trying to cancel a transaction that is still in the currently open batch, you should use the void command instead. There are two kinds of transactions that can be refunded:

Credit Card Transactions

Performed by passing the transaction object with a type of 'refund' and the amount you would like to refund. Depending on the Credit Policy, a refund can be processed for larger than the original transaction amount.

ACH Transactions

Performed by passing the transaction object with a type of 'refund' and the amount you would like to refund. The amount cannot exceed the original transaction amount. - [Retrieve a Transaction](https://paidyet.readme.io/reference/get_transaction-transaction-id.md): Get a single transaction by its ID. - [Search for Transactions](https://paidyet.readme.io/reference/get_transaction-search.md): Get a collection of transactions matching the supplied criteria. At least one parameter is required.

Specify the search in the URL query string. Possible query keys are below Example: GET [base_url]transaction/search?date=2022-03-22&amount=1.02 will get all transactions run on the 22nd of march 2022 for $1.02. - [Capture a Credit Card Transaction](https://paidyet.readme.io/reference/put_transaction-capture-transaction-id.md): The capture command moves an authorized transaction into the current batch for settlement. It is possible to capture an amount other than the one originally authorized, however, you must follow the guidelines established by the merchant service bank. Capturing a higher or lower dollar amount could result in additional penalties and fees.

Most banks typically allow no more than 10 days to pass between the authorization/capture and settlement of a transaction.

You can capture a transaction by using a type of 'capture'. - [Increment a Lodging Transaction](https://paidyet.readme.io/reference/post_transaction-increment-transaction-id.md): For a Lodging transaction, you can increment it by posting it with a type of 'incremental' and the additional amount as the amount. For check-out, post the original transaction with a type of 'sale'.