iOS SDK - Response Handling

Errors Passed to the SDK

Effective as of iOS SDK 5.4, the Paydiant platform passes failure response data in the PDPaydiantError class, which identifies the unchanged HTTP code, along with a context-specific description and an instance of PDErrorInformation object, encapsulating the raw failure response body. The errorCode and errorDescription represent the event status, plus an external error code passed by a third-party entity through the connector framework, if applicable.

The following XML sample depicts the general structure of the server error object.

<?xml version="1.0" encoding="UTF-8"?>
<PDPaydiantError>
    <statusCode>400</statusCode>
    <statusMessage>BAD_REQUEST</statusMessage>
    <description>"Account already exists."</description>
    <rawErrorDescription>...</rawErrorDescription>
    <localizedDescription>...</localizedDescription>
    <errorInformation>
        <PDErrorInformation>
            <errorCode>798</errorCode>
            <errorDescription>DUPLICATES_NOT_ALLOWED</errorDescription>
            <externalErrorDescription>
              ...
              Array of PDExternalErrorInformation
              ...
            </externalErrorDescription>
        </PDErrorInformation>
    </errorInformation>
</PDPaydiantError>

ErrorInformation Values

The PDErrorInformation is populated with the errorCode and errorDescription values defined in Paydiant’s platform. The following tables define each possible value within the code ranges that have been designated for specific operation types.

Note: Not all codes within each designated range have assigned definitions.

Settlement Statuses (200 - 209)

errorCode errorDescription
200 APPROVED
201 DECLINED
202 SETTLEMENT_FAILED
203 INSUFFICIENT_FUNDS
204 PARTIAL_PAYMENT_SUCCESS

Authorization Statuses (210 - 219)

errorCode errorDescription
210 AUTH_APPROVED
211 AUTH_FAILED
212 PARTIAL_PRE_AUTH_SUCCESS

Scheduled Processing Statuses (220 - 229)

errorCode errorDescription
220 AUTH_APPROVED_AND_SCHEDULED

Refund Statuses (230 - 239)

errorCode errorDescription
230 REFUND_APPROVED
231 REFUND_ON_HOLD
232 REFUND_FAILED
235 REFUND_NOT_POSSIBLE
236 REFUND_TRANSACTION_DATA_MISMATCH
237 REFUND_TRANSACTION_AMOUNT_EXCEED

General Payment Processing Statuses (240 - 249)

errorCode errorDescription
240 DUPLICATE_TRANSACTION
241 PROCESSING_ERROR
242 GATEWAY_PROCESSING_ERROR
243 TRANSACTION_NOT_ALLOWED
244 TRANSACTION_UNDER_REVIEW
245 TRANSACTION_NOT_SUPPORTED

Payment Processing Input Statuses (250 - 299)

errorCode errorDescription
250 INVALID_INPUTS
251 INVALID_AMOUNT
252 INVALID_CARD_NUMBER
253 INVALID_EXPIRY_DATE
254 EXPIRED_CARD
255 INVALID_ABA
257 AVS_MISMATCH
258 INVALID_CARD_CODE

Non-Transaction Processing Statuses (340 - 349)

errorCode errorDescription
340 SUCCESS
341 CRUD_NOT_POSSIBLE
349 ENTITY_IS_DELETED

Non-Transaction Processing Input Statuses (350 - 369)

errorCode errorDescription
350 ENTITY_NOT_EXISTING
351 DUPLICATES_NOT_ALLOWED
352 EMPTY_PARTNER_URI
353 EMPTY_TENANT_URI
354 EMPTY_MERCHANT_URI
355 EMPTY_USER_PROFILE_URI
356 EMPTY_CURRENCY_URI
357 EMPTY_FINANCIAL_INSTITUTE_URI
358 EMPTY_WALLET_ACCOUNT_URI
359 EMPTY_PAYMENT_PROCESSOR_URI
360 INVALID_PARTNER_URI
361 INVALID_TENANT_URI
362 NVALID_MERCHANT_URI
363 INVALID_USER_PROFILE_URI
364 INVALID_CURRENCY_URI
365 INVALID_FINANCIAL_INSTITUTE_URI
366 INVALID_WALLET_ACCOUNT_URI
367 INVALID_PAYMENT_PROCESSOR_URI
368 INVALID_PAYMENT_IMAGE_CATEGORY_URI
369 INVALID_PAYMENT_IMAGE_URI

Balance Inquiry Statuses (370 - 379)

errorCode errorDescription
370 BALANCE_INQUIRY_SUCCESS
371 BALANCE_INQUIRY_FAILED
372 BALANCE_TEMP_UNAVAILABLE
373 BALALNCE_NOT_SUPPORTED
374 INVALID_BALANCE_AMOUNT
375 INVALID_BALANCE_REQUEST

Verification Statuses (380 - 389)

errorCode errorDescription
380 VERIFICATION_SUCCESS
381 VERIFICATION_FAILED
382 VERIFICATION_AMOUNT_MISMATCH
383 VERIFICATION_PERIOD_EXPIRED
384 VERIFICATION_NOT_SUPPORTED
385 VERIFICATION_TEMP_NOT_AVAILABLE
386 INVALID_VERIFICATION_REQUEST
387 VERIFICATION_INITIATED
388 UNSUPPORTED_IIN
389 UNSUPPORTED_TENDER_TYPE

Loyalty Account Statuses (400 - 409)

errorCode errorDescription
400 ALLOWED_LOYALTY_CARD_LIMIT_EXCEEDED
errorCode errorDescription
500 INVALID_TRANSACTION
501 SUSPECTED_FRAUD
errorCode errorDescription
550 MERCHANT_ERROR

Full Reversal Statuses (600 - 619)

errorCode errorDescription
600 FULL_REVERSAL_SUCCESS
601 FULL_REVERSAL_DENIED
602 FULL_REVERSAL_EXT_SYSTEM_FAILED
603 FULL_REVERSAL_SYSTEM_FAILED
604 FULL_REVERSAL_NOT_POSSIBLE
605 TRANSACTION_NOT_FOUND_FOR_REVERSAL

Void Statuses (620 - 639)

errorCode errorDescription
620 VOID_SUCCESS
621 VOID_DENIED
622 VOID_EXT_SYSTEM_FAILED
623 VOID_SYSTEM_FAILED
624 VOID_NOT_POSSIBLE

Loyalty Transaction Statuses (700 - 749)

errorCode errorDescription
700 ADD_LOYALTY_POINTS_SUCCESS
701 ADD_LOYALTY_POINTS_FAILED
702 ADD_LOYALTY_POINTS_NOT_SUPPORTED
703 INVALID_POINTS_AMOUNT
704 SUBTRACT_LOYALTY_POINTS_FOR_REFUND_SUCCESS
705 SUBTRACT_LOYALTY_POINTS_FOR_REFUND_FAILED
706 SUBTRACT_LOYALTY_POINTS_FOR_REFUND_NOT_SUPPORTED
707 SUBTRACT_LOYALTY_POINTS_SUCCESS
708 SUBTRACT_LOYALTY_POINTS_FAILED
709 SUBTRACT_LOYALTY_POINTS_NOT_SUPPORTED
710 ADD_LOYALTY_POINTS_FOR_SALE_SUCCESS
711 ADD_LOYALTY_POINTS_FOR_SALE_FAILED
712 ADD_LOYALTY_POINTS_FOR_SALE_NOT_SUPPORTED
713 LOYALTY_POINTS_VOID_SUCCESS
714 LOYALTY_POINTS_VOID_FAILED
715 LOYALTY_POINTS_VOID_NOT_POSSIBLE
716 LOYALTY_POINTS_FULL_REVERSAL_SUCCESS
717 LOYALTY_POINTS_FULL_REVERSAL_FAILED
718 LOYALTY_POINTS_FULL_REVERSAL_NOT_POSSIBLE

Load Account Statuses (750 - 759)

errorCode errorDescription
750 ADD_VALUE_SUCCESS
751 ADD_VALUE_FAILED
752 ADD_VALUE_NOT_SUPPORTED
753 MAX_VALUE_EXCEEDED
754 MAX_BALANCE_EXCEEDED

Provisioning Statuses (760 - 769)

errorCode errorDescription
760 CARD_PROVISIONING_SUCCESS
761 CARD_PROVISIONING_FAILED
762 CARD_PROVISIONING_NOT_SUPPORTED
763 CARD_PROVISIONING_LIMIT_EXCEEDED
764 CARD_PROVISIONING_DECLINED

Identity Provider Statuses (780 - 789)

errorCode errorDescription
780 IDP_AUTHENTICATION_SUCCESS
781 IDP_AUTHENTICATION_FAILURE
782 IDP_PROCESSING_ERROR
783 IDP_EXTERNAL_PROCESSING_ERROR

Variable-Step Payment Account Enrollment Statuses (790 - 809)

errorCode errorDescription
790 PAYMENT_ACCOUNT_ENROLLMENT_SUCCESSFUL
791 PAYMENT_ACCOUNT_ENROLLMENT_FAILED
792 PAYMENT_ACCOUNT_ENROLLMENT_CANCELLED
793 PAYMENT_ACCOUNT_ENROLLMENT_EXPIRED
794 PAYMENT_ACCOUNT_ENROLLMENT_CARD_PROVISIONING_LIMIT_EXCEEDED
795 PAYMENT_ACCOUNT_ENROLLMENT_CARD_PROVISIONING_DECLINED
796 PAYMENT_ACCOUNT_ENROLLMENT_NOT_SUPPORTED
797 PAYMENT_ACCOUNT_ENROLLMENT_CRUD_NOT_POSSIBLE
798 PAYMENT_ACCOUNT_ENROLLMENT_DUPLICATED_NOT_ALLOWED
799 PAYMENT_ACCOUNT_ENROLLMENT_VERIFICATION_AMOUNT_MISMATCH
800 PAYMENT_ACCOUNT_ENROLLMENT_VERIFICATION_NOT_SUPPORTED
801 PAYMENT_ACCOUNT_ENROLLMENT_VERIFICATION_TEMP_NOT_AVAILABLE
802 PAYMENT_ACCOUNT_ENROLLMENT_INVALID_VERIFICATION_REQUEST
803 PAYMENT_ACCOUNT_ENROLLMENT_VERIFICATION_INITIATED
804 PAYMENT_ACCOUNT_ENROLLMENT_CANCELLATION_NOT_POSSIBLE
805 PAYMENT_ACCOUNT_ENROLLMENT_ALREADY_CANCELLED

Payment Status Code Reference

Payment status codes are not error codes in that they are not returned to the app in failure responses. Rather, they represent the outcome of a payment authorization request as it is returned to Paydiant by the processor and are returned to the app within the PaymentStatusCode attribute of a PDTransactionAccount instance returned in a success response at completion of a payment transaction. In transactions where one or more payment attempts failed before the transaction was ultimately successful, the previousPaymentResults attribute of the PDTransactionDetail object may include PDTransactionAccount instances populated with values from this list.

Authorization Status

Code Status Message Description
200 Approved Payment Payment for the transaction has been approved.
201 Declined Payment Payment for the transaction has been declined.
203 Insufficient Funds The account from which the payment is being drawn does not have enough money to cover the amount due.
210 Auth_Approved The authorization has been approved.
211 Auth_Failed The authorization has not succeeded.
212 Partial_Pre_Auth_Success The amount for pre-authorization was approved for an amount that was less than the approved pre-authorization amount.

Payment Status

Code Status Message Description
240 Duplicate Transaction The transaction has already been submitted.
241 Processing Error Approval of the payment authorization has failed.
242 Gateway Processing Error An error has occurred in an external system while processing the payment.
243 Transaction Not Allowed This transaction cannot be processed at the customer’s financial institution.

Payment Input Failures

Code Status Message Description
250 Invalid Inputs The transaction contains one or more invalid parameter entries.
251 Invalid Amount The amount entered is not a valid format (e.g., multiple decimal points may have been entered).
252 Invalid Card Number The credit card number entered is not valid (e.g., too many or too few digits).
253 Invalid Expiry Date The credit card expiration date is not a valid date.
254 Expired Card The credit card expiration date has already passed.
255 Invalid ABA The ABA code is not valid for the card.
256 Invalid Account Number The account number is invalid.
257 AVS Mismatch The transaction resulted in an AVS mismatch. The address provided does not match billing address of card holder.
258 Invalid Card Code The card code (CVV2/CVC2/CID) is invalid.
Code Status Message Description
500 Invalid Transaction The transaction request is not valid; contact Issuer.
501 Suspected Fraud A fraudulent transaction is suspected; contact Issuer.
Code Status Message Description
550 Merchant Error The data transmitting from the POS terminal has resulted in an error.
Feedback