Wiki Markup |
---|
{float:right\|width=300px\|background=lightgrey\|border=solid blue 2px\|margin=10px\|padding=8px}*Contents* {toc:all=true|depth=4|excerpt=true|indent=14px} {float} *Change log:* || Date: || Author: || Version: || Changes: || | 03 Oct 2013 | KTH | 0.1 | Doc created. | | | | | | *Reference log:* || Document: || Version: || Date: || | | | | h1. Introduction This document describes the interfacing between Rator Customer Care and Billing System (Rator) and the Buckaroo BPE 3.0 payment systems. This interface is file based and will be discussed in detail in this document. h2. Overview This document describes the interfacing between the Rator Customer Care and Billing System (Rator) and the Buckaroo BPE 3.0 payment systems . There are two engines involved: Buckaroo Request Generator Engine and Buckaroo Payment Capture Engine. The Request Generator is responsible for generating the payment request csv file that will be sent to Buckaroo. The Capture engine is responsible for processing the payment response files received from Buckaroo. You can find more detailed information about Buckaroo Request Generator engine here: [Integration:Buckaroo BPE3 Request Generator Engine] You can find more detailed information about Buckaroo Capture engine here: h2. Document usage This document is primarily intended for the Rator implementation team and for confirming understanding of the interface with Buckaroo. It will also be used as a basis for acceptance tests. *Note:* Please note that we have a separate integration with Buckaroo BPE 2.0 payment interface. This is also file based. For more detailed description of integration towards the Buckaroo BPE 2.0 interface, please look [here|Integration:Buckaroo]. {color:#003366}{*}Scope{*}{color} The scope of this document is the interface between the Buckaroo BPE 3.0 and Rator. h2. Production Date XX November 2013. h2. Interface The interface with Buckaroo will be file based. Payment instructions can be sent (by file) to Buckaroo, Buckaroo will then collect the money with our customer, and update us on the payment status via response messages (also in a file). h2. File format The format of the request and reaponse files is CSV. This format is described in more detail under the section *{_}Payment File Format{_}*. h2. File naming The names of the files are described in *{_}Payment File Format{_}*. h2. Transport The transport for the files is via SFTP. The SFTP server will be located with Buckaroo; h3. Frequency Payment instruction files can be delivered to Buckaroo multiple times a day. Response files will be created by Buckaroo once a day. Exact times TBD * Payment instruction file: daily at TBD * Response file: daily at TBD h3. Connection details Connection details are still TBD * IP address/URL: * Directory: * Username: * Password: * Certificate: h1. Messages In this section we will discuss the individual messages and field values to some more detail. _{+}Note that if a field is not mentioned in this chapter this fact does imply that the field should not be used/populated{+}_ h2. Payment instruction message Every scenario that we will discuss in this document will start with a payment instruction. Normally only one payment instruction will be generated per customer per month (i.e. one payment instruction per customer). For the Rator implementation the following fields will be (especially) important: * Invoicenumber The value of this field should link back to the the invoice in the Rator system. All payment responses can be linked back to the instruction via this number. * Invoicedate * PaymentdateduePayment due date * CustomerCode Internal Rator customer ID (or Billing Group Id?) * Address fields Address data stored in Rator for this customer. Needed by Buckaroo for collection purposes * Bank account number * Mail address Email address stored in Rator for this customer. This email address will be used by Buckaroo for collection purposes * Phone Number and Mobile number If a fixed phone is registered in the Rator database we will take this phone number. This number will be used by Buckaroo for collection purposes. h2. Payment response message Every payment instruction will result in one or more payment response messages. Fields that are especially important in this message type are the following: * Payment status code and transactionpayment type code These fields explian the reason for receiving this message. It is primarily used as information. The important fields in this message are the debit/credit amountsto know what type of payment it is for ex: direct debit / reversal / refund / settlement by merchant etc. * Invoicenumber This number should be used to relatelink the response to the original payment instructionrequest message. * Debit/Credit amount Debit/credit is from the customer's perspective . For a *{_}{+}regular{+}{_}* payment the debit field should contain an value matching the amount in the corresponding payment instruction message. Note that the payment response file will contain the complete set of activity on the accounts (so also not monthly-fee related). Responses that cannot be linked back (via the _invoicenumber_ field) can be ignored by Rator (for the time being). h1. Payment scenariosFile Format In thisThis section wedescribes willthe discussBuckaroo thefile scenariosformat that(both arerequest ofand response interestfile forformats) ourin interactiondetail. with Buckarooh2. ThisDescription isof importantpayment asrequest thecsv Buckaroo interface is more extensive than required and therefore this interface will contain more fields and field values than actually used. Especially important here is that we will not use credit card payments. Instead, payments will be done via direct debit and via the iDeal interface. In the most common scenario the payment will be done via automatic direct debit in combination with customer-authorization in advance. Another important note to be made here is that one should not check the response message's field _payment code_ in order to determine whether an payment instruction has been paid. Instead one should maintain a balance per payment instruction that summarizes the debit/credit amounts contained in the response files that relate to the initial payment instruction. (via the _Invoicenumber_ field). We will anyway discuss the possible scenarios however in this section in order to enhance the understanding of the dialogue between the various parties (Buckaroo, Rator). h2. Regular payment The most common case will be the case of regular payment depicted in the following diagram. *Figure : Regular payment* h2. Late payment If the customer has a negative balance (over the limit for this customer) on his bank account the customer's bank will not authorize the automatic direct debit. In that case Buckaroo will ask the customer to pay anyway (via various means, e.g. email) and then the customer might pay anyway (also via various means, e.g. iDeal. *Figure : Late payment* In some case it might happen that the customer might even pay in multiple increments (partial payments): *Figure : Late payment, partial payments* Note: * The above diagram only describes two payments, but in fact there could be more than two. _{+}Also note that the case of partial payments also applies for the other non-regular scenarios described in the next sections.+_ * In case of involvement of the collection agency (paymentcode=461) we will not receive the full payment, but at most 90%. h2. Payment reversal After an automatic direct debit transfer, the customer might instruct the bank to reverse the money for the initial payment. Buckaroo will then try to get the customer to pay anyway, but this might not always be successful. This scenario is described below: *Figure : Payment reversal, no payment* Notes: * The reversal instruction message can appear sooner that the direct debit message. * A reversal could happen up until 13 months after initial payment. * A reversal can only happen after an automatic direct debit payment. All other payments cannot be reversed. h2. Payment reversal resulting in payment After a payment reversal (described in the previous section) the customer might pay after all. This scenario is described below. *Figure : Payment reversal resulting in payment* Note: * In case of involvement of the collection agency (paymentcode=461) we will not receive the full payment, but at most 90% h2. Refund A special case in the in the interface between service provider and Buckaroo is the refund. In this case the service provider personnel refunds some money to the customer. Reasons might be that the service delivered to the customer was not satisfactory. The refund instruction is entered via the GUI of the Buckaroo system and does not originate from the Rator system, so from a Rator system perspective it is out of scope. Therefore if we receive a payment response with paymentcode=071 Rator should ignore this message (otherwise the balance will be debited while there is no associated payment instruction. *Figure : Refund* h1. Payment File Format This section describes the Buckaroo file format in detail. h2. Description of payment request csv file format This section describes the record format for the csv files sent from Rator to Buckaroo with the payment requests. *Record lay-out:* {color:green}websitekey;amount;culture;currency;description;service;invoicenumber;service_directdebitrecurring_action;service_directdebitrecurring_customeraccountnumber;service_directdebitrecurring_customeraccountname;additional_service;service_creditmanagement_action;phonenumber;customerlastname;service_creditmanagement_customeraccountnumber;customergender;amountvat;service_creditmanagement_maxreminderlevel;invoicedate;service_creditmanagement_customerbirthdate;service_creditmanagement_paymentmethodsallowed;datedue;customertype;faxnumber;customeremail;customerfirstname;mobilephonenumber;customerinitials;customertitle;customercode;customerlastnameprefix;address_street_1;address_housenumber_1;address_housenumbersuffix_1;address_zipcode_1;address_city_1;address_state_1;address_country_1{color} Field separators : semi-colon (";" ) or ascii-char(28) FieldSeperator Record separators: "\n" (ascii-char(10) linefeed) or "\n\c" " (ascii-char(10+13) linefeed+carriage-return) or ascii-char(30) RecordSeperator Allowed characters for fields: a-z, A-Z & 1-9, \-+.@, <space> Limitation is in the format offered to the bank for the authorized payments. *Note*: When the invoice is sent to Buckaroo the accompanying payment is inserted in the table account_payment with a payment_type_id (new payment_type_id) that identifies the "Buckaroo"-payment and this payment is set to "Do capture". *Content fields:* || Fieldname || Rator table and field || Example || Format || | websitekey \\ | \- | FSsfaJKF&6GH \\ \\ | Buckaroo Websitekey. \\ Fixed string from Buckaroo portal \\ | | amount \\ | invoice.TOTAL_EXCL_VAT + invoice.TOTAL_VAT -- invoice.PAYED_AMOUNT \\ | 10.00 \\ | REAL, 2 decimals; amount \\ | | culturefile format This section describes the record format for the csv files sent from Rator to Buckaroo with BPE3.0 payment requests. *Record lay-out:* {color:green}websitekey;amount;culture;currency;description;service;invoicenumber;service_directdebitrecurring_action;service_directdebitrecurring_customeraccountnumber;service_directdebitrecurring_customeraccountname;{color} {color:green}additional_service;service_creditmanagement_action;phonenumber;customerlastname;service_creditmanagement_customeraccountnumber;customergender;amountvat;service_creditmanagement_maxreminderlevel;{color} {color:green}invoicedate;service_creditmanagement_customerbirthdate;service_creditmanagement_paymentmethodsallowed;datedue;customertype;faxnumber;customeremail;customerfirstname;mobilephonenumber;customerinitials;{color} {color:green}customertitle;customercode;customerlastnameprefix;address_street_1;address_housenumber_1;address_housenumbersuffix_1;address_zipcode_1;address_city_1;address_state_1;address_country_1{color} Field separators : semi-colon (";" ) or ascii-char(28) FieldSeperator Record separators: "\n" (ascii-char(10) linefeed) or "\n\c" " (ascii-char(10+13) linefeed+carriage-return) or ascii-char(30) RecordSeperator Allowed characters for fields: a-z, A-Z & 1-9, \-+.@, <space> Limitation is in the format offered to the bank for the authorized payments. *Note*: When the invoice is sent to Buckaroo the accompanying payment is inserted in the table account_payment with a payment_type_id (TBD new payment_type_id) that identifies the Buckaroo payment and this payment is set to "Do capture". *Content fields:* || Fieldname || Rator table and field || Example || Format || | websitekey \\ | \- | FSsfaJKF&6GH \\ \\ | Buckaroo Websitekey. \\ Fixed string from Buckaroo portal \\ | | amount \\ | invoice.TOTAL_EXCL_VAT + invoice.TOTAL_VAT -- invoice.PAYED_AMOUNT \\ | 10.00 \\ | REAL, 2 decimals; amount \\ | | culture \\ | \- | nl-NL | String, ISO culture code | | currency \\ | \- | EUR | Fixed string for currency code | | description \\ | <Description Prefix> + account_payment.REFERENCE | Test Incasso 1 | String; description, max length 100 chars | | service \\ | \- | Directdebitrecurring | String; Buckaroo service name | | invoicenumber \\ | invoice.INVOICE_NUMBER | Test01923r4e | String; Invoice number, max length 100 chars | | service_directdebitrecurring_action \\ | \- | Pay | String; Pay or Refund (See Buckaroo service description) | | service_directdebitrecurring_customeraccountnumber \\ | Billing_group_bank_account.BANK_ACCOUNT_NUMBER \\ | 123456789 | Bank Account; Must be 11 proof. Empty or null value not allowed | | service_directdebitrecurring_customeraccountname \\ | users.FIRST_NAME + <space> + users.LAST_NAME | T.Test | String; account name | | additional_service \\ | \- | Creditmanagement | String; see Buckaroo Service description \\ \\ | | service_creditmanagement_action \\ | \- | Invoice | Fixed String | | phonenumber \\ | users.PHONE1 | 0201111111 | String; Phone number | | customerlastname \\ | users.LAST_NAME | Tester | String; customer last name, max 200 chars | | service_creditmanagement_customeraccountnumber \\ | Billing_group_bank_account.BANK_ACCOUNT_NUMBER \\ | 123456789 | Bank account; must be 11-proof. Empty or null value not allowed. \\ Will be same as service_directdebitrecurring_customeraccountnumber, but must be repeated | | customergender \\ | users.GENDER \\ | 1 | Integer, may not be empty \\ 0: Unknown \\ 1: Male \\ 2: Female \\ 9: Irrelevant (currently not used) | | amountvat \\ | \- | nl-NL0.00 | StringReal, ISO2 culturedecimals code | | currency\\ Example: \\ |Value \-for |amount EUR | Fixed string= 1000. \\ Value for currencyinvoicevat code | | descriptionwill be: \\ |1000 <Description* Prefix>0.19 + account_payment.REFERENCE | Test Incasso 1 | String; description, max length 100 chars | | service \\ | \- | Directdebitrecurring | String; Buckaroo service name= 190 Euro cents \\ | | service_creditmanagement_maxreminderlevel \\ | \- | 1 | INTEGER, may not be empty. Choose from (0,1,2,3,4). Default is 4 | | invoicenumberinvoicedate \\ | invoice.INVOICE_NUMBERCLOSE_DATE \\ | Test01923r4e2012-01-10 | StringYYYY-MM-DD; Invoice number, max length 100 chars date | | service_directdebitrecurring_actioncreditmanagement_customerbirthdate \\ | \-users.BIRTHDAY | Pay1970-01-13 | String; Pay or Refund (See Buckaroo service description) YYYY-MM-DD; Birth date \\ | | service_directdebitrecurring_customeraccountnumbercreditmanagement_paymentmethodsallowed \\ | Billing_group_bank_account.BANK_ACCOUNT_NUMBER \\\- | 123456789machtiging,ideal | Bank Account; Must be 11 proof. Empty or null value not allowed String; Comma seaparated list of allowed methods of payment as offered by Buckaroo. See Buckaroo Service description for possible values | | service_directdebitrecurring_customeraccountnamedatedue \\ | usersinvoice.FIRSTCLOSE_NAMEDATE + <due date <space>off + users.LAST_NAMEset> \\ | T.Test2012-01-27 | StringYYYY-MM-DD; accountdue namedate | | additional_servicecustomertype \\ | \- | Creditmanagement1 | String; seetype Buckaroo Service description of customer \\ \\Currently | | service_creditmanagement_action \\ | \- | Invoice | Fixed Stringnot used | | phonenumberfaxnumber \\ | users.PHONE1FAX \\ | 02011111110309999999 | String; PhoneFax number | | customerlastnamecustomeremail \\ | users.LAST_NAMEEMAIL | Testersupport@buckaroo.nl | String; customer last name, max 200 chars email address | | service_creditmanagement_customeraccountnumbercustomerfirstname \\ | Billing_group_bank_account.BANK_ACCOUNT_NUMBERusers.FIRST_NAME \\ | 123456789Test | Bank accountString; mustCustomer be 11-proof. Empty or null value not allowed. \\ Will be same as service_directdebitrecurring_customeraccountnumber, but must be repeatedfirst name | | mobilephonenumber \\ | service.PHONE_NUMBER | 0601111111 | String; mobile number | | customergendercustomerinitials \\ | users.GENDER \\- | 1T. | IntegerString; optional , maycurrently not beused empty \\ 0: Unknown | | customertitle \\ 1: Male \\| users.TITLE | 2: Female \\ 9: Irrelevant (currently not used)| String; customer title | | amountvatcustomercode \\ | account.CUSTOMER_NUMBER \-\ | 0.0055225522 | Real, 2 decimals \\ Example:String; Customer rator account number | | customerlastnameprefix \\ Value for amount = 1000.| \- | de | String; optional , \\currently Valuenot forused invoicevat| will be:| address_street_1 \\ 1000 * 0.19 = 190 Euro cents \\| users.STREET \\ | Hoofdstraat | String; street name | | serviceaddress_creditmanagementhousenumber_maxreminderlevel1 \\ | \-users.STREET_NUMBER \\ | 1 | INTEGER,Integer; may not be empty. Choose from (0,1,2,3,4). Default is 4 House number | | invoicedateaddress_housenumbersuffix_1 \\ | invoiceusers.CLOSE_DATEFLOOR \\ | 2012-01-10b | YYYY-MM-DDString; InvoiceHouse number datesuffix | | serviceaddress_creditmanagementzipcode_customerbirthdate1 \\ | users.BIRTHDAYZIP | 1970-01-13 1000 AA | YYYY-MM-DD; Birth date \\String, Zipcode, always in DDDD<space>CC format | | serviceaddress_creditmanagementcity_paymentmethodsallowed1 \\ | \-users.CITY | machtiging,idealAmsterdam | String; CommaCity seaparated(in listAll of allowed methods of payment as offered by Buckaroo. See Buckaroo Service description for possible valuescapital letters) | | datedueaddress_state_1 \\ | invoice.CLOSE_DATE + <due date off set> \\ | 2012-01-27 | YYYY-MM-DD; due date | | customertypeusers.PROVINCE | Noord-Holland | String; province | | address_country_1 \\ | \- | 1NL | String; type of customer \\ Currently not used | | faxnumber \\ | users.FAX \\ | 0309999999 | String; Fax number | | customeremail \\ | users.EMAIL | support@buckaroo.nl | String; customer email address | | customerfirstname \\ | users.FIRST_NAME \\ | Test | String; Customer first name | | mobilephonenumber \\ | service.PHONE_NUMBER | 0601111111 | String; mobile number | | customerinitials \\ | \- | T. | String; optional , currently not used | | customertitle \\ | users.TITLE | 2 | String; customer title | | customercode \\ | account.CUSTOMER_NUMBER \\ | 55225522 | String; Customer rator account number | | customerlastnameprefix \\ | \- | de | String; optional , currently not used | | address_street_1 \\ | users.STREET \\ | Hoofdstraat | String; street name | | address_housenumber_1 \\ | users.STREET_NUMBER \\ | 1 | Integer; House number | | address_housenumbersuffix_1 \\ | users.FLOOR \\ | b | String; House number suffix | | address_zipcode_1 \\ | users.ZIP | 1000 AA | String, Zipcode, always in DDDD<space>CC format | | address_city_1 \\ | users.CITY | Amsterdam | String; City (in All capital letters) | | address_state_1 \\ | users.PROVINCE | Noord-Holland | String; province | | address_country_1 \\ | \- | NL | String; country | *Example filename*: Incasso_25-05-2010_001.CSV Date format 25-05-2010 is DD-MM-YYYY and 001 is batch number for that day. In this respect multiple batches per day can be offered. h2. Description of payment response csv file This section described the record layout of the payment response file sent by Buckaroo to us. *Record lay-out:* res_transactiondate;res_transactiontime;res_transactionkey;res_name;res_statuscode;res_status;res_transtype;res_service;res_invoicenumber;res_description;res_currency;res_amount_debit;res_amount_credit;res_amount_payout;res_reversal_reason {color:green} "Created";"Website";"Payment type";"Account number";"Customer";"Invoice number";"Description";"Amount Debit";"Amount credit";"Currency";"Status";"Status date";"Success";"Reversal reason";"Country";"Transaction key";"IP Address"; {color} Field separators: semi-colon (";" ) *Content fields:* || Fieldname || Example || Format || | *res_transactiondate* | 2012-12-21 | Date format: YYYY-MM-DD | | *res_transactiontime * | 17:11:35 | Time; optional field in timeformat HH:MM:SS | | *{_}res_transactionkey{_}* | ABCDEFABCDEF0123... | String; max 32 characters, Bucakroo transaction ID | | *res_name* | T.Test | String; Customer name | | *res_statuscode* | 190 | String; Status code of the transaction; see service description | | *res_status* | Success | String; referes to res_statuscode | | *res_transtype* | C002 | String; transation type (See service description) | | *res_service* | Directdebitrecurring | String; payment method | | *res_invoicenumber* | Test01923r4a112 | String; Invoice number | | *res_description* | Test trx01 | String; Description \\ | | *res_currency* | EUR | Fixed String "EUR" | | *res_amount_debit* | 10.00 | REAL; 2 decimals, amount debited from customer account | | *res_amount_credit* | 0.00 | REAL; 2 decimals, amount credited to customer account | | *res_amount_payout* | 10.00 | REAL; 2 decimals | | *res_reversal_reason* | ADMINISTRATIEVE REDEN | String; reason for payment reversal | Filename for daily transactions: trx_2010-05-25.csv Date format 2010-05-25 is YYYY-MM-DD *Additional information regarding status codes of transactions:* || response field name || Description || | res_statuscode | * 190 -- OK, payment received, trx succeeded * 490 -- NOK, trx failed * 491 -- NOK, validation failed, syntax error, could not process trx * 492 -- NOK, technical issues, failed to complete trx * 690 -- NOK, trx not approved * 790 -- Pending, trx being processed, waiting for customer input * 791 -- Pending, trx being processed * 792 -- Pending, trx being processed, awaiting return of customer from 3{^}rd^ party site * 793 -- Pending, trx is on hold * 890 -- NOK, trx cancelled by customer * 891 -- NOK, trx cancelled by merchant | | res_transtype | * C001 -- transfer * C002 -- first direct debit * C003 -- recurring direct debit * C021 -- ideal * C121 -- refund ideal * C102 -- refund any direct debit trx * C562 -- reversal * I255 -- creditnote * V99 -- external payment/settlement by merchant * 461/462 -- payments from collection agency | | res_amount_debit | Debit amountIn Euro with 2 decimals \\ | | res_amount_credit | Credit amountIn Euro with 2 decimals \\ | | res_amount_payout | Sum of debit and credit amount (in Euro with 2 Decimals, can be negative) | h2. Business rules payment response codes The following table describes the business rules for handling the payment response codes from Buckaroo: Note: When the invoice is sent to Buckaroo the accompanying payment is inserted in the table account_payment with a payment_type_id (new payment_type_id) that identifies the "Buckaroo"-payment and this payment is set to "Do capture". || Resp. code(s) || Transaction codes || Description || Action CDRator || | 190 | C002/C003 | Successful | *Capture payment:* * Search for the corresponding payment using invoice number. If not found write error to log, process next record. * Check if the debit amount from the response matches the accompanying payment. If it does not match write error to log, process next record. * When payment is found, Capture the payment (if it is not captured yet). * Write "successful result" to log file. | | 190 | C562 | Reversed | *Capture original payment and insert reversed country | *Example filename*: Incasso_25-05-2010_001.CSV Date format 25-05-2010 is DD-MM-YYYY and 001 is batch number for that day. In this respect multiple batches per day can be offered. h2. Description of payment response csv file This section described the record layout of the payment response file sent by Buckaroo to us. *Record lay-out:* {color:green}"Created";"Website";"Payment type";"Account number";"Customer";"Invoice number";"Description";"Amount Debit";"Amount credit";"Currency";"Status";{color} {color:green}"Status date";"Success";"Reversal reason";"Country";"Transaction key";"IP Address"{color} Field separators: semi-colon (";" ) *Content fields:* || Fieldname || Description || Format || | *Created*\\ | Transaction date, i.e. payment date\\ | Date format: YYYY-MM-DD HH:MM:SS\\ Ex: 2013-10-17 16:40:24 | | *Website * | Fixed string | String | | *Payment type*\\ | Payment type code and description indicating the \\ type of the payment | 4 Character payment type code followed by a payment type string .\\ Ex: \\ C021 - iDeal\\ C561 - Melding Onterechte Incasso\\ C102 - Refund - Machtiging\\ | | *Account number*\\ | Customer bank account number | String; IBAN bank account number | | *Customer*\\ | Customer name\\ | String; customer name | | *Invoice number*\\ | invoice number | Simyo invoice number | | *Description*\\ | Description of the payment | String | | *Amount Debit*\\ | Amount debited from customer account \\ | REAL; 2 decimals (amount in EURO) | | *Amount credit*\\ | Amount credited from customer account\\ | REAL; 2 decimals (amount in EURO)\\ | | *Currency*\\ | Currency code | Fixed String "EUR" \\ | | *Status*\\ | Status of the payment transaction | BPE3 status code\\ Ex: \\ 190\\ 490\\ 791 etc. | | *Status date*\\ | Date of the last status update | REAL; 2 decimals, amount debited from customer account | | *Success*\\ | String representation of boolean indicating whether the \\ payment is successful or not. | String; true/false | | *Reversal reason*\\ | Reason for the payment reversal | String\\ Ex: ADMINISTRATIEVE REDEN | | *Country*\\ | Country | String | | *Transaction key*\\ | Payment transaction Key | String | | *IP Address*\\ | IP address | String | Filename for daily transactions: trx_2010-05-25.csv Date format 2010-05-25 is YYYY-MM-DD *Additional information regarding status codes and payment type codes of transactions:* || field || Description || | status code | 190 - Success: The payment is processed successfully. 490 - Failed: The transaction failed. 491 - Validation failed: The transaction request contained errors and could not be processed properly. 492 - Technical error: Due to a technical fault the transaction could not be completed. 690 - Rejected: The transaction is rejected by the (third party) payment provider. 790 - Pending entry: The transaction is on hold while the payment enginge is waiting on input from consumers. 791 - Pending processing: The transaction will be processed. 792 - Awaiting the consumer: the payment Engine waits for consumers to return back from a third party website, which is needed to complete the transaction. 793 - The transaction is on hold. 890 - Cancelled by User: The operation was canceled by the customer. 891 - Cancelled by Merchant: The merchant has canceled the transaction.190 - Success: The payment is processed successfully. \\ * 190 \- Success: The payment is processed successfully. * 490 - Failed: The transaction failed. * 491 - Validation failed: The transaction request contained errors and could not be processed properly. * 492 - Technical error: Due to a technical fault the transaction could not be completed. * 690 - Rejected: The transaction is rejected by the (third party) payment provider. * 790 - Pending entry: The transaction is on hold while the payment enginge is waiting on input from consumers. * 791 - Pending processing: The transaction will be processed. * 792 - Awaiting the consumer: the payment Engine waits for consumers to return back from a third party website, which is needed to complete the transaction. * 793 - The transaction is on hold. * 890 - Cancelled by User: The operation was canceled by the customer. * 891 - Cancelled by Merchant: The merchant has canceled the transaction. | | payment type code | * C001**\* * C002 -- first direct debit * C003 -- recurring direct debit * C004 -- first direct debit * C005 -- recurring direct debit * C008 -- SEPA direct debit * C021 -- ideal * C101 -- refund transfer * C121 -- refund ideal * C102 -- refund any direct debit trx * C500 -- refund any direct debit trx * C565 -- refund any Settlement by merchant trx * C501 -- reversal * C561 --direct debit has been reversed by the customer (M.O.I) * C562 -- reversal * I255 -- credit note * I256 -- Write-off * C461 -- payments from collection agency * C462?**\* * N800 \**\* | h2. Business rules payment response codes The following table describes the business rules for handling the payment response codes from Buckaroo: Note: When the invoice is sent to Buckaroo the accompanying payment is inserted in the table account_payment with a payment_type_id (new payment_type_id) that identifies the "Buckaroo"-payment and this payment is set to "Do capture". || Resp. code(s) || Transaction codes || Description || Action CDRator || | 190 | C002/C003 | Successful | *Capture payment:* * Search for the corresponding payment using invoice number. If Notnot found write error to log, process next record. * Capture the original payment Check if itthe isdebit notamount captured yet (reversal came before successful payment response). * Insert a new payment with the same reference and a negative amount (negative credit amount of the response). This payment must have a payment_type_id that identifies a "Buckaroo" - reversed paymentfrom the response matches the accompanying payment. If it does not match write error to log, process next record. * When payment is found, Capture the payment (if it is not captured yet). * Write "successful result" to log file. | | 190 | C001/C021 | Non regular payments. \\ It might be a \\ partial payment to log file. | | 190 | C562 | Reversed | *Capture original payment orand insert partialreversed payment:* \\ * Search for the corresponding payment using invoice number. Not found write error to log, process next record. \\ * Capture the payment if the total * Capture the original payment if it is not captured yet (reversal came before successful payment response). * Insert a new payment with the same reference and a negative amount (negative credit amount of the originalresponse). This payment is the same as the debit-amount of the payment response and write successful resultmust have a payment_type_id that identifies a "Buckaroo" - reversed payment. * Write "successful result" to log file. \\| *| Otherwise190 insert| aC001/C021 new| paymentNon withregular thepayments. same\\ reference and with payment_type_id "Buckaroo" -It might be a \\ partial payment. | Write*Capture "partialoriginal payment" or resultinsert topartial log file. | | 190 \\ | C121/C102 | Refund | *No action required* \\ * This response code can be ignored by CDRator (only write a record to the log file). \\ Note: action will be defined in future release | | 190 | V99 | Settled by merchant or \\ external payment | *No action required:* \\ * This response code can be ignored by CDRator (only write a record to the log file) \\ * This code can be used when the customer paid the amount directly. An employee of the customer finance team will capture the payment.payment* \\ * Search for the corresponding payment using invoice number. Not found write error to log, process next record. \\ * Capture the payment if the total amount of the original payment is the same as the debit-amount of the payment response and write successful result to log file. \\ * Otherwise insert a new payment with the same reference and with payment_type_id "Buckaroo" - partial payment. Write "partial payment" result to log file. | | 190 \\ | C121/C102 | Refund | | | 190 | V99 | Settled by merchant or \\ external payment | | | {color:#ff0000}??{color} | I255 | CreditNote | {color:#ff0000}*\-*{color} | | 190 | 461/462 | Payments from Collection Agency | {color:#ff0000}*\-*{color}\\ | *Log file* The following table describes the requirements for logging and how the current implementation achieves it: || Requirement || Implementation || | For each response file that is processed, \\ the Rator system has to write a log record to a table. \\ | The DB table BUCKAROO_RESPONSE_HEADER contains one row for each response file processed. \\ This table has a column called STATUS which contains the current status of the response file. \\ Possible status values are NEW(0), PROCESSED(1), PROCESSED_WITH_ERROR(2), ERROR(4) | | For each processed record, a row must be written \\ to the log file which indicates if the record is successfully processed. \\ | The table BUCKAROO_RESPONSE_RECORD contains one row for each record in the response file. \\ This table has a column called STATUS which contains the current status of the response record. Possible status values are NEW(0), PROCESSED(1), IGNORE(2), ERROR(4) | | In case of an error, a clear description should be written to the log file and the Rator system should start processing the next (response) record. | The table BUCKAROO_RESPONSE_RECORD contains one row for each record in the response file. \\ This table has a column called STATUS_MESSAGE which contains a message indicating whether or not an error occurred while processing the corresponding response record. \\ These status messages are configurable by defining parameter tree entries for each status message used. Please see *{_}Parameters required{_}* section for more info. | \\ |
Page Comparison
General
Content
Integrations