Core APIs (latest)

Introduction

The Rebilly API is built on HTTP and is RESTful. It has predictable resource URLs and returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. Use your favorite HTTP/REST library in your programming language when using this API, or use one of the Rebilly SDKs, which are available in PHP and JavaScript.

Every action in the Rebilly UI is supported by an API which is documented and available for use, so that you may automate any necessary workflows or processes. This API reference documentation contains the most commonly integrated resources.

Authentication

This topic describes the different forms of authentication that are available in the Rebilly API, and how to use them.

Rebilly offers four forms of authentication: secret key, publishable key, JSON Web Tokens, and public signature key.

  • Secret API key: Use to make requests from the server side. Never share these keys. Keep them guarded and secure.
  • Publishable API key: Use in your client-side code to tokenize payment information.
  • JWT: Use to make short-life tokens that expire after a set period of time.

Manage API keys

To create or manage API keys, select one of the following:

For more information on API keys, see API keys.

Errors

Rebilly follows the error response format proposed in RFC 9457, which is also known as Problem Details for HTTP APIs. As with any API responses, your client must be prepared to gracefully handle additional members of the response.

SDKs

Rebilly provides a JavaScript SDK and a PHP SDK to help interact with the Rebilly API. However, no SDK is required to use the API.

Rebilly also provides FramePay, a client-side iFrame-based solution, to help create payment tokens while minimizing PCI DSS compliance burdens and maximizing your customization ability. FramePay interacts with the payment tokens creation operation.

JavaScript SDK

For installation and usage instructions, see SDKs. All JavaScript SDK code examples are included in the API reference documentation.

PHP SDK

For installation and usage instructions, see SDKs. All SDK code examples are included in the API reference documentation. To use them, you must configure the $client as follows:

$client = new Rebilly\Client([
    'apiKey' => 'YourApiKeyHere',
    'baseUrl' => 'https://api.rebilly.com',
]);

Get started

The full Rebilly API has over 500 operations. This is likely more than you may need to implement your use cases. If you would like to implement a particular use case, contact Rebilly for guidance and feedback on the best API operations to use for the task.

To integrate Rebilly, and learn about related resources and concepts, see Get started.

Rate limits

Rebilly enforces rate limits on the API to ensure that no single organization consumes too many resources. Rate limits are applied to the organization, and not to the API key. In sandbox environment, rate limits are enforced for non-GET endpoints and are set at 3000 requests per 10 minutes. You can find the exact number of consumed requests in the X-RateLimit-Limit and X-RateLimit-Remaining headers in the response. If the rate limit is exceeded, the API returns a 429 Too Many Requests response and a X-RateLimit-Retry-After header that includes a UTC timestamp of when the rate limit resets.

Download OpenAPI description
Languages
Servers
Mock server
https://www.rebilly.com/_mock/docs/dev-docs/api/
Sandbox server
https://api-sandbox.rebilly.com/organizations/{organizationId}/
Live server
https://api.rebilly.com/organizations/{organizationId}/

Customers

Use these operations to manage customers. A customer is an entity that purchases goods or services from you (a merchant), and is the payee in any transaction that is credited to you. Customers are associated with payment instruments, subscriptions, invoices, and other related resources.

In other systems, customers may be referred to as accounts, clients, members, patrons, or players. For information on the customer resource, see Resources.

Operations

Customer authentication

Use these operations to validate the identity of users and manage authentication credentials.

Operations

Tags

Use tags to organize and categorize customers or KYC documents based on keywords.

Operations

Customers timeline

Use customer timelines to maintain an audit trail of changes and activity for each customer.

Operations

Payment instruments

Use these operations to manage payment instruments. Payment instrument is a term which describes any means of making a digital payment, such as: credit cards, debit cards, direct debits, payment service providers, and digital wallets.

For more information on payment instruments, see Payment instruments.

OperationsWebhooks

Payment tokens

Use payment tokens to reduce the scope of PCI DSS compliance.

A payment token can be made using a different authentication scheme (public key authentication), which enables you to create a payment token directly from the browser. This bypasses the need to send sensitive cardholder info to your servers. We recommend using this with the FramePay library, which helps you integrate a form into this API resource and create payment tokens.

Operations

Transactions

Use these operations to:

  • set up payment instruments for payments
  • authorize and hold funds
  • capture funds
  • make payments
  • make payouts
  • refund transactions.
Operations

Ready to pay

Request

Retrieves available payment methods for a specific transaction or purchase.

The order in which the payment methods are displayed to the customer should be the same as the order in the response.

The list of payment methods is generated from available gateway accounts and the last matched adjust-ready-to-pay action on the ready-to-pay-requested event. If no rules match for the specific request, all methods supported by the gateway accounts are sent.

To invert this behavior, place an all matching rule at the end of the ready-to-pay-requested event in the rules engine, and include an empty paymentMethods property for the adjust-ready-to-pay action.

For more information, see Update event rules and Gateway accounts.

Bodyapplication/json
One of:
websiteIdstring(WebsiteId)<= 50 charactersrequired
currencystring(CurrencyCode)= 3 charactersrequired

Currency code in ISO 4217 format.

amountnumber(double)required

Amount to pay.

billingAddressobject(ContactObject)write-only

Billing address.

riskMetadataobject(RiskMetadata)required

Risk metadata used for 3D Secure and risk scoring.

riskMetadata.​ipAddressstring or null(ipv4 or ipv6)

Customer's IP address.

Example: "93.92.91.90"
riskMetadata.​fingerprintstring or null<= 50 characters

Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.

Example: "pIUt3xbgX3l9g3YDiLbx"
riskMetadata.​httpHeadersHttpHeaders (object) or null
One of:

HTTP headers.

riskMetadata.​browserDataobject or null

Browser data used for 3D Secure and risk scoring.

riskMetadata.​extraDataobject or null

Third-party data used for risk scoring.

customerIdstring(CustomerId)<= 50 characters

ID of the customer resource.

curl -i -X POST \
  https://www.rebilly.com/_mock/docs/dev-docs/api/ready-to-pay \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "currency": "USD",
    "amount": 0.1,
    "billingAddress": {
      "firstName": "Benjamin",
      "lastName": "Franklin",
      "organization": "Rebilly",
      "address": "36 Craven St",
      "address2": "string",
      "city": "Austin",
      "region": "Texas",
      "country": "GB",
      "postalCode": "WC2N 5NF",
      "phoneNumbers": [
        {
          "label": "main",
          "value": "512-710-1640",
          "primary": true
        }
      ],
      "emails": [
        {
          "label": "main",
          "value": "rebilly@example.com",
          "primary": true
        }
      ],
      "dob": "1980-04-01",
      "jobTitle": "CEO"
    },
    "riskMetadata": {
      "ipAddress": "93.92.91.90",
      "fingerprint": "pIUt3xbgX3l9g3YDiLbx",
      "httpHeaders": {
        "Content-Type": "application/json",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      },
      "browserData": {
        "colorDepth": 24,
        "isJavaEnabled": true,
        "language": "en-US",
        "screenWidth": 1920,
        "screenHeight": 1080,
        "timeZoneOffset": 300,
        "isAdBlockEnabled": true
      },
      "extraData": {
        "kountFraudSessionId": "abcdefg12345abababab123456789012",
        "payPalMerchantSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowa",
        "threatMetrixSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa"
      }
    },
    "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
  }'

Responses

Payment methods retrieved.

Headers
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/jsonArray [
methodstringrequired

Payment method.

Value"payment-card"
Discriminator
featurePaymentCardFeature (object) or null

Specific feature of this method. For example, a digital wallet. If the method does not have any features, this value is null.

One of:

Specific feature of this method. For example, a digital wallet. If the method does not have any features, this value is null.

brandsArray of strings(PaymentCardBrand)non-empty

List of supported brands.

Items Enum"Visa""MasterCard""American Express""Discover""Maestro""Solo""Electron""JCB""Voyager""Diners Club"
filtersArray of strings(ReadyToPayMethodFilters)

For the method to be applicable, one or more of the following filters must match. If no filters are sent, no restrictions are applied. For more information, see Using filters.

]
Response
application/json
[ { "method": "payment-card", "feature": {}, "brands": [], "filters": [] } ]

Create a transaction

Request

Creates a transaction of type sale, authorize or setup.

Use this operation for the following transactions.

Real-time decision and response

In this transaction, you send a request and inspect the result of the response for approved or declined.

User approval/interaction required

In this transaction, user approval is required to complete the transaction. User approval generally requires the user to interact with a third party, and is common in many transactions for alternative methods. For example, PayPal requires user permission to complete a payment or to accept a billing agreement. Payment cards may also require user approval for 3D secure authentication.

If approval is required, you receive a response with a result value of unknown and a status value of waiting-approval. The _links property of the response has a link for the approvalUrl. Open the approvalUrl in an iframe or in a pop. A pop is a better workflow for mobile devices.

Query
expandstring

Expands a request to include embedded objects within the _embedded property of the response. This field accepts a comma-separated list of objects.

For more information, see Expand to include embedded objects.

Bodyapplication/jsonrequired

Transaction resource.

upsertCustomerbooleanwrite-only

Specifies whether to create or update (upsert) a customer. If this value is true, the operation creates or updates (upserts) a customer. If this value is false, the customerId already exists, and the related customer is not updated.

Default false
typestringrequired

Type of transaction.

This field supports a limited subset of transaction types. To refund or void, see Refund a transaction.

To capture, use the sale type. If any existing authorize transactions are eligible, they are captured and the sale converts to a capture type.

The setup type sets up the payment instrument by following the setupInstruction in the selected gateway account. If the instruction is to do-nothing, a transaction with result approved of type setup returns.

Enum"sale""authorize""setup"
limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer resource.

currencystring(CurrencyCode)= 3 charactersrequired

Currency code in ISO 4217 format.

amountnumber(double)required

Amount of the transaction.

Example: 97.97
invoiceIdsArray of strings or null(ResourceId)

Array of invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
paymentInstructionPayment token (object) or Payment instrument (object) or Payment Methods (object) or Payment card (object) or Bank account (object)(PaymentInstruction)
One of:

Payment instruction for the purchase. If this value is not supplied, the customer's default payment instrument is used.

billingAddressContactObject (object) or null

Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.

One of:

Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.

requestIdstring or null<= 50 characters^[\-\w]+$

Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same requestId, it is ignored to prevent double-billing. This value must be unique within a 24-hour period.

Important: This field is recommended.

Example: "44433322-2c4y-483z-a0a9-158621f77a21"
gatewayAccountIdstring or null<= 50 characters

ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the gateway-account-requested event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
descriptionstring or null<= 255 characters

Payment description.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

redirectUrlstring or null(uri)

URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use {id} or {result} as placeholders in the URL, these are replaced the with the transaction ID and result accordingly.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

riskMetadataobject(RiskMetadata)

Risk metadata used for 3D Secure and risk scoring.

isProcessedOutsideboolean

Specifies when the transaction is processed outside Rebilly.

Default false
isMerchantInitiatedboolean

Specifies when the transaction is initiated by the merchant.

Default false
processedTimestring(date-time)

Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly.

curl -i -X POST \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions?expand=string' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "upsertCustomer": false,
    "type": "sale",
    "limits": {
      "amount": 275.35,
      "currency": "USD",
      "resetTime": "2019-08-24T14:15:22Z"
    },
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF",
    "currency": "USD",
    "amount": 97.97,
    "invoiceIds": [
      "4f6cf35x-2c4y-483z-a0a9-158621f77a21"
    ],
    "paymentInstruction": {
      "token": "string"
    },
    "billingAddress": {
      "firstName": "Benjamin",
      "lastName": "Franklin",
      "organization": "Rebilly",
      "address": "36 Craven St",
      "address2": "string",
      "city": "Austin",
      "region": "Texas",
      "country": "GB",
      "postalCode": "WC2N 5NF",
      "phoneNumbers": [
        {
          "label": "main",
          "value": "512-710-1640",
          "primary": true
        }
      ],
      "emails": [
        {
          "label": "main",
          "value": "rebilly@example.com",
          "primary": true
        }
      ],
      "dob": "1980-04-01",
      "jobTitle": "CEO"
    },
    "requestId": "44433322-2c4y-483z-a0a9-158621f77a21",
    "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34",
    "description": "string",
    "notificationUrl": "http://example.com",
    "redirectUrl": "http://example.com",
    "customFields": {
      "foo": "bar"
    },
    "riskMetadata": {
      "ipAddress": "93.92.91.90",
      "fingerprint": "pIUt3xbgX3l9g3YDiLbx",
      "httpHeaders": {
        "Content-Type": "application/json",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      },
      "browserData": {
        "colorDepth": 24,
        "isJavaEnabled": true,
        "language": "en-US",
        "screenWidth": 1920,
        "screenHeight": 1080,
        "timeZoneOffset": 300,
        "isAdBlockEnabled": true
      },
      "extraData": {
        "kountFraudSessionId": "abcdefg12345abababab123456789012",
        "payPalMerchantSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowa",
        "threatMetrixSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa"
      }
    },
    "isProcessedOutside": false,
    "isMerchantInitiated": false,
    "processedTime": "2019-08-24T14:15:22Z"
  }'

Responses

Transaction created.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Retrieve transactions

Request

Retrieves a list of transactions.

Query
limitinteger[ 0 .. 1000 ]

Limits the number of collection items to be returned.

offsetinteger[ 0 .. 1000 ]

Specifies the starting point within the collection of items to be returned.

filterstring

Filters the collection items. This field requires a special format. Use , for multiple allowed values. Use ; for multiple fields.

For more information, see Using filter with collections.

qstring

Use this field to perform a partial search of text fields.

sortArray of strings

Sorts and orders the collection of items. To sort in descending order, prefix with -. Multiple fields can be sorted by separating each with ,.

expandstring

Expands a request to include embedded objects within the _embedded property of the response. This field accepts a comma-separated list of objects.

For more information, see Expand to include embedded objects.

curl -i -X GET \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions?expand=string&filter=string&limit=1000&offset=1000&q=string&sort=string' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

List of transactions retrieved.

Headers
Pagination-Totalinteger

Total number of items.

Example: 332
Pagination-Limitinteger

Maximum number of items per page.

Example: 100
Pagination-Offsetinteger

Specifies the starting point within the collection of resource results. For example, a request with limit=20 retrieves and displays the first 20 results on a page. A following request with limit=20 and offset=20, retrieves the next page of 20 results.

Example: 2
Bodyapplication/jsonArray [
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

]
Response
application/json
[ { "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [], "invoiceIds": [], "subscriptionIds": [], "planIds": [], "isRebill": true, "rebillNumber": 0, "billingAddress": {}, "has3ds": true, "3ds": {}, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": {}, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": {}, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": {}, "bin": "string", "paymentInstrument": {}, "hasDcc": true, "dcc": {}, "hasBumpOffer": true, "bumpOffer": {}, "riskScore": 0, "riskMetadata": {}, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": {}, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [], "_embedded": {} } ]

Retrieve a transaction

Request

Retrieves a transaction with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Query
expandstring

Expands a request to include embedded objects within the _embedded property of the response. This field accepts a comma-separated list of objects.

For more information, see Expand to include embedded objects.

curl -i -X GET \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions/{id}?expand=string' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

Transaction retrieved.

Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Update a transaction

Request

Updates the custom fields of a transaction with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Bodyapplication/jsonrequired

Use the patch transaction request to modify custom fields.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

curl -i -X PATCH \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions/{id}' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "customFields": {
      "foo": "bar"
    }
  }'

Responses

Transaction updated.

Headers
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Create a credit transaction

Request

Creates a transaction of type credit.

Bodyapplication/jsonrequired

Transaction resource.

websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer resource.

currencystring(CurrencyCode)= 3 charactersrequired

Currency code in ISO 4217 format.

amountnumber(double)required

Amount of the transaction.

Example: 97.97
invoiceIdsArray of strings or null(ResourceId)

Array of invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
paymentInstructionPayment token (object) or Payment instrument (object) or Payment Methods (object) or Payment card (object) or Bank account (object)(PaymentInstruction)
One of:

Payment instruction for the purchase. If this value is not supplied, the customer's default payment instrument is used.

billingAddressContactObject (object) or null

Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.

One of:

Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.

requestIdstring or null<= 50 characters^[\-\w]+$

Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same requestId, it is ignored to prevent double-billing. This value must be unique within a 24-hour period.

Important: This field is recommended.

Example: "44433322-2c4y-483z-a0a9-158621f77a21"
gatewayAccountIdstring or null<= 50 characters

ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the gateway-account-requested event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
descriptionstring or null<= 255 characters

Payment description.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

redirectUrlstring or null(uri)

URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use {id} or {result} as placeholders in the URL, these are replaced the with the transaction ID and result accordingly.

customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

riskMetadataobject(RiskMetadata)

Risk metadata used for 3D Secure and risk scoring.

isProcessedOutsideboolean

Specifies when the transaction is processed outside Rebilly.

Default false
isMerchantInitiatedboolean

Specifies when the transaction is initiated by the merchant.

Default false
processedTimestring(date-time)

Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly.

payoutRequestIdstring<= 50 characterswrite-only

ID of the payout request for which the transaction is fully allocated.

curl -i -X POST \
  https://www.rebilly.com/_mock/docs/dev-docs/api/payouts \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF",
    "currency": "USD",
    "amount": 97.97,
    "invoiceIds": [
      "4f6cf35x-2c4y-483z-a0a9-158621f77a21"
    ],
    "paymentInstruction": {
      "token": "string"
    },
    "billingAddress": {
      "firstName": "Benjamin",
      "lastName": "Franklin",
      "organization": "Rebilly",
      "address": "36 Craven St",
      "address2": "string",
      "city": "Austin",
      "region": "Texas",
      "country": "GB",
      "postalCode": "WC2N 5NF",
      "phoneNumbers": [
        {
          "label": "main",
          "value": "512-710-1640",
          "primary": true
        }
      ],
      "emails": [
        {
          "label": "main",
          "value": "rebilly@example.com",
          "primary": true
        }
      ],
      "dob": "1980-04-01",
      "jobTitle": "CEO"
    },
    "requestId": "44433322-2c4y-483z-a0a9-158621f77a21",
    "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34",
    "description": "string",
    "notificationUrl": "http://example.com",
    "redirectUrl": "http://example.com",
    "customFields": {
      "foo": "bar"
    },
    "riskMetadata": {
      "ipAddress": "93.92.91.90",
      "fingerprint": "pIUt3xbgX3l9g3YDiLbx",
      "httpHeaders": {
        "Content-Type": "application/json",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
      },
      "browserData": {
        "colorDepth": 24,
        "isJavaEnabled": true,
        "language": "en-US",
        "screenWidth": 1920,
        "screenHeight": 1080,
        "timeZoneOffset": 300,
        "isAdBlockEnabled": true
      },
      "extraData": {
        "kountFraudSessionId": "abcdefg12345abababab123456789012",
        "payPalMerchantSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowa",
        "threatMetrixSessionId": "dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa"
      }
    },
    "isProcessedOutside": false,
    "isMerchantInitiated": false,
    "processedTime": "2019-08-24T14:15:22Z",
    "payoutRequestId": "string"
  }'

Responses

Transaction created.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Query a transaction

Request

Queries a transaction with a specified ID.

The query interacts with the related gateway account to obtain the result, amount, and currency. If after analysis, the transaction must be updated, see Update a transaction status.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

curl -i -X POST \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions/{id}/query' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

Transaction queried.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""suspended"
amountnumber(double)read-only

Amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

Response
application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "result": "abandoned", "status": "completed", "amount": 0.1, "currency": "USD" }

Update a transaction status

Request

Updates the status of a transaction with a specified ID to completed, with a specified result and optional currency and amount values.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Bodyapplication/jsonrequired
resultstringrequired

Result of the transaction.

Enum"abandoned""approved""canceled""declined"
amountnumber(double)

Amount of the transaction.

currencystring(CurrencyCode)= 3 characters

Currency of the transaction.

curl -i -X POST \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions/{id}/update' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "result": "abandoned",
    "amount": 0.1,
    "currency": "USD"
  }'

Responses

Transaction updated.

Headers
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Refund a transaction

Request

Refunds a transaction with a specified ID.

The refund is in the same currency as the original transaction.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Bodyapplication/jsonrequired

Transaction resource.

amountnumber(double)required

Amount of the refund.

descriptionstring<= 255 characters

Description of the refund.

isProcessedOutsideboolean

Specifies if the refund is processed outside of Rebilly.

Default false
curl -i -X POST \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/transactions/{id}/refund' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "amount": 0.1,
    "description": "string",
    "isProcessedOutside": false
  }'

Responses

Transaction refunded.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring(TransactionId)<= 50 charactersread-only

ID of the transaction.

websiteIdstring<= 50 charactersread-only
Example: "web_0YV7DE4Z26DQSA1AC92FBJ7SEG"
customerIdstring<= 50 characters

ID of the customer resource.

Example: "cus_0YV7DDSDD1C8DA64KHH2W33CPF"
typestringread-only

Type of transaction.

Enum"3ds-authentication""authorize""capture""credit""refund""sale""setup""void"
statusstringread-only

Status of the transaction.

Enum"completed""conn-error""disputed""never-sent""offsite""partially-refunded""pending""refunded""sending""timeout"
resultstringread-only

Result of the transaction.

Enum"abandoned""approved""canceled""declined""unknown"
amountnumber(double)read-only

Total amount of the transaction.

currencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

purchaseAmountnumber(double)read-only

Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.

purchaseCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

requestAmountnumber(double)read-only

Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.

requestCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

parentTransactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
childTransactionsArray of strings(ResourceId)read-only

IDs of child transactions.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
invoiceIdsArray of strings(ResourceId)read-only

Related invoice IDs.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
subscriptionIdsArray of strings(ResourceId)read-only

Subscription IDs of invoices that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
planIdsArray of strings(ResourceId)read-only

Plan IDs of orders that are related to the transaction.

Example: ["4f6cf35x-2c4y-483z-a0a9-158621f77a21"]
isRebillbooleanread-only

Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.

rebillNumberintegerread-only

Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.

billingAddressobject(ContactObject)

Billing address.

has3dsbooleanread-only

Specifies if the transaction uses 3D Secure.

3dsobjectread-only
redirectUrlstring or null(uri)

URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.

retryNumberintegerread-only

Position of the transaction in the sequence of retries.

isRetrybooleanread-only

Specifies if a transaction is a retry.

billingDescriptorstring or nullread-only

Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.

descriptionstring<= 255 characters

Description of the payment.

requestIdstring

Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions.

hasAmountAdjustmentbooleanread-only

Specifies if the transaction has amount adjustment.

gatewayNamestring or nullread-only

Payment gateway name.

Enum"A1Gateway""ACI""Adyen""Aircash""Airpay""Airwallex""AmazonPay""AmexVPC""ApcoPay""AsiaPaymentGateway"
customFieldsobject(ResourceCustomFields)

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see Custom fields.

processedTimestring(date-time)(ServerTimestamp)read-only

Date and time when the transaction is processed.

createdTimestring(date-time)(CreatedTime)read-only

Date and time which is set automatically when the resource is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time which updates automatically when the resource is updated.

gatewayAccountIdstring or null<= 50 charactersread-only

ID of the gateway account that processed the transaction.

Example: "gw_acc_0YVCXMF26DDNKAERE5NW727S34"
gatewayTransactionIdstring or null<= 50 charactersread-only

ID of the gateway transaction.

Example: "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0"
gatewayobjectread-only

Related gateway information.

acquirerNamestring or nullread-only

Acquirer name.

Enum"Adyen""ACI""Alipay""AIB""Aircash""Airpay""AmazonPay""ApcoPay""AsiaPaymentGateway""AstroPay Card"
velocityinteger

Number of transactions by the same customer in the past 24 hours.

revisionintegerread-only

Number of times the transaction data has been modified.

This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

referenceDataobject or nullread-only

Transaction reference data.

Example: {"gatewayTransactionId":"GAT123"}
binstring or null(bin)read-only

Payment card Bank Identification Number (BIN).

paymentInstrumentVaulted payment instrument (object) or Alternative instrument (object) or Cash (object) or Check (object)
Any of:

Vaulted payment instrument.

To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument.

hasDccbooleanread-only

Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.

dccobject or nullread-only

Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.

hasBumpOfferbooleanread-only

Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout.

bumpOfferobject or nullread-only

Bump offer information. If the transaction does not have an associated bump offer, this value is null.

riskScoreintegerread-only

Risk score for the transaction.

riskMetadataRisk metadata (object) or null
One of:

Risk metadata used for 3D Secure and risk scoring.

notificationUrlstring or null(uri)

URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction.

Do not interpret this notification as a confirmation, complete a GET request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a 2xx HTTP status code.

The following placeholders are available to use in this URI: {id} and {result}. These placeholders are replaced the with the transaction ID and result accordingly.

isDisputedbooleanread-only

Specifies if a transaction is disputed.

disputeTimestring or null(date-time)read-only

Date and time when the dispute is created. If the transaction is not disputed, this value is null.

disputeStatusstring or nullread-only

Status of the dispute.

Enumnull"response-needed""under-review""forfeited""won""lost""unknown"
isReconciledbooleanread-only

Specifies if the transaction is verified with gateway batch data.

isProcessedOutsideboolean

Specifies if the transaction is processed outside of Rebilly.

isMerchantInitiatedboolean

Specifies if the transaction is initiated by the merchant.

hadDiscrepancybooleanread-only

Specifies if the transaction is updated due to a discrepancy with its source of truth.

arnstring or nullread-only

Acquirer reference number.

Example: "74836950144358910018150"
reportAmountnumber(double)read-only

Transaction amount converted to the report currency of the organization.

reportCurrencystring(CurrencyCode)= 3 charactersread-only

Currency code in ISO 4217 format.

settlementTimestring or null(date-time)read-only

Date and time when the transaction is settled by the banking institution.

discrepancyTimestring or null(date-time)read-only

Date and time of the most recent discrepancy on the transaction.

limitsobject or null(TransactionLimitAmount)

Transaction amount limit information.

organizationIdstring<= 50 charactersread-only

Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.

Example: "org_0YVDM8RC7GDADADSBSMW124JA8"
depositRequestIdstring or null<= 50 charactersread-only

ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.

Example: "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7"
payoutRequestIdstring or null<= 50 charactersread-only

ID of the payout request if applicable. The created transaction is based on the properties of this payout request.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
_linksArray of objectsread-only

Related links.

_embeddedobjectread-only

Embedded objects that are requested by the expand query parameter.

methodstringDeprecated

Payment method.

Enum"payment-card""ach""cash""check""paypal""AdvCash""Aircash""Airpay""Alfa-click""Alipay"
orderIdstringDeprecated

Order ID of the transaction. This ID must be unique within a 24 hour period.

Note: Use the requestId field instead.

Response
application/json
{ "id": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "type": "3ds-authentication", "status": "completed", "result": "abandoned", "amount": 0.1, "currency": "USD", "purchaseAmount": 0.1, "purchaseCurrency": "USD", "requestAmount": 0.1, "requestCurrency": "USD", "parentTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "childTransactions": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "invoiceIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "subscriptionIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "planIds": [ "4f6cf35x-2c4y-483z-a0a9-158621f77a21" ], "isRebill": true, "rebillNumber": 0, "billingAddress": { "firstName": "Benjamin", "lastName": "Franklin", "organization": "Rebilly", "address": "36 Craven St", "address2": "string", "city": "Austin", "region": "Texas", "country": "GB", "postalCode": "WC2N 5NF", "phoneNumbers": [], "emails": [], "dob": "1980-04-01", "jobTitle": "CEO", "hash": "056ae6d97c788b9e98b049ebafd7b229bf852221" }, "has3ds": true, "3ds": { "server": "string", "version": "1.0.2", "enrolled": "yes", "authenticated": "yes", "liability": "protected", "flow": "frictionless", "isDowngraded": false }, "redirectUrl": "http://example.com", "retryNumber": 0, "isRetry": true, "billingDescriptor": "string", "description": "string", "requestId": "string", "hasAmountAdjustment": true, "gatewayName": "A1Gateway", "customFields": { "foo": "bar" }, "processedTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "gatewayAccountId": "gw_acc_0YVCXMF26DDNKAERE5NW727S34", "gatewayTransactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "gateway": { "response": {}, "avsResponse": {}, "cvvResponse": {} }, "acquirerName": "Adyen", "method": "payment-card", "velocity": 0, "revision": 0, "referenceData": { "gatewayTransactionId": "GAT123" }, "bin": "string", "paymentInstrument": { "method": "payment-card", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N" }, "hasDcc": true, "dcc": { "base": {}, "quote": {}, "usdMarkup": 10, "outcome": "rejected" }, "hasBumpOffer": true, "bumpOffer": { "order": {}, "version": "string", "language": "US", "outcome": "presented", "presentedOffers": [], "selectedOffer": {} }, "riskScore": 0, "riskMetadata": { "ipAddress": "93.92.91.90", "fingerprint": "pIUt3xbgX3l9g3YDiLbx", "httpHeaders": {}, "browserData": {}, "extraData": {}, "isProxy": true, "isVpn": true, "isTor": true, "isHosting": true, "hostingName": "string", "isp": "string", "country": "US", "region": "NY", "city": "New York", "latitude": 0.1, "longitude": 0, "postalCode": "string", "timeZone": "America/New_York", "accuracyRadius": 0, "distance": 0, "hasMismatchedBillingAddressCountry": true, "hasMismatchedBankCountry": true, "hasMismatchedTimeZone": true, "hasMismatchedHolderName": true, "hasFakeName": true, "isHighRiskCountry": true, "paymentInstrumentVelocity": 0, "declinedPaymentInstrumentVelocity": 0, "deviceVelocity": 0, "ipVelocity": 0, "emailVelocity": 0, "billingAddressVelocity": 0, "paymentInstrumentApprovedTransactionCount": 0, "score": 0 }, "notificationUrl": "http://example.com", "isDisputed": true, "disputeTime": "2019-08-24T14:15:22Z", "disputeStatus": null, "isReconciled": true, "isProcessedOutside": true, "isMerchantInitiated": true, "hadDiscrepancy": true, "orderId": "string", "arn": "74836950144358910018150", "reportAmount": 0.1, "reportCurrency": "USD", "settlementTime": "2019-08-24T14:15:22Z", "discrepancyTime": "2019-08-24T14:15:22Z", "limits": { "amount": 275.35, "currency": "USD", "resetTime": "2019-08-24T14:15:22Z" }, "organizationId": "org_0YVDM8RC7GDADADSBSMW124JA8", "depositRequestId": "dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ {} ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }

Retrieve a list of payout requests

Request

Retrieves a list of payout requests.

Query
limitinteger[ 0 .. 1000 ]

Limits the number of collection items to be returned.

offsetinteger[ 0 .. 1000 ]

Specifies the starting point within the collection of items to be returned.

filterstring

Filters the collection items. This field requires a special format. Use , for multiple allowed values. Use ; for multiple fields.

For more information, see Using filter with collections.

sortArray of strings

Sorts and orders the collection of items. To sort in descending order, prefix with -. Multiple fields can be sorted by separating each with ,.

curl -i -X GET \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests?filter=string&limit=1000&offset=1000&sort=string' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

List of payout requests retrieved.

Headers
Pagination-Totalinteger

Total number of items.

Example: 332
Pagination-Limitinteger

Maximum number of items per page.

Example: 100
Pagination-Offsetinteger

Specifies the starting point within the collection of resource results. For example, a request with limit=20 retrieves and displays the first 20 results on a page. A following request with limit=20 and offset=20, retrieves the next page of 20 results.

Example: 2
Bodyapplication/jsonArray [
idstring<= 50 charactersread-only

Unique resource ID.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

availableAmountnumber(double)read-only

Available payout request amount that has not been allocated.

descriptionstring or null

Description of payout request.

statusstringread-only

Status of the request.

Enum ValueDescription
pending

Request is awaiting customer's selection of the payment instrument or fulfillment.

instrument-selected

Request has a selected payment instrument and is awaiting fulfillment.

partially-fulfilled

Request is partially paid out when availableAmount is less than amount.

fulfilled

Request is fully paid out when availableAmount reaches zero.

canceled

Request is canceled by merchant or customer.

selectPaymentInstrumentUrlstring(uri)read-only

URL for the customer to select a preferred payment instrument.

allocationsArray of objectsread-only

List of credit transactions that are allocated to reduce the available amount of a payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
cancellationReasonobject or null(PayoutRequestCancellation)read-only

Reason the payout request is canceled.

createdTimestring(date-time)(ServerTimestamp)read-only

Date and time when the payout request is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time when the payout request is updated.

_linksArray of objectsread-only

Related links.

]
Response
application/json
[ { "id": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "currency": "USD", "amount": 0.1, "availableAmount": 0.1, "description": "string", "status": "pending", "selectPaymentInstrumentUrl": "http://example.com", "allocations": [], "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}", "cancellationReason": {}, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [] } ]

Create a payout request

Request

Creates a payout request. In the response, the selectPaymentInstrumentUrl field is used to redirect the customer to select a preferred payment instrument. After a payment instrument is selected, the customer is redirected to the selectedPaymentInstrumentRedirectUrl value.

Important: The selected payment gateway must be configured to support payout requests. For more information, see the readyToPayoutInstruction field.

Bodyapplication/jsonrequired

Payout request resource.

websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

descriptionstring or null

Description of payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
curl -i -X POST \
  https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF",
    "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N",
    "currency": "USD",
    "amount": 0.1,
    "description": "string",
    "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}"
  }'

Responses

Payout request created.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring<= 50 charactersread-only

Unique resource ID.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

availableAmountnumber(double)read-only

Available payout request amount that has not been allocated.

descriptionstring or null

Description of payout request.

statusstringread-only

Status of the request.

Enum ValueDescription
pending

Request is awaiting customer's selection of the payment instrument or fulfillment.

instrument-selected

Request has a selected payment instrument and is awaiting fulfillment.

partially-fulfilled

Request is partially paid out when availableAmount is less than amount.

fulfilled

Request is fully paid out when availableAmount reaches zero.

canceled

Request is canceled by merchant or customer.

selectPaymentInstrumentUrlstring(uri)read-only

URL for the customer to select a preferred payment instrument.

allocationsArray of objectsread-only

List of credit transactions that are allocated to reduce the available amount of a payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
cancellationReasonobject or null(PayoutRequestCancellation)read-only

Reason the payout request is canceled.

createdTimestring(date-time)(ServerTimestamp)read-only

Date and time when the payout request is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time when the payout request is updated.

_linksArray of objectsread-only

Related links.

Response
application/json
{ "id": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "currency": "USD", "amount": 0.1, "availableAmount": 0.1, "description": "string", "status": "pending", "selectPaymentInstrumentUrl": "http://example.com", "allocations": [ {} ], "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}", "cancellationReason": { "canceledBy": "merchant", "description": "string" }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ] }

Retrieve a payout request

Request

Retrieves a payout request with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

curl -i -X GET \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests/{id}' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

Payout request retrieved.

Bodyapplication/json
idstring<= 50 charactersread-only

Unique resource ID.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

availableAmountnumber(double)read-only

Available payout request amount that has not been allocated.

descriptionstring or null

Description of payout request.

statusstringread-only

Status of the request.

Enum ValueDescription
pending

Request is awaiting customer's selection of the payment instrument or fulfillment.

instrument-selected

Request has a selected payment instrument and is awaiting fulfillment.

partially-fulfilled

Request is partially paid out when availableAmount is less than amount.

fulfilled

Request is fully paid out when availableAmount reaches zero.

canceled

Request is canceled by merchant or customer.

selectPaymentInstrumentUrlstring(uri)read-only

URL for the customer to select a preferred payment instrument.

allocationsArray of objectsread-only

List of credit transactions that are allocated to reduce the available amount of a payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
cancellationReasonobject or null(PayoutRequestCancellation)read-only

Reason the payout request is canceled.

createdTimestring(date-time)(ServerTimestamp)read-only

Date and time when the payout request is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time when the payout request is updated.

_linksArray of objectsread-only

Related links.

Response
application/json
{ "id": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "currency": "USD", "amount": 0.1, "availableAmount": 0.1, "description": "string", "status": "pending", "selectPaymentInstrumentUrl": "http://example.com", "allocations": [ {} ], "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}", "cancellationReason": { "canceledBy": "merchant", "description": "string" }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ] }

Upsert a payout request

Request

Creates or updates (upserts) a payout request with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Bodyapplication/json
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

descriptionstring or null

Description of payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
curl -i -X PUT \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests/{id}' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG",
    "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF",
    "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N",
    "currency": "USD",
    "amount": 0.1,
    "description": "string",
    "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}"
  }'

Responses

Payout request updated.

Headers
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring<= 50 charactersread-only

Unique resource ID.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

availableAmountnumber(double)read-only

Available payout request amount that has not been allocated.

descriptionstring or null

Description of payout request.

statusstringread-only

Status of the request.

Enum ValueDescription
pending

Request is awaiting customer's selection of the payment instrument or fulfillment.

instrument-selected

Request has a selected payment instrument and is awaiting fulfillment.

partially-fulfilled

Request is partially paid out when availableAmount is less than amount.

fulfilled

Request is fully paid out when availableAmount reaches zero.

canceled

Request is canceled by merchant or customer.

selectPaymentInstrumentUrlstring(uri)read-only

URL for the customer to select a preferred payment instrument.

allocationsArray of objectsread-only

List of credit transactions that are allocated to reduce the available amount of a payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
cancellationReasonobject or null(PayoutRequestCancellation)read-only

Reason the payout request is canceled.

createdTimestring(date-time)(ServerTimestamp)read-only

Date and time when the payout request is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time when the payout request is updated.

_linksArray of objectsread-only

Related links.

Response
application/json
{ "id": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "currency": "USD", "amount": 0.1, "availableAmount": 0.1, "description": "string", "status": "pending", "selectPaymentInstrumentUrl": "http://example.com", "allocations": [ {} ], "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}", "cancellationReason": { "canceledBy": "merchant", "description": "string" }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ] }

Cancel a payout request

Request

Cancels a payout request with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

Bodyapplication/jsonrequired

Payout request resource.

canceledBystring

Specifies who initiated the cancellation.

Default "customer"
Enum"merchant""customer"
descriptionstring<= 255 characters

Description of the cancellation reason in free form.

curl -i -X POST \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests/{id}/cancel' \
  -H 'Content-Type: application/json' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE' \
  -d '{
    "canceledBy": "merchant",
    "description": "string"
  }'

Responses

Payout request canceled.

Headers
Locationstring(uri)

Location of the related resource.

Example: "https://api.rebilly.com/example"
X-RateLimit-Limitinteger

Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.

Example: 3600
X-RateLimit-Remaininginteger

Remaining number of rate limit tokens for this request within the rate limit period. For example, in the sandbox environment, rate limits for non-GET endpoints are set at 3000 requests per 10 minutes.

Example: 3600
Bodyapplication/json
idstring<= 50 charactersread-only

Unique resource ID.

Example: "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80"
websiteIdstring(WebsiteId)<= 50 charactersrequired
customerIdstring(CustomerId)<= 50 charactersrequired

ID of the customer who is requesting a payout.

paymentInstrumentIdstring or null<= 50 characters

ID of the requested payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
currencystring(CurrencyCode)= 3 charactersrequired

Currency of the payout.

amountnumber(double)required

Amount of the payout.

availableAmountnumber(double)read-only

Available payout request amount that has not been allocated.

descriptionstring or null

Description of payout request.

statusstringread-only

Status of the request.

Enum ValueDescription
pending

Request is awaiting customer's selection of the payment instrument or fulfillment.

instrument-selected

Request has a selected payment instrument and is awaiting fulfillment.

partially-fulfilled

Request is partially paid out when availableAmount is less than amount.

fulfilled

Request is fully paid out when availableAmount reaches zero.

canceled

Request is canceled by merchant or customer.

selectPaymentInstrumentUrlstring(uri)read-only

URL for the customer to select a preferred payment instrument.

allocationsArray of objectsread-only

List of credit transactions that are allocated to reduce the available amount of a payout request.

selectedPaymentInstrumentRedirectUrlstring(uri)

URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use {{id}} as a placeholder for the payout request ID.

Example: "https://example.com/payout-request-success?id={{id}}"
cancellationReasonobject or null(PayoutRequestCancellation)read-only

Reason the payout request is canceled.

createdTimestring(date-time)(ServerTimestamp)read-only

Date and time when the payout request is created.

updatedTimestring(date-time)(UpdatedTime)read-only

Date and time when the payout request is updated.

_linksArray of objectsread-only

Related links.

Response
application/json
{ "id": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "websiteId": "web_0YV7DE4Z26DQSA1AC92FBJ7SEG", "customerId": "cus_0YV7DDSDD1C8DA64KHH2W33CPF", "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "currency": "USD", "amount": 0.1, "availableAmount": 0.1, "description": "string", "status": "pending", "selectPaymentInstrumentUrl": "http://example.com", "allocations": [ {} ], "selectedPaymentInstrumentRedirectUrl": "https://example.com/payout-request-success?id={{id}}", "cancellationReason": { "canceledBy": "merchant", "description": "string" }, "createdTime": "2019-08-24T14:15:22Z", "updatedTime": "2019-08-24T14:15:22Z", "_links": [ {} ] }

Retrieve associated payment instruments

Request

Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID.

Path
idstring<= 50 characters^[@~\-\.\w]+$required

ID of the resource.

curl -i -X GET \
  'https://www.rebilly.com/_mock/docs/dev-docs/api/payout-requests/{id}/payment-instruments' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'

Responses

Payout request associated payment instruments retrieved.

Bodyapplication/jsonArray [
paymentInstrumentIdstring<= 50 characters

ID of the payment instrument to offer for the payout.

Example: "inst_0YVB8KPKNXCBR9EDX7JHSED75N"
gatewayNamestring or null

Name of the payment gateway and payment instrument to use for the payout. This field is empty if the requested payment instrument has not been used yet.

exposureAmountnumber(double)

Total amount of sales minus credit for the specified gateway and instrument.

previousAllocatedAmountnumber(double)

Total amount of allocated credit for the payout request for the specified gateway and instrument.

lastPaymentTimestring(date-time)

Date and time when the last payment is created for the gateway and the payment instrument.

lastPayoutTimestring(date-time)

Date and time when the last payout is created for the gateway and the payment instrument.

]
Response
application/json
[ { "paymentInstrumentId": "inst_0YVB8KPKNXCBR9EDX7JHSED75N", "gatewayName": "A1Gateway", "exposureAmount": 0.1, "previousAllocatedAmount": 0.1, "lastPaymentTime": "2019-08-24T14:15:22Z", "lastPayoutTime": "2019-08-24T14:15:22Z" } ]

Customer redirected offsiteWebhook

Request

Bodyapplication/json

Customer redirect webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

redirectUrlstring(url)

URL customer redirected to.

ipAddressstring

Customer's IP address.

httpHeadersobject

Customer's browser HTTP headers.

Example: {"Content-Type":"application/json","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}
eventTypestring

Rebilly webhooks event type.

Enum"customer-redirected-offsite""customer-returned"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "redirectUrl": "string", "ipAddress": "string", "httpHeaders": { "Content-Type": "application/json", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }, "eventType": "customer-redirected-offsite", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Customer returnedWebhook

Request

Bodyapplication/json

Customer redirect webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

redirectUrlstring(url)

URL customer redirected to.

ipAddressstring

Customer's IP address.

httpHeadersobject

Customer's browser HTTP headers.

Example: {"Content-Type":"application/json","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}
eventTypestring

Rebilly webhooks event type.

Enum"customer-redirected-offsite""customer-returned"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "redirectUrl": "string", "ipAddress": "string", "httpHeaders": { "Content-Type": "application/json", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }, "eventType": "customer-redirected-offsite", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Gateway account requestedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

NSF response receivedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Offsite payment completedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Payout request canceledWebhook

Request

Bodyapplication/json

Payout request webhook request body resource.

payoutRequestIdstring

ID of the payout request.

eventTypestring

Type of webhook event.

Enum"payout-request-created""payout-request-modified""payout-request-canceled"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "payoutRequestId": "string", "eventType": "payout-request-created", "_embedded": { "payoutRequest": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Payout request createdWebhook

Request

Bodyapplication/json

Payout request webhook request body resource.

payoutRequestIdstring

ID of the payout request.

eventTypestring

Type of webhook event.

Enum"payout-request-created""payout-request-modified""payout-request-canceled"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "payoutRequestId": "string", "eventType": "payout-request-created", "_embedded": { "payoutRequest": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Payout request modifiedWebhook

Request

Bodyapplication/json

Payout request webhook request body resource.

payoutRequestIdstring

ID of the payout request.

eventTypestring

Type of webhook event.

Enum"payout-request-created""payout-request-modified""payout-request-canceled"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "payoutRequestId": "string", "eventType": "payout-request-created", "_embedded": { "payoutRequest": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Risk score changedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction amount discrepancy foundWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction declinedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction discrepancy foundWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction process requestedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction processedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Transaction timeout resolvedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Waiting gateway transaction completedWebhook

Request

Bodyapplication/json

Transaction webhook request body resource.

transactionIdstring(TransactionId)<= 50 characters

ID of the transaction.

eventTypestring

Type of webhook event.

Enum"gateway-account-requested""nsf-response-received""offsite-payment-completed""risk-score-changed""transaction-amount-discrepancy-found""transaction-declined""transaction-discrepancy-found""transaction-process-requested""transaction-processed""transaction-timeout-resolved"
_embeddedobject

Embedded objects.

_linksArray of objects

Related links.

application/json
{ "transactionId": "txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "eventType": "gateway-account-requested", "_embedded": { "transaction": {} }, "_links": [ {} ] }

Responses

Returns any 2xx status to indicate that data is received.

Disputes

Use these operations to manage disputes. A dispute occurs when a customer contests a charge to their account. The dispute and related information is made available to the merchant by the bank or credit card company. The merchant then has the option to represent the charge and win the case. This process is called dispute resolution. If the merchant is unable to represent the charge, the card issuer typically reverses the sale and adds fees on top of the charge. This process is called a chargeback.

OperationsWebhooks

Fees

Use fees to reconcile transactions with applicable fees and discount rates. Fees are not applied directly to transaction amounts, they do not modify the transaction amount. Fees help to describe each part of the transaction amount.

Important: These operations are experimental and may change.

Operations

Transactions timeline

Use transaction timelines to maintain an audit trail of changes and activity for each transaction.

Operations

Orders

Use these operations to manage customer orders. An order is a customer's request to purchase items. It can contain subscription and one-time sale items. When an order contains one or more subscription items, it is a subscription order.

An order generates an invoice. A subscription order generates an invoice for each service period. For more information, see Orders.

Operations

Invoices

Use invoices to bill for the goods or services that you provide. If your invoice includes subscription items, it also includes the corresponding service periods and prices.

Operations

Usage

Use these operations to manage the product usage of a subscription item for metered billing purposes.

Use metered billing when product quantity is unknown to the customer at the moment of creating a subscription. Metered billing is based on reported usage records. Every reported usage updates the quantity of an upcoming invoice item for a specified subscription and a plan. To create a metered billing plan, see Plans.

Operations

Credit memos

Use credit memos to provide a customer with store credit. A common use case for using a credit memo is to provide a customer with store credit, rather than a refund, if the customer pays more than they owe or returns a product. For information on the credit memo resource, see Resources.

OperationsWebhooks

Plans

Use pricing plans to describe how the customer must pay for products.

Rebilly provides the following plan types:

  • Trial only: Use this plan to create and offer a free or discounted trial period for your product. For example, a free 2 week trial of an internet service. After the trial, the customer can choose to sign up for a paid subscription, or stop using the service.
  • Recurring: Use this plan to create and offer a subscription for your product. For example, a monthly subscription to an internet service that is charged at 20 USD per month.
  • One time sale: Use this plan to create and offer a one-off sale for your products. For example, a one time purchase of two bags of coffee.

For information on the plans resource, see Plans.

For information on plan pricing, see Pricing formulas.

Operations

Products

Use products to describe the goods and services that your business sells. A product also describes sales items on invoices and receipts. Product pricing is defined in plans. A product may have one or many plans.

For information on the product resource, see Product.

Operations

Coupons

Use coupons to reward customers, generate sales, or to test new pricing strategies. Coupons enable you to apply different types of discounts to invoices, subscriptions, and pricing plans.

Redeemed coupons are attached to a customer's account. Depending on the coupon restrictions, the redeemed coupons are then applied from the customer's account to subsequent invoices or subscriptions. Redeemed coupons can only be applied to invoices of the same currency.

Once a coupon is redeemed it cannot be modified. You may deactivate a coupon or create a new coupon, but you cannot reuse the same coupon code. If you have a use case where you must reuse the same code, contact Rebilly.

Operations

Quotes

Use quote operations to create and manage quotations. Quotations describe the cost of goods or services to potential customers before they commit to a purchase. A quote contains an initial invoice preview that can be accepted to become an order.

A quote can contain subscription and one-time sale items. When a quote contains one or more subscription items, it is a subscription order quote.

Operations

Quotes timeline

Use quote timelines to maintain an audit trail of changes and activity for each quote.

Operations

Shipping rates

Use these operations to manage shipping rates. A shipping rate contains a filter and a pricing for a specific shipping destination.

Operations

Orders timeline

Use order timelines to maintain an audit trail of changes and activity for each order.

Operations

Invoices timeline

Use invoice timelines to maintain an audit trail of changes and activity for each invoice.

Operations

Credit memos timeline

Use credit memo timelines to maintain an audit trail of changes and activity for each credit memo. Credit memos are a means of providing a customer with store credit.

Operations

Blocklists

Use blocklists to prevent fraud and criminal activity.

Blocklists are lists of customer attribute values that are blocked from buying from you. For example, if a customer attempts to make a purchase from you with a credit card that is in a blocklist, the transaction is blocked and is not processed.

Before a new transaction is processed in Rebilly, blocklists are examined to check for attributes related to the entity. If a match is detected, the operation is aborted. A blocklist that expires after a period of time is called a greylist.

Operations

Allowlists

Use allowlists to exclude specific customer attribute data from risk score checks.

Allowlists are lists of data that are excluded from risk score checks. Allowlists prevent specific data from being added to a blocklist record when a risk score threshold reached.

Operations

KYC documents

Use Know Your Customer (KYC) documents to verify your customers identity. The KYC document operations generate a signed link to the Rebilly KYC document gatherer.

Document types:

  • identity-proof: Validates a customer's identity.
  • address-proof: Validates a customer's address.
  • purchase-proof: Validates a customer's purchase.
  • funds-proof: Validates that a customer has funds.
  • credit-file-proof: Verifies that there is an existing credit file with two sources that match the customer's name, DOB, and address.

Rebilly parses and analyzes the documents and accepts or rejects them according to a configurable scoring algorithm. When all document types in a KYC request are accepted, the status is fulfilled, and the KYC request fulfilled webhook is sent.

Operations

AML

Use Anti-Money Laundering (AML) operations to screen customers and help prevent your business from becoming directly or indirectly involved in criminal activity.

Use AML operations during customer creation, and some transaction processing, to help determine if a potential customer (lead), or customer, has political or economic sanctions against them.

AML operations search the following for screening purposes: Politically Exposed Persons (PEPs) lists, sanction lists, and adverse media lists.

OperationsWebhooks

Risk score

Use risk score operations to configure blocklists based on transaction risk factors.

Operations

Custom fields

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. Depending on the resource on which the custom field is added, it may be available in the Rebilly UI.

Example: A custom field called preferredCommunicationChannel is added to the customer resource. It has two allowed values, which are 'email' and 'phone'.

{
  "customFields": {
      "preferredCommunicationChannel": "email"
  }
}

For detailed information on Rebilly resources, see Resources.

Operations

Files

Use the file entity to store files and related metadata. Files can be sorted by size, MIME-type, user-defined tags, and description.

The following methods are available to upload files: multipart/form-data encoded form, RAW POST — by sending the file contents as the POST body, and fetching from URL — by providing the file URL using the 'url' parameter.

Use the attachments entity to link a file to one or multiple objects, such as: customer, dispute, transaction, order, plan, product, invoice, or timeline comment. Attachments enable you to quickly find and use files related to specific entities.

Operations