# Test your push implementation

 There's a new version available!

These pages cover version 3 of our SDK, but a newer version is available. In general, we suggest that you update to the latest version to take advantage of new features and fixes.

*   Are you new to our SDKs? [Check out the latest docs.](/integrations/sdk/ios/getting-started)
*   Otherwise, [learn about updating to the latest version](/integrations/sdk/ios/whats-new/)

After you set up push notifications, you should send some test messages. You can send messages through the Customer.io push composer. If your app is set up to send more than the standard title, body, image, and link, you’ll need to send a [custom payload](/journeys/push-custom-payloads/#getting-started-with-custom-payloads).

[![The custom payload editor for a push notification](https://docs.customer.io/images/push-custom-ios.png)](#0c9b0c5b97db4dbadfe8437d8b8fe49c-lightbox)

The payloads below represent what your app can expect to receive from Customer.io. If you use a custom payload, you’ll need to use the format(s) below to make sure that the SDK receives your message properly.

When testing, you should:

*   Set the `link` to the deep link URL that you want to open when your tester taps your notification.
*   Set the `image` to the URL of an image you want to show in your notification. It’s important that the image URL starts with `https://` and *not* `http://` or the image might not show up.
    
     APNS payload
    
    #### APNS payload[](#APNS payload)
    
    ```json
    {
        "aps": {
            // basic iOS message and options go here
            "mutable-content": 1,
            "sound": "default",
            "alert": {
                "title": "string", //(optional) The title of the notification.
                "body": "string" //(optional) The message you want to send.
            }
        },
        "CIO": {
            "push": {
                "link": "string", //generally a deep link, i.e. my-app:://...
                "image": "string" //HTTPS URL of your image, including file extension
            }
        }
    }
    ```
    
    *   CIO object
        
        Contains options supported by the Customer.io SDK.
        
        *   push object
            
            Required Describes push notification options supported by the CIO SDK.
            
    
     FCM payload
    
    #### FCM payload[](#FCM payload)
    
    ```json
    {
      "message": {
        "apns": {
          "payload": {
            "aps": {
              // basic iOS message and options go here
              "mutable-content": 1,
              "sound": "default",
              "alert": {
                "title": "string", //(optional) The title of the notification.
                "body": "string" //(optional) The message you want to send.
               }
            },
            "CIO": {
              "push": {
                "link": "string", //generally a deep link, i.e. my-app://... or https://yourwebsite.com/...
                "image": "string" //HTTPS URL of your image, including file extension
              }
            }
          },
          "headers": {
            // (optional) headers to send to the Apple Push Notification Service.
            "apns-priority": 10
          }
        } 
      }
    }
    ```
    
    *   message object
        
        Required The base object for all FCM payloads.
        
        *   apns object
            
            Required Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM).
            
            *   headers object
                
                Headers defined by [Apple’s payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.
                
            *   payload object
                
                Required Contains a push payload.
                
                *   CIO object
                    
                    Contains properties interpreted by the Customer.io iOS SDK.
                    
                    *   push object
                        
                        Required A push payload for the iOS SDK.
                        
                *   *Custom key-value pairs\** any type
                    
                    Additional properties that you've set up your app to interpret outside of the Customer.io SDK.