- Create a transaction
Creates a transaction of type sale, authorize or setup.
Use this operation for the following transactions.
In this transaction, you send a request and inspect the result of the response for approved or declined.
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.
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 Embedded resources.
Transaction resource.
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.
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.
ID of the website. A website is where an organization obtains a customer. For more information, see Obtain an organization ID and website ID.
ID of the customer resource.
Payment instruction for the purchase. If this value is not supplied, the customer's default payment instrument is used.
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.
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.
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.
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.
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.
{ "foo": "bar" }
- Mock serverhttps://www.rebilly.com/_mock/catalog/all/transactions
- Sandbox serverhttps://api-sandbox.rebilly.com/organizations/{organizationId}/transactions
- Live serverhttps://api.rebilly.com/organizations/{organizationId}/transactions
- SecretApiKey
- JWT
- ApplicationJWT
curl -i -X POST \
'https://www.rebilly.com/_mock/catalog/all/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": "1-512-777-0269",
"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"
}'Transaction created.
Total number of rate limit tokens for this request within a rate limit period. For more information, see Rate limits.
ID of the transaction.
ID of the website. A website is where an organization obtains a customer. For more information, see Obtain an organization ID and website ID.
ID of the customer resource.
Type of transaction.
Status of the transaction.
Result of the transaction.
Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
Currency code in ISO 4217 format.
Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
Currency code in ISO 4217 format.
ID of the parent transaction.
Subscription IDs of invoices that are related to the transaction.
Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
Authentication object. For more information, see 3D Secure (3DS).
URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
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.
{ "foo": "bar" }
Date and time when the transaction is processed.
Date and time when the resource is created. This value is set automatically when the resource is created.
Date and time when the resource is updated. This value is set automatically when the resource is updated.
ID of the gateway account that processed the transaction.
ID of the gateway transaction.
Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is null.
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.
Transaction reference data.
{ "gatewayTransactionId": "GAT123" }
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.
Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is null.
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.
Date and time when the dispute is created. If the transaction is not disputed, this value is null.
Status of the dispute.
Specifies if the transaction is updated due to a discrepancy with its source of truth.
Transaction amount converted to the report currency of the organization.
Currency code in ISO 4217 format.
Date and time when the transaction is settled by the banking institution.
Date and time of the most recent discrepancy on the transaction.
Unique organization identifier. An organization is an entity that represents a company. For more information, see Obtain an organization ID.
ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
Payment method.
Note: Use
paymentInstrument.methodinstead.
{ "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": "unprocessed", "isForceDcc": true }, "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", "transferId": "tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0", "payoutRequestId": "pout_req_0YVDMDE2BMC6KBB5MX76RF6T80", "_links": [ { … } ], "_embedded": { "parentTransaction": {}, "childTransactions": [], "gatewayAccount": {}, "customer": {}, "leadSource": {}, "website": {}, "invoices": [], "organization": {}, "dispute": {}, "paymentCard": {}, "bankAccount": {} } }