0

Okay I am setting up Partial Payments via the Authorize.net API in order to enable multiple cards to be used to cover a single balance/charge.

I'm assuming thier Partial Auth feature covers my use case, but in testing, there is an issue I can show you using the API live console here: https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-credit-card

Go to the link above and authorize partial payments with the request I edited below and you will notice when you press submit you get a splitTenderId:

{
    "createTransactionRequest": {
        "merchantAuthentication": {
            "name": "5KP3u95bQpv",
            "transactionKey": "346HZ32z3fP4hTG2"
        },
        "refId": "123456",
        "transactionRequest": {
            "transactionType": "authCaptureTransaction",
            "amount": "462.25",
            "payment": {
                "creditCard": {
                    "cardNumber": "5424000000000015",
                    "expirationDate": "2020-12",
                    "cardCode": "999"
                }
            },
            "lineItems": {
                "lineItem": {
                    "itemId": "1",
                    "name": "vase",
                    "description": "Cannes logo",
                    "quantity": "18",
                    "unitPrice": "45.00"
                }
            },
            "tax": {
                "amount": "4.26",
                "name": "level2 tax name",
                "description": "level2 tax"
            },
            "duty": {
                "amount": "8.55",
                "name": "duty name",
                "description": "duty description"
            },
            "shipping": {
                "amount": "4.26",
                "name": "level2 tax name",
                "description": "level2 tax"
            },
            "poNumber": "456654",
            "customer": {
                "id": "99999456654"
            },
            "billTo": {
                "firstName": "Ellen",
                "lastName": "Johnson",
                "company": "Souveniropolis",
                "address": "14 Main Street",
                "city": "Pecan Springs",
                "state": "TX",
                "zip": "44628",
                "country": "USA"
            },
            "shipTo": {
                "firstName": "China",
                "lastName": "Bayles",
                "company": "Thyme for Tea",
                "address": "12 Main Street",
                "city": "Pecan Springs",
                "state": "TX",
                "zip": "44628",
                "country": "USA"
            },
            "customerIP": "192.168.1.1",
            "transactionSettings": {
                "setting": [
    {
        "settingName": "emailCustomer",
        "settingValue": "true"
    }, {
        "settingName": "allowPartialAuth",
        "settingValue": "true"
    },
]

            },
            "userFields": {
                "userField": [
                    {
                        "name": "MerchantDefinedFieldName1",
                        "value": "MerchantDefinedFieldValue1"
                    },
                    {
                        "name": "favorite_color",
                        "value": "blue"
                    }
                ]
            }
        }
    }
}

This is only successful because the amount is 462.25 as the docs say to use for testing, if I use any other (real) amount the splitTenderId is not there.

Here is a new example request, you can post this again on the link above:

{
    "createTransactionRequest": {
        "merchantAuthentication": {
            "name": "5KP3u95bQpv",
            "transactionKey": "346HZ32z3fP4hTG2"
        },
        "refId": "123456",
        "transactionRequest": {
            "transactionType": "authCaptureTransaction",
            "amount": "462",
            "payment": {
                "creditCard": {
                    "cardNumber": "5424000000000015",
                    "expirationDate": "2020-12",
                    "cardCode": "999"
                }
            },
            "lineItems": {
                "lineItem": {
                    "itemId": "1",
                    "name": "vase",
                    "description": "Cannes logo",
                    "quantity": "18",
                    "unitPrice": "45.00"
                }
            },
            "tax": {
                "amount": "4.26",
                "name": "level2 tax name",
                "description": "level2 tax"
            },
            "duty": {
                "amount": "8.55",
                "name": "duty name",
                "description": "duty description"
            },
            "shipping": {
                "amount": "4.26",
                "name": "level2 tax name",
                "description": "level2 tax"
            },
            "poNumber": "456654",
            "customer": {
                "id": "99999456654"
            },
            "billTo": {
                "firstName": "Ellen",
                "lastName": "Johnson",
                "company": "Souveniropolis",
                "address": "14 Main Street",
                "city": "Pecan Springs",
                "state": "TX",
                "zip": "44628",
                "country": "USA"
            },
            "shipTo": {
                "firstName": "China",
                "lastName": "Bayles",
                "company": "Thyme for Tea",
                "address": "12 Main Street",
                "city": "Pecan Springs",
                "state": "TX",
                "zip": "44628",
                "country": "USA"
            },
            "customerIP": "192.168.1.1",
            "transactionSettings": {
                "setting": [
    {
        "settingName": "emailCustomer",
        "settingValue": "true"
    }, {
        "settingName": "allowPartialAuth",
        "settingValue": "true"
    },
]

            },
            "userFields": {
                "userField": [
                    {
                        "name": "MerchantDefinedFieldName1",
                        "value": "MerchantDefinedFieldValue1"
                    },
                    {
                        "name": "favorite_color",
                        "value": "blue"
                    }
                ]
            }
        }
    }
}

And with the 462 amount entered this is no longer a partial auth payment and I no longer get a splitTenderId.

Can someone please help me figure out what is going on?

ViaTech
  • 2,143
  • 1
  • 16
  • 51
  • Please close [your other question](https://stackoverflow.com/questions/58275228/how-to-implement-partial-auth-on-authorize-net-api) as this is a duplicate – John Conde Oct 07 '19 at 20:18
  • @JohnConde is Authorize.net Partial Auth only applicable if it is a prepaid card or a debit card without enough funds? I was under the impression it could be used to capture multiple transactions so they could all be processed at a single point in time (i.e. when a full charge is satisfied)...This article hints at me getting this wrong: https://www.tsys.com/solutions/products-services/merchant/merchant-support/merchant-basics/partial-authorization/ – ViaTech Oct 08 '19 at 12:05
  • I believe that is the case. The scenario it exists for is someone uses a prepaid card, it doesn't cover the total amount to be paid, so another transaction needs to occur to complete the sale. – John Conde Oct 08 '19 at 20:52
  • Ah, okay makes more sense why testing it out was such a pain. I have started implementing a solution that uses `authOnlyTransaction` to ensure that the funds in multiple cards can cover a single balance without actually processing/capturing it. If all succeed, I capture the payment for each transaction, else I don't process any of them. Overall this is seeming like it will work like what I initially thought Authorize.net's Partial Auth was supposed to work like. – ViaTech Oct 08 '19 at 21:43

0 Answers0