3.05, add nacha_sec_code
[Business-OnlinePayment.git] / notes_for_module_writers_v3
index aaa1223..3376500 100644 (file)
@@ -50,7 +50,7 @@ These are the module writer's notes for v3.  See the regular
           'supported_types'       => [ qw( CC ECHECK ) ],
           'token_support'         => 0, #card storage/tokenization support
           'test_transaction'      => 0, #set true if ->test_transaction(1) works
-          'partial_auth'          => 1, #can gateway partial auth (new in 3.04)
+          'partial_auth'          => 0, #can gateway partial auth (new in 3.04)
           'supported_actions'     => [
                                        'Normal Authorization',
                                        'Authorization Only',
@@ -61,7 +61,8 @@ These are the module writer's notes for v3.  See the regular
         };
       }
 
-    # or a more complicated case:
+    # or a more complicated case with module_notes, different supported actions
+    #  per type, and special void requirements:
 
       sub _info {
         {
@@ -74,12 +75,14 @@ These are the module writer's notes for v3.  See the regular
           'supported_types'       => [ qw( CC ECHECK ) ],
           'token_support'         => 1,
           'test_transaction'      => 1,
+          'partial_auth'          => 1, #can gateway partial auth (new in 3.04)
           'supported_actions'     => { 'CC' => [
                                          'Normal Authorization',
                                          'Authorization Only',
                                          'Post Authorization',
                                          'Void',
                                          'Credit',
+                                         'Tokenize',
                                          'Recurring Authorization',
                                          'Modify Recurring Authorization',
                                          'Cancel Recurring Authorization',
@@ -91,6 +94,7 @@ These are the module writer's notes for v3.  See the regular
                                        ],
                                      },
           'CC_void_requires_card' => 1,
+          #? 'CC_reverse_auth_requires_txn_date' => 1,
           'ECHECK_void_requires_account' => 1, #routing_code, account_number, name 
         };
       }
@@ -100,7 +104,7 @@ These are the module writer's notes for v3.  See the regular
 
   Gateways will return one or two values from Authorization Only and
   Normal Authorization transactions that must be submitted back with a
-  Post Authorization, Void, or Credit transaction.
+  Post Authorization, Reverse Authorization, Void, or Credit transaction.
 
   If the gateway returns one value, return this as "authorization"
 
@@ -110,6 +114,21 @@ These are the module writer's notes for v3.  See the regular
   is a unique tranaction id generated by the gateway.
 
 
+= txn_date (NEW IN 3.05) =
+
+  Some gateways return a transaction date from Authorization Only / Normal
+  Authorization transactions that must be submitted back for a follow-up
+  Post Authorization, Reverse Authorization, Void, or Credit transaction.
+
+  For the most compatibility with all gateways for follow-up transactions,
+  pass this as well as authorization and order number.  Note this field is
+  a recent addition, so always access it like this:
+
+    my $txn_date =   $bop_transaction_object->can('txn_date')
+                   ? $bop_transaction_object->txn_date
+                   : '';
+
+
 = Moo (NEWLY DOCUMENTED IN 3.04) =
 
   Feel free to write gateway modules which use Moo.  Please do not require
@@ -123,14 +142,14 @@ These are the module writer's notes for v3.  See the regular
   - Declare this in your "sub _info" introspection subroutine:
       'partial_auth' => 1,
 
-  - Add "partial_auth_amount to your build_subs call in set_defaults, or add
+  - Add "partial_auth_amount" to your build_subs call in set_defaults, or add
     one:
       $self->build_subs('partial_auth_amount');
 
   - Honor the transaction 'partial_auth' flag as follows:
     + If this transaction flag is unset, the application is not expecting to
       handle a partial authorzation.  So, either set the gateway flag disabling
-      partial authorizations, or (if your gatweay does not have such a
+      partial authorizations, or (if your gateway does not have such a
       setting), immediately void any partial authorization received and
       return is_success 0.
     + If this transaction flag is set, the application can handle a partial