![4 Link Calculator v1.1 serial key or number](http://manicapital.com/web/2014/12/dowloads.png?w=300&h=141)
4 Link Calculator v1.1 serial key or number
![4 Link Calculator v1.1 serial key or number 4 Link Calculator v1.1 serial key or number](https://1.bp.blogspot.com/-d3a9Z7b9ha4/WLJ1QXM5rNI/AAAAAAAACgM/mhZ155iaD6MBKcrrtRyQ1KphMaZE7RCrgCLcB/w1200-h630-p-k-no-nu/Calculator%2BWealth%2BVidya.jpg)
4 Link Calculator v1.1 serial key or number
RipEX Radio modem
Trade name – trade and marketing name of the product. This name is used for all products within the same product family.
Possible values: RipEX
Band – frequency band
Possible values:
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
(tuning range – MHz)
Var. – designation of product variant, if it is used. Generally, more variants can be used within one unit, i.e. more letters can be on this position. These variants can’t be ordered and included in the unit later on.
Possible values:
none
D – Separate connectors for RX and TX antennas, Part No. RipEX-HW-DUAL
G – Internal GPS module, Part No. RipEX-HW-GPS
N – Encryption features will never be possible, neither HW nor SW encryption
S – Up to 50 kHz channel spacing, Part No. RipEX-HWkHz (only versions before didn´t support var. ´S´)
P – Ingress Protection level IP51, Part No. RipEX-HW-IP51
SW keys – if unit is ordered with SW keys, all keys are specified in this bracket. SW key can be ordered independently for specific S/N anytime later on.
Possible values:
Router – enables Router mode. If not activated, only Bridge mode is available, Part No. RipEX-SW-ROUTER
Speed – enables the two highest speeds (D8PSK, 16DEQAM mod.) for 25 and 50 kHz channel, Part No. RipEX-SW-SPEED
COM2 – enables the second serial interface configurable as RS or RS, Part No. RipEX-SW-COM2
10W – enables RF output power 10 W for CPSK modulations, Part No. RipEX-SWW
Backup routes – enables Backup routes, Part No. RipEX-SW-BACKUP ROUTES
Master – enables all functionalities of all possible SW feature keys, Part No. RipEX-SW-MASTER
Ex – authorization for use RipEX in hazardous location Ex II 3G Ex ic IIC T4 Gc. Part No.: RipEX-Ex (note: Ex keys are available only for units produced after 1st of January )
Type – specific product type for which type approvals like CE, FCC etc. are issued
Possible values:
RipEX for Bands , (RipEX, RipEX in Code)
RipEX for Bands (RipEX in Code)
RipEX for Bands , , (RipEX, RipEX, RipEX in Code)
RipEX for Bands , , , (RipEX, RipEX, RipEX, RipEX in Code)
RipEX for Bands (RipEX in Code)
Code – part of order code which is printed on Product label on the housing (SW keys are not HW depend-ent and can be ordered later on, so they are not printed on Product label).
Note: Number in Type (e.g. RipEX) in Code is replaced by Band (e.g. RipEX, RipEX, RipEX, RipEX)
Order code – the complete product code, which is used on Quotations, Invoices, Delivery notes etc.
In order to find out the correct Order code, please use RACOM WebService.
Introduction
Welcome! Here at Xendit, our mission is to provide payments infrastructure that helps you succeed. We help with both the money in (accepting payments) and money out (disbursing payments). Use cases range from platform business to eCommerce, SaaS, and everything else in between.
The Xendit API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features and HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned by all API responses, including errors.
Learn our APIs with Postman
To make it easier to get familiar with our APIs, we've published a Postman Collection so that you can see examples of all of Xendit APIs in one place. See our Postman Guide to get started!
To successfully authenticate with Xendit's APIs, you must authenticate your secret API key using . You can obtain your API keys in Dashboard. For example if your API key is
Select authentication. Input secret API key in and leave the empty
Encode format above into format
Include encoded value in HTTP(s) header
Xendit API is organized around REST to make it cleaner and easier to understand. All our API responses return JSON. To let you explore our APIs, make sure that you have registered an account. You can obtain and manage your API keys in API Keys Settings. We provide you API keys for both the test and live environments.
To authenticate your account, you have to include your secret API key in the request which can be accessed in Xendit Dashboard. Here are the steps to authenticate your account:
- Generate secret API key
- Obtain your secret API key from Dashboard
- Select Basic Access Authentication or authentication
- format will be
- Input Secret API key as and leave the empty. Make sure to include at the end
- Encode the value above into Base64 format
- Include the base64 encoded into header
All the API requests should be made over HTTPS instead of HTTP (all calls made over plain HTTP will fail). All requests made in the test environment will never hit the banking networks and will not cost you anything. Your API keys should be kept private so do not share your secret API keys. Learn more about API key here
Xendit has official libraries for different programming languages and mobile platforms. We are continuously developing more libraries and plugins. If you have implemented your own library or an example that you would like to share, send us a link to your code and we'll be happy to add it to the list!
Currently, Xendit supports manicapital.com, PHP, Java, Go, and Python for server-side libraries and Android and iOS for client-side librariesmanicapital.com
Install via npm
See the source on Github
manicapital.com library is a server-side library that helps you to integrate Xendit easily using manicapital.com
List of Supported Products
- Credit/debit cards
- eWallets
- Cardless Credit
- Bank Transfer via Virtual Accounts
- Retail Outlets
- Invoices
- Recurring Payments
- Payouts
- Disbursements
- Batch Disbursements
Installation
You can install our manicapital.com library using npm or check out the source on Github
PHP
Download PHP package here
PHP library is a client that is created on top of PHP so it is easier for you to integrate with us to accept payments via our supported payment channels.
You can visit our PHP library in Packagist
There are two versions of Xendit PHP libraries that we support:
All new features will be released to the latest version (v2). Upgrade your library to enjoy the benefit of the latest version.List of Supported Products - Xendit PHP v2
- Credit/debit cards
- eWallets
- Cardless Credit
- Bank Transfer via Virtual Accounts
- Retail Outlets
- Invoices
- Recurring Payments
- Payouts
- Disbursements
- Batch Disbursements
List of Supported Products - Xendit PHP v1
- Credit/debit cards
- Bank Transfer via Virtual Accounts
- Invoices
- Disbursements
Installation and Upgrade Guide
Check out our Github source to learn on how to install or upgrade Xendit PHP library
Java
Install Xendit in your Java code
Maven
Gradle
Import Xendit Library
Java library is a server-side library that helps you to integrate Xendit easily using Java.
Xendit Java library supports Java version 7 and aboveList of Supported Products
- Credit/debit cards
- eWallets
- Cardless Credit
- Bank Transfer via Virtual Accounts
- Retail Outlets
- Invoices
- Recurring Payments
- Payouts
- Disbursements
- Batch Disbursements
Installation
Xendit Java library (Gradle and Maven) installation is easy and simple. For more detail about the steps, refer to the right section
- Add Xendit dependency in your Java code
- Import Xendit library
- Obtain your API keys in Dashboard to start using Xendit Java library APIs.
You can also learn more on our Github source for complete installation guide
Go
See the source on Github
Go library is a server-side library that helps you to integrate Xendit easily using Go programming language.
List of Supported Products
- Credit/debit cards
- eWallets
- Cardless Credit
- Bank Transfer via Virtual Accounts
- Retail Outlets
- Invoices
- Recurring Payments
- Payouts
- Disbursements
- Batch Disbursements
Installation
You can install our Go library by checking out our source on Github for complete installation guide
Python
Install via pip
See the source on Github
Python library is a server-side library that helps you to integrate Xendit easily using Python.
Xendit Python library supports Python version and aboveList of Supported Products
- Credit/debit cards
- eWallets
- Cardless Credit
- QR Codes
- Direct Debit
- Bank Transfer via Virtual Accounts
- Retail Outlets
- Invoices
- Recurring Payments
- Payouts
- Disbursements
- Batch Disbursements
Installation
You can install our Python library using pip or check out the source on Github
Android
Download Xendit Android SDK
Android SDK helps you to process digital payments using Xendit with features as follow:
- Tokenize credit/debit cards with single-use token
- Tokenize credit/debit cards with multiple-use token
- Authenticate credit/debit card transactions
iOS
Download Xendit iOS SDK
iOS SDK helps you to process digital payments using Xendit with features as follow:
- Tokenize credit/debit cards with single-use token
- Tokenize credit/debit cards with multiple-use token
- Authenticate credit/debit card transactions
Versioning Example
Xendit evolves APIs continuously to grow together with you. We always strive to make backward-compatible changes. When we introduce backward-incompatible changes, we release a new dated version to avoid breaking your code and you can upgrade to newer versions whenever you are ready.
To see what version you're running and upgrade to the latest one, visit your Dashboard. To test a specific API version, you can override your API version by attaching API-Version header in API requests
Header | Description |
---|---|
API-Version optional | Attach this parameter in the request to specify which API version you are going to request Format: . Example: Default value will follow your account API version settings |
Backward Compatibility
We consider the following changes to be backward compatible:
- Adding new API resources
- Adding new optional request parameters to existing API methods
- Adding new properties to existing API responses
- Changing the order of properties in existing API responses
- Changing the length or format of any object IDs
- Adding new error codes
- Adding new webhook event types
- Adding new properties to webhook payloads
Migration Guide
The following guide will help you to migrate from your current version to latest version safely
- Test new APis using explicit header in Test mode. Make sure you have handled new request,response, errors, and callback data correctly. Test scenarios can be found in Test Scenarios section
- When everything is working as expected in Test mode, you can switch your Test mode API version in Dashboard. This switches the version used by API calls that don't have the header and also switches the version to render objects sent to your callback URLs
- Repeat #1 and #2 respectively in Live mode
- When faced with any disruption during migration process, you can always switch back to previous versions
Changelog
eWallets
- Create OVO Payment will be processed asynchronously and callback will be sent after process has been completed
Credit Cards
- Create Refund will be processed synchronously
Your Xendit integration might have to deal with errors at some point when making API requests to Xendit. These errors fall into a few major categories:
- Content errors occur because the content in the API request was invalid in some way. They return an HTTP response with a error code. For example, the API servers might return a if an invalid API key was provided, or a if a required parameter was missing
- Network errors occur as a result of intermittent communication problems between client and server. They return low-level errors, like socket or timeout exceptions. For example, a client might time out while trying to read from Xendit's servers, or an API response might never be received because a connection terminates prematurely. Note that a network errors wouldn't necessarily have otherwise been a successful request it can also be another type of error that's been cloaked by an intermittent problem
- Server errors occur because of a problem on Xendit's servers. Server errors return an HTTP response with a error code. Xendit works to make these errors as rare as posslble, but integrations should be able to handle them when they do arise
The right approach and idempotency semantics to use for handling errors depend on the type of error being handled.
HTTP Status Code
Xendit uses conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the range indicate success. Codes in the range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc). Codes in the range indicate an error with Xendit's servers (these are rare).
Status Code | Description |
---|---|
- OK | Everything worked as expected |
- Bad Request | The request was unacceptable, often due to missing a required parameter |
- Unauthorized | No valid API key provided |
- Forbidden | The API key doesn't have permissions to perform the request |
- Not Found | The requested resources doesn't exist |
- Server Errors | Something went wrong on Xendit's end (These are rare) |
Error Code
Below are some of most common errors across all our endpoints. Specific errors are located under each endpoint.
Error Code | Description |
---|---|
API_VALIDATION_ERROR | Invalid request errors arise when your request has invalid parameters |
INVALID_API_KEY | No valid API key provided |
REQUEST_FORBIDDEN_ERROR | The API key doesn't have permissions to perform the request |
SERVER_ERROR | API errors cover any other type of problem (e.g. a temporary problem with Xendit's servers), and are extremely uncommon |
Error Handling
Safely retry requests with idempotency
A key part of web API design is the idea of idempotency, defined as being able to apply the same operation multiple times without changing the result beyond the first try. Because a certain amount of intermittent failure is to be expected, clients need a way of reconciling failed requests with a server, and idempotency provides a mechanism for that.
The Xendit API guarantees the idempotency of requests, so it's always safe to retry them. Including an idempotency key makes and request idempotent, which prompts the API to do the bookkeeping required to prevent duplicate operations. For example, if a request to create disbursements does not respond due to network connection error, you can retry the request with the same idempotency key to guarantee that no more than one disbursement is created.
Idempotency keys are sent in the header, and you should use them for all requests to Xendit's API whenever supported. A few common strategies for generating idempotency keys are:
- Use an algorithm that generates a token with good randomness, like UUID v4
- Derive the key from a user-attached object like the ID of a shopping cart. This provides a relatively easy way to protect against double submissions
A response that's being replayed from the server because it had already executed previously can be identified by the error code
Retrying requests using an idempotency key won't change the original result of a request that's completed execution, and is most useful for recovering from network errorsContent errors
Content errros are the result of the contents of an API request being invalid and return a error code. Integrations should correct the original request and try again. Depending of the type of user error, it may be possible to handle the problem programmatically.
For a operation using an idempotency key, as long as an API method began execution, Xendit's API servers will cache the results of the request regardless of what they were. A request that returns a will send back the same if followed by a new request with the same idempotency key. A fresh idempotency key should be generated when modifying the original request to get a successful result. The safest strategy where errors are concerned is to always generate a new idempotency key.
Network errors
Network errors are the result of connectivity problems between client and server and tend to manifest as low-level errors like socket or timeout exceptions.
This class of errors is where the value of idempotency keys and request retries is most obvious. When intermittent problems occur, clients are usually left in a state where they don't know whether or not the server received the request. To get a definitive answer, they should retry such requests with the same idempotency keys and the same parameters until they're able to receive a result from the server. Sending the same idempotency with different parameters will produce an error indicating that the new request didn't match the original.
Server errors
Server errors are the result of a server-side problem and return a error code. These errors are the most difficult to handle, so we try to ensure that they happen as infrequently as possible.
As with the errors, retrying them with the same idempotency key will usually produce the same result. The request can be retried with a new idempotency key, but we'd advice against it because it's possible for the original one to have produced side effects.
The result of a request should be treated as indeterminate. The exact nature of any retroactive changes in the system depend heavily on the type of request. For example, if creating a disbursement returns a error but we detect that the information has gone out to a payment network, we'll try to roll it forward and send callback after it has been completed. If not, we'll try to roll it back. However, ideal results under these circumstances are not guaranteed, and requests resulting in a error may proeduce user-visible side effects.
Treat requests that return errors as indeterminate as ideal results are not guaranteedIntegration that want to maximize robustness must configure callback handlers that are capable of receiving events that have never been seen in an API response.
Xendit uses callback to notify your application any time an event happens on your account. Set up callback for events that Xendit doesn't already notify you of, like when a disbursement has been completed, a Virtual Account has been created and paid, or your invoice has expired.
Setup
You need to provide an endpoint in your system to receive callback from us. The callback notification will be sent over POST request to your callback URL that you have set. Setup your callback URL in Callback settings. You can use a tool like ngrok to make your endpoint available for receiving callback during testing.
Delivery Attempts and Retries
Understand how to view delivery attempts and retry logic when callback events aren't acknowledged
View events
When viewing information about a specific event through the Dashboard's Callback tab, you can check how many times Xendit attempted to send an event to the endpoint. This shows the latest response from your endpoint, a list of all attempted callback, and the respective HTTP status codes Xendit received.
Retry logic
Xendit attempts to deliver your callback six times with exponential backoff between each interval and will stop retrying until we have received response from your server or there is still no response yet
Retry Number | Interval (relative to last retry) | Interval (relative to original attempt) |
---|---|---|
1 | 15m | 15m |
2 | 45m | 1h |
3 | 2h | 3h |
4 | 3h | 6h |
5 | 6h | 12h |
6 | 12h | 24h |
Receive callback statistics via email
You can also receive summary of your callback statistics (number of success and failed callback) via email every 6 hours. You can enable this feature in Email Recipient settings
Event Handling
Handling callback events correctly is crucial to making sure your integration's business logic works as expected
Acknowledge events immediately
If your callback script performs complex logic, or makes network calls, it's possible that the script would time out before Xendit sees its complete execution. Ideally, your callback handler code (acknowledging receipt of an event by returning a status code) is separate of any other logic you do for that event.
Handle duplicate events
Callback endpoints might occasionally receive the same event more than once. We advise you to guard against duplicated event receipts by making your event processing idempotent. One way of doing this is logging the events you've processed, and then not processing already-logged events.
Order of events
Xendit does not guarantee delivery of events in the order in which they are generated. Your endpoint should not expect delivery of these events in this order and should handle this accordingly. You can also use the API to fetch any missing objects.
Security
Keeping your endpoints secure is critical to protecting your customers' information. Xendit provides several ways for you to verify events are coming from Xendit in a secure manner.
Receive events with an HTTPS server
If you use an HTTPS URL for your callback endpoint, Xendit will validate that the connection to your server is secure before sending your callback data. For this to work, your server must be correctly configured to support HTTPS with a valid server certificate.
Verify events are sent from Xendit
Xendit can optionally sign the callback events it sends to your endpoints. We do so by including a token in each event's header. This allows you to verify that the events were sent by Xendit, not by a third party.
Header Parameter | Description |
---|---|
x-callback-token | Your Xendit unique callback token to verify the origin of the callback |
Before you can verify tokens, you need to retrieve your callback token from Dashboard's Callback settings. Each secret is unique to each environments.
Get Balance
Endpoint: Get Balance
Balance is like your wallet since it will tell you how much money is available to you on Xendit. You can retrieve it to see the current balance on your Xendit cash account. Your balance is debited on any money out transaction, e.g. when performing disbursements or Xendit fees are charged. Your balance is credited when money comes into your account, e.g. invoices are paid or you deposit funds.
Request Parameters
Use API key permission to perform this requestExample Get Balance Request
Get Balance allows you to retrieve the balance of your cash and pending balance. Some use cases include: deciding when you may need to withdraw funds, and determining if you have funds to disburse
Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Query Parameter | Type | Description |
---|---|---|
account_type optional default: | The selected balance type available values: , , |
Response Parameters
Example Get Balance Response
Parameter | Description |
---|---|
balance | The balance remaining in your cash account |
Get Payment Channels
Endpoint: Get Payment Channels API
Example Get Payment Channels
Request Parameters
Returns an array of payment channel objects. Use this to identify which payment channels have been enabled for your business.
Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The Sub-account user-id that you want to make this transaction for This header is only used if you have access to xenPlatform. See xenPlatform for more information. |
Response Parameters
Example Get Payment Channels Response
Parameter | Type | Description |
---|---|---|
business_id required | Your business ID | |
is_livemode required | When making the request with your live API key. when making the request with your test API key | |
channel_code required | Payment channel code | |
name required | Payment channel name | |
currency required | Processing currency of the payment channel. Based on ISO currency code. | |
channel_category required | Payment channel category.Available values: , , , | |
is_enabled required | When , an API request can be successfully made for the business with the payment channel. When , the API request will fail. You should activate the payment channel in the dashboard settings to make it successfully |
Create Token
Javascript Function: createToken
Tokenization is the process where card details (account number and expiration date) are securely collected on the client-side, so that sensitive card data is never passed through your systems. Tokens are then used to Charge Cards.
Example tokenData object
Example Tokenization Response
Tokens can be created for single or multiple use. If you plan to save a card for future use, set to true.
See our Tokenization Sample for an example implementation.
Single Use Tokens
For single-use tokens, authentication is performed by default, and so the field is also required. If optional authentication is enabled on your account, it can be bypassed by setting to false.
Multiple Use Tokens
When tokenizing a card for multi-use, the field is optional. If you want to use Authentication for a multi-use token, the field must be specified during Authentication. See Create Authentication for more details.
Request Parameters (Money-in write permission)
Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information xenPlatform Tokenization Sample |
Body Parameter | Type | Description |
---|---|---|
amount optional | The charge amount. Only required for single use tokens with bundled authentication. | |
card_number required | Card number | |
card_exp_month required | Card expiration month | |
card_exp_year required | Card expiration year | |
card_cvn optional | Card CVN/CVV code Optional but highly recommended. Required for cards issued in Europe. | |
is_multiple_use optional default: | Whether or not to save token for multiple use | |
should_authenticate optional default: | Whether or not to bundle authentication with tokenization. By default, authentication is required for all transactions. You can request to enable optional authentication via your Xendit Dashboard. | |
xenditResponseHandler required | The response handler function is called after tokenization is attempted, to receive errors and tokenization response |
Response Parameters
Parameter | Type | Description |
---|---|---|
id required | The token ID. This will be used later to Charge the funds from the credit card | |
authentication_id optional | Returned only if authentication was bundled with tokenization. manicapital.com bundles authentication with single-use token creation by default, but not for multiple-use token creation. | |
masked_card_number required | The first 6 digits and last 4 digits of the tokenized card. | |
status required | Tokenization status. See Tokenization Statuses | |
payer_authentication_url optional | Returned only if authentication is bundled with tokenization, and the status returned is . This field contains the URL to the page for users to authenticate themselves using 3DS. See Tokenization Statuses. | |
failure_reason optional | If the tokenization status is , this describes the reason for failure. See Tokenization Failure Reasons. |
Statuses
Status | Description |
---|---|
IN_REVIEW | Returned only if authentication is bundled with tokenization, and therefore the customer must authenticate their identity. Xendit provides a URL which you should navigate your users to for easily performing 3DS. |
VERIFIED | This means that a token was successfully created. If authentication was bundled with tokenization, it also means that the user has successfully authenticated their identity via 3DS. It is now safe to send the token to your backend for charging. |
FAILED | Returned only if authentication is bundled with tokenization, and authentication has failed. Will always return as the failure reason. The token will still be created and authentication can be attempted again using the created token. |
Failure Reasons
Failure Reason | Description |
---|---|
AUTHENTICATION_FAILED | This status means the customer tried to authenticate using 3DS but did not successfully complete the authentication. |
Error Codes
Error Code | Description |
---|---|
API_VALIDATION_ERROR | Inputs are failing validation. The errors field contains details about which fields are violating validation. |
INVALID_JSON_FORMAT | The request body is not valid JSON. |
ACCOUNT_NUMBER_INVALID_ERROR | Credit card number is invalid. |
VALIDATION_ERROR | Data was passed in an incorrect format. |
BRAND_NOT_SUPPORTED_ERROR | Card brand is not supported. Ask user to try a Visa/Mastercard. |
CREDIT_CARD_DATA_ERROR | Invalid data was sent to the credit card processor. |
AUTHENTICATION_REQUIRED_ERROR | A valid was not included in the request, and your account is not configured for optional authentication. Include a valid or contact us if you would like to enable optional authentication. |
REQUEST_FORBIDDEN_ERROR | API key in use does not have necessary permissions to perform the request. Please assign proper permissions for the key. Learn more here |
VERIFICATION_TIMEOUT_ERROR | The credit card network timed out when trying to tokenize the card. |
TEMPORARY_SERVICE_ERROR | There was a problem with the credit card network, which prevents tokenization. |
CONNECTION_ERROR | Error connecting to our server. Try again and if the error persists, try with another device/network. |
TOKENIZATION_ERROR | General error. Try again or try with a different card. |
Create Authentication
Authentication (3DS) by default is required prior to charging cards. If you'd like to skip authentication for optional or dynamic 3DS, please contact us so we can enable this feature for you.Javascript Function: createAuthentication
To authenticate a token, use the function in manicapital.com This function accepts an object and returns an which can be used to authenticate a charge. For more details on creating a charge, see Create Charge.
See our Authentication Sample for an example implementation.
Example authenticationData object
Example Authentication Response
Request Parameters
Use your Xendit Public API Key to perform this request.Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Body Parameter | Type | Description |
---|---|---|
amount required | Authentication amount | |
token_id required | Token to authenticate | |
xenditResponseHandler required | Response handler, called after authentication attempt to handle errors and response. |
Response Parameters
Parameter | Type | Description |
---|---|---|
id required | Authentication ID returned by Xendit, used when creating a Charge. If authentication status is , this will still be returned but authentication will need to be performed again. | |
status required | Authentication status. See Tokenization Statuses | |
payer_authentication_url optional | If status is , this contains the URL for authenticating users with 3DS | |
failure_reason optional | If status is , this describes the failure. See Tokenization Failure Reasons. |
Failure Reasons
Failure Reason | Description |
---|---|
AUTHENTICATION_FAILED | The customer tried to authenticate using 3DS but did not successfully complete the authentication. |
Create Authorization
Definition: Create authorization
Example Create Authorization Request
Example Create Authorization Response
You can do authorization using create charge endpoint. Just capture field as false, and you will receive an authorized charge response.
Example Zero Amount Authorization Request
Example Zero Amount Authorization Response
Zero Amount Authorization
To be able to do zero amount authorization, your account must have card processor that has zero amount authorization compatibility.You can also do zero amount authorization amount using create charge endpoint. Just put 0 for amount field, and you will receive and authorized charge response.
To be able to do zero amount authorization, your account must have card processor that has zero amount authorization compatibility.
Please contact us to set up zero amount compatible card processor for your account. You can always use development environment to try zero amount authorization feature.
Reverse Authorization
Use API key permission to perform this requestDefinition: Reversing Authorized Charge
Example Reverse Authorization
Example of request body
Example of Reverse Authorization Response
This API provides reversing charge when the charge has status and hasn't yet captured.
Request Parameters
Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The sub-account user-id that you want to make this transaction for. This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Body Parameter | Type | Description |
---|---|---|
external_id required | Reverse authorization reference to help you track your request |
Response Parameters
Parameter | Type | Description |
---|---|---|
status required | Status of the reverse authorization. See Reverse Authorization Statuses. | |
currency required | Currency of the charge that requested to be reversed. | |
credit_card_charge_id required | The ID of the charge that requested to be reversed. | |
business_id required | The ID of your business in Xendit. | |
external_id required | Unique Identifier for your Reversed Charge reference | |
amount required | The amount that requested to be reversed for this charge. | |
created required | An ISO timestamp that tracks when the reverse authorization was made. | |
id required | ID of the charge transaction in Xendit system that requested to be reversed. | |
failure_reason optional | If status is FAILED, this describes the failure. See Reverse Authorization Failure Reasons. |
Statuses
Recommendation | Description |
---|---|
SUCCEEDED | Reverse Authorization request is success |
FAILED | Reverse Authorization is failed with detailed failure reason |
Failure Reasons
Failure Reason | Description |
---|---|
REVERSE_AUTHORIZATION_REJECTED_BY_BANK | The authorization that you requested to be reversed is rejected by the bank. There's possibility that the authorization is no longer valid and the authorized amount is already reversed back automatically to the card holder's credit balance. |
PROCESSOR_ERROR | The reverse authorization failed because there's an integration issue between card processor and the bank. Contact us if you encounter this issue. |
Error Codes
Error Code | Description |
---|---|
API_VALIDATION_ERROR | Inputs are failing validation. The errors field contains details about which fields are violating validation. |
CHARGE_ALREADY_REVERSED_ERROR | Charge already reversed, therefore cannot be reversed |
CHARGE_ALREADY_CAPTURED_ERROR | Charge already captured, therefore cannot be reversed |
CHARGE_FAILED_ERROR | Charge is failed, therefore cannot be reversed |
REQUEST_FORBIDDEN_ERROR | API key in use does not have necessary permissions to perform the request. Please assign proper permissions for the key. Learn more here |
CREDIT_CARD_CHARGE_NOT_FOUND_ERROR | not found for this transaction. Please try with another valid charge ID |
INVALID_AMOUNT_FOR_REVERSE_AUTHORIZATION_ERROR | Invalid charge amount to be reversed. Please make sure that the authorized amount that you requested to be reversed is no 0. |
Create Charge
Definition: Create Charge
Example Charge Request
Once you have a token, that token can be used to charge a card.
When using a test API key, the card will not actually be charged. Use API key permission to perform this requestRequest Parameters
Header Parameter | Type | Description |
---|---|---|
for-user-idoptional | The sub-account user-id that you want to make this transaction for. |
HP
Type | Scientific |
---|---|
Introduced | |
Discontinued | |
Calculator | |
Entry mode | RPN |
Display type | Red LEDseven-segment display |
Display size | 15 digits (decimal point uses one digit), (±10±99) |
Programming | |
Memory register | Four-register operational stack with one memory register. |
Other | |
Power supply | Internal rechargeable battery or /VAC, 5W |
Weight | Calculator: 9oz (g), recharger: 5oz (g) |
Dimensions | Length: in (mm), width: in (81mm), height: in (18mm) – in (33mm) |
The HP was Hewlett-Packard's first pocket calculator and the world's first scientific pocket calculator:[1] a calculator with trigonometric and exponential functions. It was introduced in
History[edit]
In about HP co-founder Bill Hewlett challenged his co-workers to create a "shirt-pocket sized HP". At the time, slide rules were the only practical portable devices for performing trigonometric and exponential functions, as existing pocket calculators could only perform addition, subtraction, multiplication, and division. Introduced at $ (equivalent to $2, in ),[2] like HP's first scientific calculator, the desktop A, it used Reverse Polish Notation (RPN) rather than what came to be called "algebraic" entry. The "35" in the calculator's name came from the number of keys.
The original HP was available from to In HP announced the release of the "retro"-look HP 35s to commemorate the 35th anniversary of the launch of the original HP[3]
The HP was named an IEEE Milestone in [4]
Description[edit]
The calculator used a traditional floating decimal display for numbers that could be displayed in that format, but automatically switched to scientific notation for other numbers. The fifteen-digit LED display was capable of displaying a ten-digit mantissa plus its sign and a decimal point and a two-digit exponent plus its sign. The display used a unique form of multiplexing, illuminating a single LED segment at a time rather than a single LED digit, because HP research had shown that this method was perceived by the human eye as brighter for equivalent power. Light emitting diodes were relatively new at the time and were much dimmer than high efficiency diodes developed in subsequent decades.
The calculator used three "AA"-sized NiCd batteries assembled into a removable proprietary battery pack. Replacement battery packs are no longer available, leaving existing HP calculators to rely on AC power, or their users to rebuild the battery packs themselves using available cells. An external battery charger was available and the calculator could also run from the charger, with or without batteries installed.
Internally, the calculator was organized around a serial (one-bit) processor chipset made under contract by Mostek, processing bit floating-point numbers, representing digit BCD numbers.
HP functions | |
---|---|
Arithmetic | +, −, ×, ÷ |
Trigonometry | sin, arc sin; cos, arc cos; tan, arc tan (decimal degrees) |
Logarithms | log10x; logex, ex |
Other | 1/x, √x, xy, π |
The calculator had a four register stack (x, y, z and t), the 'enter' key pushed the displayed value (x) down the stack. Any binary operation popped the top two registers, and pushed the result. When the stack was popped the t register duplicated into the z register.
Descendants[edit]
The HP was the start of a family of related calculators with similar mechanical packaging:
- The HP added many more features, including the ability to control the output format (rather than the purely automatic format of the HP). It also contained an undocumented timer feature. The timer worked, but was not accurate enough to use as a stopwatch due to lack of a crystal oscillator.
- The HP added programmability, with program storage on magnetic cards.
- The HP, a less expensive follow-on to the HP, provided storage for smaller programs, but didn't provide any external storage. The timer that was already present on the HP was now crystal-controlled to achieve the needed accuracy and explicitly documented.
- The HP expanded on the programmability of the HP, and added fully merged keycodes.
- The HP and cheaper HP provided financial, rather than scientific functions, such as future value and net present value.
Follow-on calculators used varying mechanical packaging but most were operationally similar. The HP was a smaller, cheaper model of a programmable scientific calculator without magnetic card reader, with features much like the HP The HPC was a major advance in programmability and capacity, and offered CMOS memory so that programs were not lost when the calculator was switched off. It was the first calculator to offer alphanumeric capabilities for both the display and the keyboard. Four external ports below the display area allowed memory expansion (RAM modules), loading of additional programs (ROM modules) and interfacing a wide variety of peripherals including HP-IL ("HP Interface Loop"), a scaled-down version of the HPIB/GPIB/IEEE instrument bus. The later HPC and HPS added much more memory and a substantially different, more powerful programming metaphor.
Calculator trivia[edit]
- The HP was inches (mm) long and inches (81mm) wide, said to have been designed to fit into one of William Hewlett's shirt pockets.
- Was the first scientific calculator to fly in space in [5]
- HP calculators were used on the US space station, Skylab, between May and February [6]
- Is the first pocket calculator with a numeric range that covered decades (more precise , ±10±99).[5]
- The LED display power requirement was responsible for the HP's short battery life between charges about three hours. To extend operating time and avoid wearing out the on/off slide switch, users would press the decimal point key to force the display to illuminate just a single LED junction.
- The HP calculated arithmetic, logarithmic, and trigonometric functions but the complete implementation used only carefully chosen instructions ( bits).
- One high quality feature of the HP was its use of double-injected keys. Rather than printing the function on the key surface where it could wear off over time and use as with cheaper calculators, the keys were constructed with two colors of plastic, providing durable key top labels for the labeled keys.
- Introduction of the HP and similar scientific calculators by Texas Instruments soon thereafter signaled the demise of the slide rule among science and engineering students. Slide rule holsters rapidly gave way to "electronic slide rule" holsters, and colleges began to drop slide-rule classes from their curricula.
- , HP calculators were sold in the first year, and over , by the time it was discontinued in —3½ years after its introduction.[7]
- In HP introduced a revised HP 35s calculator in memory of the original.
- An emulation of the HP is available for the Apple iPhone and iPad.
See also[edit]
References[edit]
External links[edit]
What’s New in the 4 Link Calculator v1.1 serial key or number?
Screen Shot
![](http://manicapital.com/web/wp-content/uploads/2020/09/MiniTool-Power-Data-Recovery-8.8-Crack-Plus-Serial-Key-2020-Torrent-1-1.png)
System Requirements for 4 Link Calculator v1.1 serial key or number
- First, download the 4 Link Calculator v1.1 serial key or number
-
You can download its setup from given links: