Takbull API

Base URL: https://api.takbull.co.il  |  Postman: postman.com/pawow2/workspace/takbull

🔑 Authentication

Every request must include API_Key and API_Secret in the HTTP headers. Contact Takbull support to obtain sandbox credentials at app.takbull.co.il.

Example cURL
curl --location 'https://api.takbull.co.il/api/ExtranalAPI/GetTakbullPaymentPageRedirectUrl' \ --header 'Content-Type: application/json' \ --header 'API_Secret: 8e2e4556-7d59-4476-833c-471f4bf6a605' \ --header 'API_Key: 5c2a493c-1a92-4222-9a4d-b50340757cf8'

🔄 Redirect / iFrame Flow

Supports: Credit card form · Token · Subscription
Flow
  1. Send order details → receive a unique order ID (uniqId)
  2. Redirect user or open an iFrame at
    https://api.takbull.co.il/PaymentGateway?orderUniqId={uniqId}
  3. On payment submit, customer is redirected to your RedirectAddress
  4. Provide a IPNAddress callback that listens for payment notifications
  5. On IPN receipt, call the Validation API to confirm order/transaction/invoice data
Post-process options
PostProcessMethodBehaviour
0Redirect to RedirectAddress
1Window message event (for iFrame / SPA)
POST

Get Payment Page Redirect URL

https://api.takbull.co.il/api/ExtranalAPI/GetTakbullPaymentPageRedirectUrl
Minimal request body
{
  "order_reference": "A11A234",
  "OrderTotalSum": 150.77,
  "RedirectAddress": "https://someurl.com/processSuccess?ordeid=1da23a"
}
Response
{
  "responseCode": 0,
  "uniqId": "89fd6612-2c4b-4a7b-91a3-dd9bdf0ee26a"
}
Order Parameters
ParameterTypeDescription
order_referenceStringYour system order ID
IPNAddressStringIPN callback URL
DisplayTypeStringiframe or redirect
PostProcessMethodString0=redirect · 1=window message
IsMobileBooleanSet true for mobile redirect
CancelReturnAddressStringURL on order cancel
RedirectAddressStringURL on payment success
CustomerFullNameString
CustomerPhoneNumberString
CustomerObjectSee Customer table below
CityString
CountryString
DealTypeNumber1=Regular · 2=Payments · 4=Recurring · 6=J2/Token · 7=Suspended
PaymentMethodTypeNumber3=Credit card (default) · 21=Bit
RecuringDueDateDateSubscription pay date
RecuringIntervalNumber1=Daily · 2=Weekly · 3=Monthly · 4=Annual · 5=EachMonth
IntervalNumberNumber of intervals (charge every N days/months)
InitialAmountNumberAmount charged on subscription creation
InitialChargeDescroptionStringInvoice label for initial charge
FirstPaymentamountNumberOverride first payment when DealType=2
CreateDocumentBooleanCreate invoice true/false
DocumentTypeNumber80=הצעת מחיר · 81=חשבון עסקה · 82=הודעת חיוב · 100=הזמנה · 200=תעודת משלוח · 300=חשבונית עסקה · 305=חשבונית מס · 320=חשבונית מס קבלה · 330=חשבונית מס זיכוי · 355=חשבונית מס זיכוי והחזר כספים · 400=קבלה · 401=זיכוי קבלה · 405=קבלה תרומה · 406=זיכוי קבלה תרומה
LanguageStringen / he / fr
CurrencyStringUSD / ILS / EUR
NumberOfPaymentsNumberNumber of installments
MinNumberOfPaymentsNumber
MaxNumberOfPaymentsNumber
OrderTotalSumNumberFinal amount to charge
OrderTaxAmountNumber
TaxtableBoolean
DiscountTypeNumber0=None · 1=Fixed · 2=Percentage
DiscountNumber
ProductsArrayRequired for invoice creation — see Products table
ShippingAmountNumber
ShippingAddress1String
ShippingAddress2String
ShippingZipCodeString
ShippingCityString
ShippingCountryString
Customer Object
ParameterType
IdentityNumberString
CustomerFullNameString
EmailString
PhoneNumberString
AddressObject — see Address table
Address Object
ParameterType
Address1String
Address2String
CityString
CountryString
ZipString
Product Object
ParameterTypeDescription
SKUString
ProductNameString
DescriptionString
PriceNumbere.g. 15.90
TaxAmountNumbere.g. 17.0
CurrencyCodeString
DiscountNumber
DiscountTypeNumber0=None · 1=Fixed · 2=Percentage
OpenSumBoolean
QuantityNumber
MinQuantityNumber
MaxQuantityNumber
QuantityIntervalNumber
Response Fields
FieldTypeDescription
responseCodeNumber0 = Success, otherwise fail
uniqIdGUIDUse for the payment gateway redirect
descriptionStringError description if failed
Next step — open payment gateway
GET   https://api.takbull.co.il/PaymentGateway?orderUniqId={uniqId}
Success redirect URL example
http://yourdomain.com?order_reference=613&ordernumber=12741 &uniqId=6e1a79fd-deb9-4281-ad1d-0f10fcb2d4ac &invoiceUniqId=e2252943-295f-4a64-bcc0-b9fe7a76d17a &statusCode=0 &token=RUF2VWpISFFjVDRROG9rcERQaUJwdz09 &Last4Digits=0000&TokenExpirationMonth=04&TokenExpirationYear=25

statusCode=0 means success. On failure, statusDescription contains the reason.

Bit Payment process (PaymentMethodType=21)

To charge with Bit, send PaymentMethodType=21 in the create-order request.

  1. Detect whether the customer is browsing from a mobile device. If so, send IsMobile=true in the request. This tells the gateway to return a deep link that can open the Bit application directly.
  2. In the response you will receive a url parameter. This is the link that opens the Bit application.
  3. Navigate the customer to that URL — for example window.open(url) (or set window.location.href = url) — so the Bit app is launched to complete the payment.
FieldTypeDescription
IsMobileBooleanRequest field. Set true when the client accesses from a mobile device
urlStringResponse field. URL to open the Bit application — navigate to it via window.open(url)
Bit redirect JS example
// Detect mobile client var isMobile = /Android|iPhone|iPad|iPod|Opera Mini|IEMobile|Mobile/i.test(navigator.userAgent); // Include IsMobile in the create-order request payload payload.IsMobile = isMobile; // After receiving the create-order response, open the Bit application if (response.url) { window.open(response.url); // or: window.location.href = response.url; }
Window message event payload (PostProcessMethod=1) for iframe
FieldTypeDescription
InternalCodeNumber0=Success
InternalDescriptionStringError description
transactionInternalIdStringe.g. 000125685
uniqIdStringOrder unique ID in Takbull
Listening for the iframe message JS Example(PostProcessMethod=1)

On init you receive a message from the iframe containing the height of the iframe so you can adjust the iframe height accordingly.

// var pmpro_require_billing; var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; // Listen for a message from the iframe. eventer(messageEvent, function (e) { if (isNaN(parseInt(e.data))) { form = jQuery('#add_payment_method'); console.log(e.data + ' msg: ' + e.message); switch (event.data.message) { case 'paymentreplay': let resp = event.data.value if (resp && !isNaN(resp.InternalCode)) { if (resp.InternalCode != 0) { alert(resp.InternalDescription); } else { form.append('<input type="hidden" name="payment_intent_id" value="' + resp.transactionInternalId + '" />'); form.append('<input type="hidden" name="setup_intent_id" value="' + resp.transactionInternalId + '" />'); form.append('<input type="hidden" name="uniqId" value="' + resp.uniqId + '" />'); form.append('<input type="hidden" name="takbull_token" value="' + resp.CreditCard.CardExternalToken + '" />'); form.append('<input type="hidden" name="last4Digits" value="' + resp.CreditCard.Last4Digits + '"/>'); form.append('<input type="hidden" name="ExpirationMonth" value="' + ('0' + resp.CreditCard.CardTokenExpirationMonth).slice(-2) + '"/>'); form.append('<input type="hidden" name="ExpirationYear" value="' + resp.CreditCard.CardTokenExpirationYear + '"/>'); form.get(0).submit(); } } } return; } document.getElementById('wc_takbull_iframe').style.height = e.data + 50 + 'px'; }, false);
GET

Get Transaction

https://api.takbull.co.il/api/ExtranalAPI/GetTransaction?transactionInternalNumber={number}
Response
{
  "id": 3067,
  "transactionId": "000000164",
  "tranProviderId": "82965",
  "amount": 210.10,
  "transactionType": 10,
  "currency": "ILS",
  "paymentMethod": 3,
  "numberOfPayments": 1,
  "cardToken": "xxxxxxxxxxx",
  "cardTokenExpirationMonth": 3,
  "cardTokenExpirationYear": 25,
  "last4DigitsCardNumber": "0000",
  "dealType": 1,
  "clearer": "LMI",
  "cardCompanyTtype": "CAL",
  "cardtype": "VI",
  "status": 1,
  "statusCode": 0,
  "transactionDate": "2023-05-20T23:42:25.9201733",
  "customerFullName": "test",
  "isDocumentCreated": true,
  "invoiceId": 4158,
  "invoiceUniqId": "6fcab03f-39de-45df-9fed-80784e1ab9fd",
  "documentNumber": 40101
}
Enum field values

Several response fields are returned as numeric codes. Use the tables below to interpret them.

transactionType
ValueDescription
10Charge (חיוב)
20Refund (זיכוי)
30Charge Back / cancellation (ביטול עסקה)
60Token / J2
70Suspended (מושהה)
paymentMethod
ValueDescription
1Cash (מזומן)
3Credit Card (כרטיס אשראי)
11PayPal
21Bit
32Apple Pay
33Google Pay
dealType
ValueDescription
1Regular (רגיל)
2Payments / installments (תשלומים)
4Recurring / standing order (הוראת קבע)
6Token / J2
7Suspended charge (חיוב מושהה)
status
ValueDescription
1Approved
2Declined
3PARTIALLY_REFUNDED
4PENDING
5REFUNDED
6FAILED
statusCode=0 indicates a successful transaction. Any other value indicates an error.
POST

Order Validation

https://api.takbull.co.il/api/ExtranalAPI/ValidateNotification

Double-check order status after IPN receipt.

Request body
{ "uniqId": "89fd6612-2c4b-4a7b-91a3-dd9bdf0ee26a" }
Response
{
  "orderId": 0,
  "internalCode": 1400101,
  "internalDescription": "INVALID",
  "providerCode": 0,
  "doNotRetry": false,
  "isSubscriptionPayment": false,
  "saveToken": false,
  "documentId": 0,
  "amount": 0.0,
  "dealType": 0,
  "orderStatus": 0,
  "tranSactionStatus": 0
}
GET

IPN — Instant Payment Notification

IPN is the trusted server-to-server callback that Takbull sends to the IPNAddress you configured for the order. It is used to notify your system when the payment status changes, even if the customer closes the browser or the redirect page is not reached.

In practice, the redirect URL tells the user that they are returning to your site, but the IPN is the reliable source of the final payment result. Do not treat the redirect as the only confirmation signal.

Typical IPN payload
https://yourdomain.com?uniqId=00a3f733-8af1-479b-92bc-242f3add650f &order_reference=91743 &statusCode=0 &statusDescription=Success &takbullAction=Charge &transactionInternalNumber=000001003
What to do when the IPN arrives
  • Verify the callback is for the expected order using uniqId or order_reference.
  • Check statusCode: 0 means success; any other value means an error or pending state.
  • Call ValidateNotification with the same uniqId to fetch the latest and authoritative order/payment state.
  • Make your handler idempotent so the same IPN is not processed twice.
IPN is asynchronous and may arrive before or after the browser redirect. For production logic, always use the IPN as the final payment signal and re-validate with ValidateNotification before updating the order or issuing goods/services.
POST

Charge Token

https://api.takbull.co.il/api/ExtranalAPI/ChargeToken

Charge a saved card token without showing the payment form.

Request body
{
  "order_reference": 219,
  "IPNAddress": "https://yourdomain.com/ipn",
  "RedirectAddress": "https://yourdomain.com/thank-you",
  "CancelReturnAddress": "https://yourdomain.com/cart",
  "Products": [
    {
      "SKU": "22",
      "Description": "Polo",
      "Price": "20.00",
      "Quantity": 1,
      "TaxAmount": "0.00",
      "IsTaxteble": false,
      "Discount": "0.00"
    }
  ],
  "Currency": "USD",
  "CustomerFullName": "John Smith",
  "Customer": {
    "CustomerFullName": "John Smith",
    "Email": "john@example.com",
    "PhoneNumber": "1234567890",
    "Address": { "Address1": "123 Main St", "City": "New York", "Country": "US", "Zip": "10001" }
  },
  "OrderTotalSum": "74.00",
  "Language": "en",
  "CreateDocument": true,
  "MaxNumberOfPayments": 1,
  "CreditCard": {
    "CardExternalToken": "828e8373-76f0-4bad-b397-abcdd08a226a"
  }
}
Response
{
  "orderId": 0,
  "internalCode": 0,
  "internalDescription": "OK",
  "providerCode": 0,
  "doNotRetry": false,
  "orderStatus": 0,
  "tranSactionStatus": 0
}
POST

Invoice Creation

POST

Charge Token

https://api.takbull.co.il/api/ExtranalAPI/ChargeToken

Charge a saved card token without showing the payment form.

Request body
{
  "order_reference": 219,
  "IPNAddress": "https://yourdomain.com/ipn",
  "RedirectAddress": "https://yourdomain.com/thank-you",
  "CancelReturnAddress": "https://yourdomain.com/cart",
  "Products": [
    {
      "SKU": "22",
      "Description": "Polo",
      "Price": "20.00",
      "Quantity": 1,
      "TaxAmount": "0.00",
      "IsTaxteble": false,
      "Discount": "0.00"
    }
  ],
  "Currency": "USD",
  "CustomerFullName": "John Smith",
  "Customer": {
    "CustomerFullName": "John Smith",
    "Email": "john@example.com",
    "PhoneNumber": "1234567890",
    "Address": { "Address1": "123 Main St", "City": "New York", "Country": "US", "Zip": "10001" }
  },
  "OrderTotalSum": "74.00",
  "Language": "en",
  "CreateDocument": true,
  "MaxNumberOfPayments": 1,
  "CreditCard": {
    "CardExternalToken": "828e8373-76f0-4bad-b397-abcdd08a226a"
  }
}
Response
{
  "orderId": 0,
  "internalCode": 0,
  "internalDescription": "OK",
  "providerCode": 0,
  "doNotRetry": false,
  "orderStatus": 0,
  "tranSactionStatus": 0
}
POST

Invoice Creation

https://api.takbull.co.il/api/DocumentApi/Create
Invoice Parameters
ParameterTypeDescription
invoiceItemsArrayInvoice line items — see table below
customerVMObjectCustomer details
sendToCustomerBooleanSend invoice to customer email
totalTaxAmountNumber
taxtableBoolean
totalTaxFreeNumber
totalPriceWithTaxNumber
isItemIncludeTaxBoolean
currencyString
languageString
discountNumber
discountTypeNumber0=None · 1=Fixed · 2=Percentage
commentsString
documentTypeNumber320=חשבונית מס קבלה · 305=חשבונית מס · 300=חשבונית עסקה · 400=קבלה · 405=קבלה תרומה
isNegativeDocumentBooleanSet true for refund/credit note
totalSumPaidInCashNumber
totalSumPaidInCheckNumber
totalSumPaidInCreditcardNumber
totalSumPaidInWIreTransferNumber
cashesArray[{ description, amount }]
checksArray[{ checkNumber, checkDueDate, amount, bankNumber, bankBranch, accountNumber }]
wireTransfersArray[{ amount, bankNumber, bankBranch, accountNumber }]
customPaymentsArray[{ methodName, amount }]
Invoice Item Object
ParameterTypeDescription
DescriptionString
IsTaxtebleBoolean
UnitPriceNumbere.g. 15.90
TaxAmountNumbere.g. 17.0
CurrencyCodeString
DiscountNumber
DiscountTypeNumber0=None · 1=Fixed · 2=Percentage
QuantityNumber
Custom Payment Object
ParameterTypeRequiredDescription
methodNameStringNoPayment method display name
amountNumberYesPayment amount
creationDateDateTimeOffsetYesPayment creation date
currancyStringNoCurrency code
payerAccountNumberStringNoPayer account number
referanceIdStringNoExternal reference identifier
Customer Object
ParameterTypeDescription
customerFullNameStringCustomer full name
emailStringCustomer email address
phoneNumberStringCustomer phone number
identityNumberStringIsraeli ID / tax identity number
addressObjectCustomer address — see Address table below
Address Object
ParameterTypeDescription
address1StringStreet and house number
address2StringApartment / suite / additional address line
cityStringCity
countryStringCountry
zipCodeStringPostal/ZIP code
Request body example
{
  "invoiceItems": [
    {
      "rowId": 1,
      "description": "some product description",
      "isTaxteble": true,
      "unitPrice": 1000,
      "totalPrice": 1000,
      "quantity": 1
    }
  ],
  "customerVM": {
    "customerFullName": "Muhammad Waqas",
    "email": "muhammad@example.com",
    "phoneNumber": "+972501234567",
    "identityNumber": "123456789",
    "address": {
      "address1": "street 16",
      "address2": "Apartment 5",
      "city": "TLV",
      "country": "ISRAEL",
      "zipCode": "12345"
    }
  },
  "sendToCustomer": false,
  "documentDate": "Tue May 23 2023",
  "totalTaxAmount": 170,
  "taxtable": true,
  "totalTaxFree": 1000,
  "totalPriceWithTax": 1170,
  "isItemIncludeTax": true,
  "currency": "ILS",
  "language": "he",
  "documentType": 320,
  "totalSumPaidInCash": 500,
  "totalSumPaidInCheck": 670,
  "cashes": [{ "description": "מזומן", "amount": 500 }],
  "checks": [{ "checkDueDate": "Tue May 23 2023", "amount": 670 }],
  "wireTransfers": [],
  "customPayments": []
}
Response
{
  "responseCode": 0,
  "documentNumber": 45325,
  "isOk": true,
  "errorList": [],
  "documentVM": {
    "id": 287727,
    "documentNumber": 45325,
    "documentType": 320,
    "totalPriceWithTax": 1170.0,
    "currency": "ILS",
    "uniqId": "3ab63741-fe90-49b7-9934-50105676b0cd"
  }
}
GET

Cancel Subscription

https://api.takbull.co.il/api/ExtranalAPI/CancelSubscription?uniqId={uniqId}

Cancels a recurring payment subscription. The uniqId is the original order ID from the Get Redirect URL call.

POST

Refund / Cancel Transaction

https://api.takbull.co.il/api/ExtranalAPI/Refund
Parameters
ParameterTypeDescription
RefundTypeNumber1=Cancel deal only · 2=Cancel with document · 3=Partial refund · 4=Partial refund with document
RefundAmountNumberRequired for partial refund (e.g. 115.5)
TransactionInternalNumberStringe.g. 000125685
CommentsStringOptional reason
Request body
{
  "RefundType": 2,
  "RefundAmount": null,
  "TransactionInternalNumber": "00012547",
  "Comments": "No inventory"
}
Response
{
  "orderId": 0,
  "internalCode": 0,
  "internalDescription": "OK",
  "providerCode": 0,
  "documentId": 0
}
POST

Create Account

https://api.takbull.co.il/api/Account/CreateAccount

Creates a child merchant account under the authenticated parent merchant (affiliate program). The parent merchant is always resolved from the API key — never from the request body.

How it works

The flow depends on the package (PackageUniqId) and on who pays for it (SubscriptionPayer):

CaseWhat happensResult
Free package / no PackageUniqId The account is created immediately with the free package. No payment. Synchronous — ErrorCode 0 or 1.
Paid package, SubscriptionPayer: "Parent" The parent's saved card (the card the parent pays Takbull with) is charged for the package. On success the child account is created, the package is assigned to it and API credentials are issued. Synchronous — ErrorCode 0 with MerchantId, ApiKey, ApiSecret.
Paid package, SubscriptionPayer: "Child" Nothing is charged yet. The child is sent to a Takbull payment page to save a card. Only then is the account created, the package charged to the child's card and the monthly subscription opened. Asynchronous — ErrorCode 600113 + PaymentRedirectUrl; the final result arrives via RedirectUrl (browser) and IpnUrl (server). See Child pays flow below.

In every case the child's login is created with the given Email/Password and needs no email verification. In the child-pays case the login stays disabled until the payment completes.

Request body example
{
  "Email": "child@example.com",
  "Password": "SecurePass123!",
  "FirstName": "John",
  "LastName": "Doe",
  "Phone": "0501234567",
  "PackageUniqId": "pkg_basic_001",
  "SubscriptionPayer": "Parent",
  "MerchantDetails": {
    "Name": "Child Business Ltd.",
    "NameEn": "Child Business Ltd.",
    "BusinessNumber": "123456789",
    "BusinessType": 1,
    "BizRegiEmail": "child@example.com",
    "Address1": "רחוב הרצל 1",
    "City": "תל אביב",
    "Country": "Israel",
    "countryCode": 972,
    "Zip": "6120101",
    "PhoneNumber1": "0501234567",
    "WebSiteUrl": "https://childbusiness.com",
    "Mcc": 5999,
    "FirstName": "John",
    "LastName": "Doe",
    "IdentityNumber": "203458101",
    "IdentitycreationDate": "2015-04-12",
    "IncorporationDate": "2015-01-01",
    "Sex": "M",
    "DateOfBirth": "1985-06-20",
    "BirthCountry": "Israel",
    "bankcode": "12",
    "branchcode": "345",
    "accountnumber": "123456",
    "BusinessDomainDescription": "6012"
  }
}
Request Fields
FieldTypeRequiredDescription
EmailString✅Login email for the child account. Must be unique.
PasswordString✅Initial login password for the child account.
FirstNameString❌First name of the account owner.
LastNameString❌Last name of the account owner.
PhoneString❌Mobile phone number of the account owner.
PackageUniqIdString❌Unique ID of the module package to assign. If omitted, the free package is assigned automatically.
SubscriptionPayerString❌Who pays for the subscription: Parent or Child. Defaults to Child.
RedirectUrlString✅ when the child paysAbsolute http/https URL on the parent's site. After the child completes the payment page, the child's browser is redirected here (see Child pays flow).
IpnUrlString❌Absolute http/https URL. When the child pays, the activation result and the child account details are POSTed here (see Child pays flow).
MerchantDetailsObject✅Merchant profile. Required when providing the required BusinessType field and other business details.
MerchantDetails.BusinessTypeNumber✅Required business type for the merchant. Use one of the values in the BusinessType table below.
MerchantDetails fields (required to open a Upay clearing account)

When the assigned package includes a Upay clearing/provider module, the fields below are forwarded to Upay's FULLCREATEACCOUNT request. Provide them inside the MerchantDetails object.

FieldTypeRequiredDescription
NameString✅Registered company/business name (Hebrew). Maps to Upay companyname.
NameEnString❌Company/business name in English. Maps to Upay companynameEN.
BusinessNumberString✅Business/company registration number. Maps to Upay companyidentity.
BusinessTypeNumber✅Takbull business type: 1 = Osek Murshe, 2 = Company (LTD), 3 = Exempt dealer (Osek Patur), 4 = Non-profit, 5 = Partnership, 6 = Public company. It sets the VAT handling of the merchant's documents. Do not send Upay's compantype here; Takbull derives it from this value.
BizRegiEmailString✅Business email registered with Upay. Maps to Upay email.
PhoneNumber1String✅Business phone number. Maps to Upay phonenumber.
Address1String✅Business street address. Maps to Upay address.
CityString✅Business city. Maps to Upay city.
FirstNameString✅Account owner / controlling person first name. Maps to Upay firstname.
LastNameString✅Account owner / controlling person last name. Maps to Upay lastname.
IdentityNumberString✅Owner's ID (Teudat Zehut) number. Maps to Upay identitynumber.
IdentitycreationDateString (yyyy-MM-dd)❌Issue date of the owner's ID document. Maps to Upay identitynumbercreationdate.
IncorporationDateString (yyyy-MM-dd)❌Company incorporation / business opening date. Maps to Upay incorporationdate.
SexString❌Owner gender (e.g. M / F). Maps to Upay sex.
DateOfBirthString (yyyy-MM-dd)❌Owner date of birth. Maps to Upay birthdate.
BirthCountryString❌Owner country of birth. Maps to Upay birthcountry.
bankcodeString✅Settlement bank code. Maps to Upay bankcode.
branchcodeString✅Settlement bank branch code. Maps to Upay branchcode.
accountnumberString✅Settlement bank account number. Maps to Upay accountnumber.
BusinessDomainDescriptionString❌Business occupation / MCC classification. Maps to Upay occupationid.
BusinessType values
ValueAPI nameHebrew nameEnglish description
1OsekMursheעוסק מורשהAuthorized dealer
2LTDחברה בע"מLimited company
3Exemptdealerעוסק פטורExempt dealer
4NonProfitOrganizationעמותהNon-profit organization
5PartnershipשותפותPartnership
6Publicחברה ציבוריתPublic company
Linking an existing Upay account

If the merchant already has a Upay account, send the fields below inside MerchantDetails instead of the account-opening fields above. The account is linked to the new merchant rather than opened. The credentials are verified before any payment is taken, and the package is charged in full, clearing setup fee included.

FieldTypeRequiredDescription
IsExistingAccountBoolean✅true to link an existing Upay account.
ProviderKeyString✅The email the existing Upay account signs in with.
ProviderSecretString✅The existing Upay account's password.
MCC (Merchant Category Code) values

The Mcc field inside MerchantDetails is a standard ISO 18245 merchant category code describing the merchant's line of business. Send the numeric code that best matches the merchant's activity. Common values are listed below; if none apply, use 5999 (miscellaneous retail).

MCCCategory
5411Grocery Stores, Supermarkets
5462Bakeries
5499Miscellaneous Food Stores
5511Car & Truck Dealers (Sales, Service, Repairs)
5541Service Stations (Fuel)
5651Family Clothing Stores
5661Shoe Stores
5691Men's & Women's Clothing Stores
5732Electronics Stores
5734Computer Software Stores
5812Eating Places, Restaurants
5814Fast Food Restaurants
5912Drug Stores, Pharmacies
5941Sporting Goods Stores
5945Hobby, Toy & Game Shops
5947Gift, Card, Novelty & Souvenir Shops
5977Cosmetic Stores
5992Florists
5999Miscellaneous & Specialty Retail
7011Hotels, Motels & Resorts
7230Beauty & Barber Shops
7298Health & Beauty Spas
7372Computer Programming, Data Processing & Consulting
7392Management, Consulting & Public Relations Services
7399Business Services (Not Elsewhere Classified)
7997Membership Clubs, Sports & Recreation
8011Doctors & Physicians
8021Dentists & Orthodontists
8049Podiatrists & Chiropractors
8062Hospitals
8099Medical Services & Health Practitioners
8111Legal Services & Attorneys
8211Elementary & Secondary Schools
8220Colleges, Universities & Professional Schools
8299Educational Services
8351Child Care Services
8398Charitable & Social Service Organizations
8641Civic, Social & Fraternal Associations
8699Membership Organizations (Not Elsewhere Classified)
8931Accounting, Auditing & Bookkeeping Services
8999Professional Services (Not Elsewhere Classified)
SubscriptionPayer values
ValueBehavior
ParentThe authenticated parent merchant's saved card is charged immediately. On success the child account is created and activated with the package, and the result is returned in the same response.
ChildThe response returns ErrorCode 600113 with a PaymentRedirectUrl. The child account is activated only after the child saves a card and the package is charged to it. RedirectUrl is required.
Child pays flow

Use this flow when the new merchant pays Takbull for its own subscription. Your system (the parent) opens the account, the child pays on a Takbull-hosted page, and you are notified of the result.

  1. Call CreateAccount with SubscriptionPayer: "Child", a paid PackageUniqId, RedirectUrl and (recommended) IpnUrl.
  2. The response has ErrorCode 600113, PaymentRedirectUrl, OrderUniqId and AffiliationId. Save AffiliationId — it identifies this account in the redirect and in the IPN. Send the child to PaymentRedirectUrl.
  3. The child enters card details on the Takbull payment page. The card is saved for the subscription.
  4. Takbull then creates the child merchant, assigns the package, charges the package (setup + first period) to the child's card, opens the monthly subscription on the same card, issues API credentials (if the package includes API / clearing) and enables the login.
  5. The child's browser is redirected to RedirectUrl with the query parameters below.
  6. A server-to-server POST (JSON) is sent to IpnUrl with the final result and the child account details.
Child pays — request example
{
  "Email": "child@example.com",
  "Password": "SecurePass123!",
  "FirstName": "John",
  "LastName": "Doe",
  "Phone": "0501234567",
  "PackageUniqId": "pkg_basic_001",
  "SubscriptionPayer": "Child",
  "RedirectUrl": "https://parent.example.com/takbull/child-account/return",
  "IpnUrl": "https://parent.example.com/takbull/child-account/ipn",
  "MerchantDetails": { "Name": "Child Business Ltd.", "BusinessNumber": "123456789" }
}
Child pays — response example
{
  "Success": true,
  "ErrorCode": 600113,
  "ErrorMessage": "Payment is required to activate this child account. Please complete the payment process.",
  "UserId": 1042,
  "MerchantId": null,
  "Email": "child@example.com",
  "ParentMerchantId": "MID_parent456",
  "AffiliationId": 7,
  "SubscriptionPayer": "Child",
  "PaymentRedirectUrl": "https://api.takbull.co.il/PaymentGateway?orderUniqId=3f0b1c2e-...",
  "OrderUniqId": "3f0b1c2e-...",
  "ApiKey": null,
  "ApiSecret": null
}

MerchantId and the API credentials are not available yet — they are delivered in the IPN once the payment completes.

RedirectUrl query parameters
ParameterDescription
statusactivated, failed, processing (activation still running — wait for the IPN), pending or payment_failed.
statusCode0 on success.
affiliationIdThe AffiliationId returned by CreateAccount.
childMidMID of the child merchant (when created).

Example: https://parent.example.com/takbull/child-account/return?status=activated&statusCode=0&affiliationId=7&childMid=MID_abc123

Use the redirect only to show the child a result page. It is not signed, the child may close the browser before it arrives, and processing means the activation had not finished yet — update your records from the IPN.

IPN body (POST to IpnUrl)

Sent as POST with Content-Type: application/json and User-Agent: TakbullIPNAgent, once the activation has finished (successfully or not).

{
  "Status": "Activated",
  "StatusCode": 0,
  "StatusDescription": "Child account activated",
  "AffiliationId": 7,
  "ParentMerchantId": "MID_parent456",
  "MerchantId": "MID_abc123",
  "UserId": 1042,
  "Email": "child@example.com",
  "PackageUniqId": "pkg_basic_001",
  "OrderUniqId": "3f0b1c2e-...",
  "ApiKey": "5c2a493c-1a92-4222-9a4d-b50340757cf8",
  "ApiSecret": "8e2e4556-7d59-4476-833c-471f4bf6a605"
}
IPN fields
FieldTypeDescription
StatusStringActivated — the account is active and the package was charged. Failed — activation failed (see StatusCode).
StatusCodeNumber0 on success; otherwise the error code (see Error Codes).
StatusDescriptionStringHuman-readable result / failure reason.
AffiliationIdNumberThe AffiliationId returned by CreateAccount. Use it to match the IPN to your request.
ParentMerchantIdStringYour (the parent's) MID.
MerchantIdStringMID of the new child merchant.
UserIdNumberInternal user ID of the child's login.
EmailStringLogin email of the child account.
PackageUniqIdStringThe package that was assigned and charged.
OrderUniqIdStringThe payment-page order on which the child saved the card.
ApiKey / ApiSecretStringAPI credentials of the child terminal, when the package includes an API or clearing module. Empty on failure.
Handling the IPN
  • Respond with any 2xx status to acknowledge. Any other status, or no response, is retried — up to 3 attempts, 15 minutes apart.
  • Make your handler idempotent: the same IPN may arrive more than once. Match it by AffiliationId.
  • The IPN carries the child's ApiSecret — use an https IpnUrl and store the credentials securely.
  • If the payment is abandoned no IPN is sent. You may call CreateAccount again with the same Email: the previous pending request is cancelled and a new payment link is returned.
  • On Failed after the payment (e.g. the package charge was declined), contact Takbull support — the email cannot be reused automatically.
Response
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorMessage": "Child account created successfully.",
  "UserId": 1042,
  "MerchantId": "MID_abc123",
  "Email": "child@example.com",
  "ParentMerchantId": "MID_parent456",
  "AffiliationId": 7,
  "SubscriptionPayer": "Parent",
  "PaymentRedirectUrl": null,
  "OrderUniqId": null,
  "ApiKey": "5c2a493c-1a92-4222-9a4d-b50340757cf8",
  "ApiSecret": "8e2e4556-7d59-4476-833c-471f4bf6a605"
}
Response Fields
FieldTypeDescription
SuccessBooleantrue when the operation completed without a blocking error.
ErrorCodeNumberNumeric result code. 0 on full success. See the Error Codes table below.
ErrorMessageStringHuman-readable result/error description.
UserIdNumberInternal user ID of the newly created account owner.
MerchantIdStringMID of the newly created child merchant.
EmailStringEmail address of the newly created account.
ParentMerchantIdStringMID of the authenticated parent merchant.
AffiliationIdNumberID of the affiliation record linking parent and child. Nullable.
SubscriptionPayerStringWho is responsible for paying the subscription fee. Nullable.
PaymentRedirectUrlStringURL to redirect the merchant to complete payment. Only set when ErrorCode == 600113 (payment required).
OrderUniqIdStringUnique ID of the pending payment order. Used alongside PaymentRedirectUrl.
ApiKeyStringAPI key issued for the newly created child terminal. Returned when an API/provider module is assigned.
ApiSecretStringAPI secret issued for the newly created child terminal. Returned when an API/provider module is assigned.
Error Codes
ErrorCodeDescription
0Success. Child account created.
1Success. Child account created with the free package.
600104Could not resolve the authenticated merchant identity from the API credentials.
600105Request data is required (body is null).
600106Email is required, or is not a valid email address.
600107Password is required, or too weak: at least 8 characters with upper- and lower-case letters, a digit and a special character.
600108Parent merchant not found.
600109Failed to create user account (for example, the email already exists).
600110User was not created successfully.
600111Failed to register the clearing provider (Upay) for the child merchant. When the parent pays, the account is created all the same: Success is true, the API keys are returned, and Takbull support completes the clearing setup.
600113Payment is required to activate the child account. See PaymentRedirectUrl.
600114Validation error while creating the child account.
600115An unexpected internal error occurred.
600116RedirectUrl is missing or invalid (required when the child pays).
600117IpnUrl is not a valid absolute http/https URL.
600118Failed to create the payment page for the child.
600119ProviderKey / ProviderSecret are missing although IsExistingAccount is true. Nothing was charged.
600127Could not sign in to the existing Upay account with the given ProviderKey / ProviderSecret. Nothing was charged.
600128(Paid packages) MerchantDetails is not valid; ErrorMessage lists what is missing or wrong (required fields, bank details, a BusinessNumber that already has a Takbull account). Checked before any payment — nothing was charged.
600125(Parent pays) The payment was received but the account setup did not complete. Do not pay again: resend the same request (same Email and PackageUniqId) to finish the setup without a new charge. OrderUniqId and AffiliationId identify the payment.
600126(Parent pays) The payment could not be confirmed. Do not resend the request; Takbull support has been notified and will complete the account or release the payment.
600120(IPN only) The stored account request could not be read.
600121(IPN only) The pending child login was not found or is already active.
600122(IPN only) The package was not found.
600123(IPN only) An unexpected internal error occurred during activation.
Other(IPN only) When the package charge on the child's card is declined, StatusCode is the payment error code and StatusDescription its description.
Example cURL
curl --location 'https://api.takbull.co.il/api/Account/CreateAccount' \ --header 'Content-Type: application/json' \ --header 'API_Secret: 8e2e4556-7d59-4476-833c-471f4bf6a605' \ --header 'API_Key: 5c2a493c-1a92-4222-9a4d-b50340757cf8' \ --data '{ "Email": "child@example.com", "Password": "SecurePass123!" }'
POST

Document Settings

https://api.takbull.co.il/api/Account/UpdateDocumentSettings
https://api.takbull.co.il/api/Account/GetDocumentSettings?childMid={childMid}&lang=he

Reads / updates the document (invoice & receipt) settings of the authenticated merchant, or of one of its active affiliated child merchants when ChildMid is given. On update only the fields sent are changed; the response returns the full settings after the change.

When to use
  • Right after CreateAccount (or after the Activated IPN in the child-pays flow), to set up how the new child's documents look and are sent — default document type, VAT handling, email subject/body, SMS text, etc.
  • At any later time, to keep a child's document settings in sync with your system, without the child logging in.
  • Without ChildMid, to manage your own document settings.

Settings are kept per language: he (Hebrew documents, default) and en (English documents) are separate sets — update each one you use. If a merchant has no settings yet for the language, defaults are created from the merchant profile on the first call. A child can be managed only while its affiliation is Active.

Recommended: call GetDocumentSettings first, then send only the fields you want to change.

GetDocumentSettings — query parameters
ParameterTypeRequiredDescription
childMidString❌MID of an active affiliated child. Omit to read the authenticated merchant's settings.
langString❌he (default) or en.

The response has the same structure as the UpdateDocumentSettings response below.

UpdateDocumentSettings — request body example
{
  "ChildMid": "MID_abc123",
  "Language": "he",
  "Settings": {
    "DefaultDocumentType": 320,
    "IsItemIncludeTax": true,
    "EmailFromDisplayName": "Child Business Ltd.",
    "EmaiSubjectMsg": "Your document from Child Business",
    "EmailDocumentToMerchantAsCopy": true,
    "MerchantEmailToSendCopy": "child@example.com",
    "AddPaymentLink": false,
    "HideUnits": true,
    "DocumentNumbering": [
      { "DocumentType": 320, "Count": 1000 },
      { "DocumentType": 400, "Count": 2000 }
    ]
  }
}
Request Fields
FieldTypeRequiredDescription
ChildMidString❌MID of an active affiliated child. Omit to update the authenticated merchant.
LanguageString❌Settings language: he (default) or en.
SettingsObject✅Fields to change (all optional).
Settings fields
FieldTypeDescription
DefaultDocumentTypeNumberDefault document type (e.g. 320 = חשבונית מס קבלה).
CurrencyCodeStringDefault currency (e.g. ILS).
IsTaxtableBooleanDocuments are subject to VAT.
IsItemIncludeTaxBooleanItem prices include VAT.
CommentsStringDefault comments printed on documents.
EmailFromDisplayNameStringSender display name on document emails.
EmaiSubjectMsgStringDocument email subject.
EmailBodyMsgString (HTML)Document email body (sanitized). Placeholders: [[customerName]], [[documentType]].
EmailDocumentToMerchantAsCopyBooleanSend a copy of every document to the merchant.
MerchantEmailToSendCopyStringEmail address for the merchant copy.
SmsMsg / SmsFromStringDocument SMS text and sender.
AddPaymentLinkBooleanAdd a payment link to sent documents.
ShowIlsInForeignCurrencyBooleanShow the ILS amount on foreign-currency documents.
HideSQU / HideUnitsBooleanHide the SKU / units columns.
KabalaWithoutItemsBooleanIssue receipts without item lines.
RoundSumBooleanRound document totals.
ShowMerchantEmailAddressBooleanPrint the merchant email on documents.
ShowTaxRowInKabalaBooleanShow the VAT row on receipts.
ShowCustomerBalanceBooleanShow the customer balance on documents.
ThemeIdNumberDocument design theme.
DocumentNumberingArrayOptional per-document-type numbering updates. Each entry contains DocumentType and Count; Count is the last/current number and cannot be lower than an already issued document.
Document types
ValueAPI nameHebrew name
80HatzaatMehirהצעת מחיר
81HeshbonIskaחשבון עסקה
82HodaatHiyuvהודעת חיוב
100Hazmanaהזמנה
200TeudatMishloahתעודת משלוח
300Heshbonitחשבונית עסקה
305HeshbonitMasחשבונית מס
320HeshbonitMasKabalaחשבונית מס קבלה
330HeshbonitMasZikuiחשבונית מס זיכוי
355HeshbonitMasZikuiAndKabalaחשבונית מס זיכוי והחזר כספים
400Kabalaקבלה
401RefundKabalaזיכוי קבלה
405KabalaTrumaקבלה תרומה
406RefundKabalaTrumaזיכוי קבלה תרומה
Response
{
  "Success": true,
  "ErrorCode": 0,
  "ErrorMessage": null,
  "Mid": "MID_abc123",
  "Language": "he",
  "Settings": {
    "DefaultDocumentType": 320,
    "IsItemIncludeTax": true,
    "DocumentNumbering": [ { "DocumentType": 320, "Count": 1000 } ],
    "...": "..."
  }
}
Error Codes
ErrorCodeDescription
600104Could not resolve the authenticated merchant identity.
600130Settings is required.
600131Invalid DefaultDocumentType.
600132Invalid MerchantEmailToSendCopy.
600133An unexpected internal error occurred.
600134ChildMid is not an active affiliated child of the authenticated merchant.
600135Invalid document numbering entry.
600136Duplicate document numbering entries.
Example cURL — read
curl --location 'https://api.takbull.co.il/api/Account/GetDocumentSettings?childMid=MID_abc123&lang=he' \ --header 'API_Secret: 8e2e4556-7d59-4476-833c-471f4bf6a605' \ --header 'API_Key: 5c2a493c-1a92-4222-9a4d-b50340757cf8'
Example cURL — update
curl --location 'https://api.takbull.co.il/api/Account/UpdateDocumentSettings' \ --header 'Content-Type: application/json' \ --header 'API_Secret: 8e2e4556-7d59-4476-833c-471f4bf6a605' \ --header 'API_Key: 5c2a493c-1a92-4222-9a4d-b50340757cf8' \ --data '{ "ChildMid": "MID_abc123", "Language": "he", "Settings": { "DefaultDocumentType": 320, "AddPaymentLink": true } }'
GET

Get Order

https://api.takbull.co.il/api/ExtranalAPI/GetOrder?orderUniqId={orderUniqId}

Retrieves a single order by its unique identifier. The response includes full order details: customer info, payment sums, products, transactions, invoices, and shipping.

Query Parameters
ParameterTypeRequiredDescription
orderUniqIdstring✅Unique identifier of the order.
Response
{
      "uniqId": "ord_abc123",
      "orderStatus": 2,
      "dealType": 1,
      "createDate": "2024-01-15T10:30:00",
      "language": "he",
      "orderTotalSum": 250.00,
      "currency": "ILS",
      "taxAmount": 39.57,
      "taxtable": true,
      "discount": 0,
      "discountType": 0,
      "paymentMethodType": 1,
      "numberOfPayments": 1,
      "paymentsCharged": 1,
      "firstPaymentamount": 250.00,
      "folowedPaymentamount": 0,
      "customerFullName": "John Doe",
      "customerFirstName": "John",
      "customerLastName": "Doe",
      "customerEmail": "john@example.com",
      "customerPhoneNumber": "0501234567",
      "city": "Tel Aviv",
      "country": "Israel",
      "order_reference": "EXT-REF-001",
      "IPNAddress": "https://yoursite.com/ipn",
      "comments": "Gift wrap please",
      "shippingAmount": 20.00,
      "shippingAddress1": "Herzl St 1",
      "shippingCity": "Tel Aviv",
      "shippingCountry": "Israel",
      "products": [
        { "name": "Widget", "quantity": 2, "price": 115.00, "currency": "ILS" }
      ],
      "transactions": [
        { "transactionId": "txn_xyz", "amount": 250.00, "status": 1 }
      ],
      "invoices": [],
      "customer": {
        "firstName": "John",
        "lastName": "Doe",
        "email": "john@example.com",
        "phoneNumber": "0501234567",
        "externalCustomerId": "cust_001"
      }
    }
orderStatus
ValueDescription
0Pending (מוכן)
1Failed (נכשל)
2Processing (בעיבוד)
3Completed (הושלם)
4OnHold (ממתין)
5Cancelled (בוטל)
6Refunded (בוצע זיכוי)
7Removed
8ReSubmit (חיוב חוזר)
9Abandoned (ננטש)
dealType
ValueDescription
1Regular (רגיל)
2Payments / installments (תשלומים)
4Recurring / standing order (הוראת קבע)
6Token / J2
Example cURL
curl --location 'https://api.takbull.co.il/api/ExtranalAPI/GetOrder?orderUniqId=ord_abc123' \ --header 'API_Secret: 8e2e4556-7d59-4476-833c-471f4bf6a605' \ --header 'API_Key: 5c2a493c-1a92-4222-9a4d-b50340757cf8'