If you are using Apple Push Tokens (APNS HTTP/2) then your message can be up to 4KB. Using the older Apple Push Certificates, the payload is limited to 2KB. The entire message payload for PubNub publish/subscribe supports maximum 32KB which includes the pn_apns (and pn_gcm) data.

{
    "pn_apns": {
        "aps": {
            "alert": "Your order is ready for pickup!",
            "payment_info": {
                "credit_card": 987656789876,
                "expiration": "0108"
            }
        }
    },
    "pn_gcm": {
        "notification": "Your order is ready for pickup!",
        "payment_info": {
            "credit_card": 987656789876,
            "expiration": "0108"
        }
    },
    "message": {
        "info": "This is data all non-APNS and non-GCM devices would receive. They would also receive the pn_apns and pn_gcm data."
        "note": "Your order is ready for pickup!",
        "payment_info": {
            "credit_card": 987656789876,
            "expiration": "0108"
        }
    }
}


The entire payload above will be sent to active PubNub subscribers (including the pn_apns and pn_gcm data). But only the data inside the pn_apns section will be sent as an APNS message and displayed a push notification on an iOS device.


For more details, see Sending APNS and GCM Messages to Subscribers and Mobile Push Notification Services in One API Call.